|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 风吹过后 于 2022-9-23 16:41 编辑
9 ^$ q, f+ C5 d' j: Z0 X) L: @* c; I$ w9 {$ ^
用STC8G1K08A单片机做一个音频电平指示器,需要高速采样信号。手册说支持800Khz,那两通道44.1kHz绰绰有余。$ O; \# `) R" {* ~7 V( ^
写代码,测试,结果发现,会偶尔有转换结果=0的情况出现。(已在ADC脚接1/2vcc电压,正常时结果为511)# d& |! F ^* l* S
加大采样时间,无果
9 g1 t& H! d& f1 y加大通道选择时间,无果
+ { _" t3 j& c V% K降低ADC转换速度,无果
: s5 E3 b% H: J" [# \
; O2 W, i* z v9 {+ L5 M- \结果换了一颗芯片,代码没动,好了。5 V/ B$ w j; \& t
5 r; K* r* |" K3 P8 n; W& k4 [% Z诡异的是,过了半小时,这颗新换上来的芯片也不行了,这难道还有寿命问题。2 J: W- x. U. G+ ]1 @
; V% B; m9 M9 I7 |+ c( s8 D7 O是、电话STC售后,第一个技术给了参考工程,直接编译下载,串口看数据,没问题,但是采样速度太慢无法满足要求。后来一步步改,改到高采样率,问题依旧。" Q9 M0 f! \; b% g
9 u# Q6 [, {: O: D) N+ j再电话STC另一个技术,让ADC对地接一颗103电容,照做后发现,串口居然会丢字符。没错,再ADC脚加电容结果串口偶尔丢一个字符……
& M' `1 T& F1 r {4 h+ X3 v8 i. r5 M![]()
$ F; }; M' k1 `0 F1 p+ A' ^' O5 {6 e' T: K) H1 y
然后让下载ISP工具里面的例程,还是丢字符。
8 V7 M9 Y; `6 Q" o5 V/ [1 @3 c0 G) d 0 r" e2 {* l2 P- O7 D; w J
; n6 N# i: r, a2 {
但是,我把这个再带的例程刷到另一块STC8A8K的核心板上,居然正常运行,同一个HEX文件。
- s) l) x$ @. ^; s百般不得其解。( l) e/ J( v5 }/ a+ w D; p
STC技术说是干扰问题。我心想,干扰应该是乱码,不应该是丢字符,但是死马当活马医,就试试吧。 M' L) A4 `# T1 W
把8A8K芯片刷个空的不影响IO的程序进去。
5 j; I4 R, E! A再把8G1K08A芯片插在这个板子上的串口上2 I6 c: ]( D, x
0 }2 N5 X* S$ w1 l1 R
奇迹出现了% r5 \2 { h5 ]+ @; l( R' B% v
8 g3 i) v6 o% `1 J3 x8 j) O+ L
不丢字符了,ADC也正常了……+ h; b/ a! Z, L! v: K" X. J
简直是玄学。5 J; W4 ~" o/ P% L# u) ^
- K, X% I. y& T! k& M0 \这个是正常的能用的340,用的内置振荡器) ?! |& V9 R4 c$ R4 N
![]()
" V Q( r$ j% G: G$ }4 c- C
- B' c/ ]3 Y# e& r" ^) c
, U6 D& x2 D; }7 t这个是外置晶振的,用起来有问题的。5 @4 K P9 U8 Z6 m# v F
当然我换过芯片,烧过一颗。
2 V$ W1 w8 k- |0 `: A这个是广州电子展展台送的。正儿八经官方出品。
1 ?: A2 ]8 d O6 k, R$ Z
/ w+ ]4 ?4 f; C6 d4 T+ k. P6 m! N
z* N) L, v) T: O7 u' G& E& D+ H
真是太奇怪了,后来把串口波特率调到921600bps都很正常,没丢字符,无法解释。- M& A' k/ [. i: m
$ s$ \7 K( }* A
有什么情况后面再来更新。' R: h7 k* i" d# h0 m# Z2 V9 }
7 f0 D: q* y9 D) h, H3 a6 e |
|