|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 风吹过后 于 2022-9-23 16:41 编辑
; f8 W M, V3 z- @9 F* A7 N" k1 p( m
7 B+ B. o+ J( l' L用STC8G1K08A单片机做一个音频电平指示器,需要高速采样信号。手册说支持800Khz,那两通道44.1kHz绰绰有余。
) a2 w& `% D& x写代码,测试,结果发现,会偶尔有转换结果=0的情况出现。(已在ADC脚接1/2vcc电压,正常时结果为511)0 ?6 g3 ^! ?# Q* @* t) l" e
加大采样时间,无果! d+ @) \5 Y- K, Y& z7 }
加大通道选择时间,无果, W" }, h' [: T* c
降低ADC转换速度,无果
* |* B8 x7 p5 u1 ^
) i8 n. U4 k! r7 |/ m结果换了一颗芯片,代码没动,好了。
) z9 P1 q2 e3 h; n. `% T: a
# ^" u% |6 i V% K% N" z& n诡异的是,过了半小时,这颗新换上来的芯片也不行了,这难道还有寿命问题。
% \2 F) z% y/ p
( w2 |+ w2 O* J/ E是、电话STC售后,第一个技术给了参考工程,直接编译下载,串口看数据,没问题,但是采样速度太慢无法满足要求。后来一步步改,改到高采样率,问题依旧。; J& E" N& h- v R" F2 e
1 t6 C; w' l" K; @, N: X; t+ \) J
再电话STC另一个技术,让ADC对地接一颗103电容,照做后发现,串口居然会丢字符。没错,再ADC脚加电容结果串口偶尔丢一个字符……
, z' Z& z5 m! q) H/ g/ R. D, b![]()
$ M. J0 B; H8 w; }" ~8 O5 [$ b8 ?9 o" o+ Y* F" f
然后让下载ISP工具里面的例程,还是丢字符。) }: g. G! Z" w; R ~5 F0 z, G# L
![]()
A8 z K* p @, W+ T
, z- e. L2 [% C, [& j但是,我把这个再带的例程刷到另一块STC8A8K的核心板上,居然正常运行,同一个HEX文件。
* s. X+ |: ~+ \6 `百般不得其解。
" l: ~* ]* C! Q& \9 s8 x. [STC技术说是干扰问题。我心想,干扰应该是乱码,不应该是丢字符,但是死马当活马医,就试试吧。' s6 S" e9 Q5 O$ W. @- o0 a2 ?
把8A8K芯片刷个空的不影响IO的程序进去。
4 c4 U9 H, A3 t, F9 G6 A6 ]8 W4 q再把8G1K08A芯片插在这个板子上的串口上* e, L$ m1 ?: w& ]
M+ p5 `6 G# @/ Q8 d( \4 Q2 O% N
奇迹出现了8 ` P0 P! T g, q: `# H/ {3 O9 {
, ?. G1 M0 }( ^% @
不丢字符了,ADC也正常了……
/ ~! V8 i* f% [1 D简直是玄学。) M6 D& w, X. S* M$ i$ g1 Y
% |2 A% `$ n* \+ a& U' t7 X$ U
这个是正常的能用的340,用的内置振荡器$ {- ]5 ]( X4 r
: q( t5 Y5 {. p; V
' o" ?& h4 q, q. S& d$ I
; q& A( g) H0 Y0 L2 I这个是外置晶振的,用起来有问题的。
* m" U5 q& r+ V1 Q' C6 }9 u当然我换过芯片,烧过一颗。
g9 Z4 o8 ]7 B: [. q" M这个是广州电子展展台送的。正儿八经官方出品。
% X$ U$ y% P. d- R8 @6 ?! n) z. [
1 m8 `& S; J4 }2 J' \& X* ^2 m; S) F6 S: n1 I' b- V( C
# u# i: F4 F& s: _真是太奇怪了,后来把串口波特率调到921600bps都很正常,没丢字符,无法解释。
" Z! N% L$ M: F/ s _5 `4 u$ B; I
有什么情况后面再来更新。
2 c! o+ q- M4 G4 K! {6 p) Y6 K6 `" j! U6 T
|
|