|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 风吹过后 于 2022-9-23 16:41 编辑 0 [. _& x4 r& } y+ _
, q6 \3 E# V8 ^+ B; W用STC8G1K08A单片机做一个音频电平指示器,需要高速采样信号。手册说支持800Khz,那两通道44.1kHz绰绰有余。
5 L" N) d+ C( k8 p2 ]写代码,测试,结果发现,会偶尔有转换结果=0的情况出现。(已在ADC脚接1/2vcc电压,正常时结果为511)
- [, [$ ?4 Q: `6 v: O) E8 A加大采样时间,无果1 k; i1 ]/ j8 L/ |- b ~% T
加大通道选择时间,无果
0 D: i$ I+ H- {, I, v9 f1 |9 j降低ADC转换速度,无果
4 ^ C; S9 \. J# `% `( q& A5 x" a5 k2 w% S3 g% A/ N7 d
结果换了一颗芯片,代码没动,好了。1 O7 V- K4 G0 ~" c/ T: b& d. h; t
2 b- Y& H' j0 g" r- f
诡异的是,过了半小时,这颗新换上来的芯片也不行了,这难道还有寿命问题。: V0 x$ j. S4 u1 V- h3 v w
0 J1 C8 Y0 D" p2 N* H6 z" t3 F* W是、电话STC售后,第一个技术给了参考工程,直接编译下载,串口看数据,没问题,但是采样速度太慢无法满足要求。后来一步步改,改到高采样率,问题依旧。
( g) B/ @8 Q1 n4 j( Q) j5 J% Z& U
再电话STC另一个技术,让ADC对地接一颗103电容,照做后发现,串口居然会丢字符。没错,再ADC脚加电容结果串口偶尔丢一个字符……& q" T. D2 n# V9 h! n! y) L9 p
![]()
9 k; S; a4 D- b7 F( e7 \$ r! k- e {/ r8 v1 C3 O1 v0 c3 b/ n
然后让下载ISP工具里面的例程,还是丢字符。
& v. p7 ?, S I# `" g: k# X2 l![]()
! D3 m: j, h' T
. @" a- h1 ~. O1 u" G. s+ y( I3 j% W" T但是,我把这个再带的例程刷到另一块STC8A8K的核心板上,居然正常运行,同一个HEX文件。8 W2 |6 y+ P8 n, k% l8 T1 _
百般不得其解。1 }6 F; U# H, \# E) y
STC技术说是干扰问题。我心想,干扰应该是乱码,不应该是丢字符,但是死马当活马医,就试试吧。 h& C+ g& W8 m, T8 b3 i: c
把8A8K芯片刷个空的不影响IO的程序进去。0 h3 H1 c3 ?. r E: u9 U3 V
再把8G1K08A芯片插在这个板子上的串口上; }: ^# ? w* Y, Q/ b
# J m) l$ ~+ w4 c1 C
奇迹出现了( q) |0 v9 i! i! V% o9 q: R
0 g' H) C- W. i; d( Y不丢字符了,ADC也正常了……
9 o; {0 D, j% U$ Q8 y! `! U4 w简直是玄学。
+ D$ b4 K1 F* Q2 |9 v2 c. |7 f( X; v- h! Y
这个是正常的能用的340,用的内置振荡器
* E1 ]1 z4 q; |( G8 c+ v1 @ " |9 n/ T+ i! C) b4 |
7 n) G P( q4 Q9 q: ^) ~- I) O. d6 h" Y. n3 o8 L( Y7 E6 }
这个是外置晶振的,用起来有问题的。
$ k/ N# }: t O G当然我换过芯片,烧过一颗。
! m& [& ~/ d8 S' }这个是广州电子展展台送的。正儿八经官方出品。
5 j$ R4 Z4 U! z' Q5 B; I& a
8 {) } K4 W4 y- d4 y0 h
% y" i! _3 j& Z. h: P, b) G9 X; R1 p/ \: i6 p% m6 S) ~7 c
真是太奇怪了,后来把串口波特率调到921600bps都很正常,没丢字符,无法解释。+ D- f8 F) x7 l$ F
/ [9 d8 \ @+ [9 z) u" j- T
有什么情况后面再来更新。. G7 j( W1 z4 G3 o7 {
& H: I7 g. Y$ }, _( N0 w
|
|