|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 风吹过后 于 2022-9-23 16:41 编辑 ) e; ~9 b) e, m N: y2 X) \
% w( D! u7 ? e5 h% k
用STC8G1K08A单片机做一个音频电平指示器,需要高速采样信号。手册说支持800Khz,那两通道44.1kHz绰绰有余。
9 H* H( H# q% O6 P& k& t8 a写代码,测试,结果发现,会偶尔有转换结果=0的情况出现。(已在ADC脚接1/2vcc电压,正常时结果为511)% Y/ F6 D7 \6 ~* U' l7 r. d6 ^* D) Z
加大采样时间,无果% C0 B w2 X- [
加大通道选择时间,无果
^+ T2 p: @- t; t9 V% T* }降低ADC转换速度,无果
7 [ o2 D0 x. p/ b. [0 G$ V
/ N! h# c) H) J' t! w: t结果换了一颗芯片,代码没动,好了。8 }+ r* C3 {* w( |# r8 v: h, P
, g; V0 ~! ^3 T/ X" o- l9 g8 N5 g" A诡异的是,过了半小时,这颗新换上来的芯片也不行了,这难道还有寿命问题。% {, E# c, v! {9 \$ w- z% c
5 ` E( [/ u1 ]: y
是、电话STC售后,第一个技术给了参考工程,直接编译下载,串口看数据,没问题,但是采样速度太慢无法满足要求。后来一步步改,改到高采样率,问题依旧。3 E* L* n1 _1 \% ~4 p4 W, n
8 l; X+ h8 M3 u$ }. g再电话STC另一个技术,让ADC对地接一颗103电容,照做后发现,串口居然会丢字符。没错,再ADC脚加电容结果串口偶尔丢一个字符……
) `; r: F: ?; d: p5 {/ f![]()
+ n/ v1 z* _$ O' C* T
8 k; t* E g# N( `$ O然后让下载ISP工具里面的例程,还是丢字符。# S n1 O. b5 `8 V7 F6 a
! V* y; U y7 L, {: D2 _
8 e' A D2 _0 C- ~: S( L' b# }( f
但是,我把这个再带的例程刷到另一块STC8A8K的核心板上,居然正常运行,同一个HEX文件。
/ t! n5 r: @6 I: H( X) W5 N% [百般不得其解。
4 _, X/ f4 U" h& c) vSTC技术说是干扰问题。我心想,干扰应该是乱码,不应该是丢字符,但是死马当活马医,就试试吧。1 {; U0 g( d8 T: }
把8A8K芯片刷个空的不影响IO的程序进去。# l$ r$ |; Q: H9 D
再把8G1K08A芯片插在这个板子上的串口上
5 A x6 ?% i- F+ B1 M' A* Z$ f2 p( _* g0 V
奇迹出现了0 K1 A' c3 \+ E9 D, a
% s: y( {4 i9 v9 s% t1 q不丢字符了,ADC也正常了……% P! {6 C5 D/ s
简直是玄学。
( f* g4 J7 e. R# j4 \, v
0 W Y1 y, _* n, B n* j" A7 P! g这个是正常的能用的340,用的内置振荡器
) r6 i n- x# A+ d k2 I( } ) H H" i ]: G
: N! k; f$ h4 U% {1 b( X
9 I$ h# }) X# T$ W8 h! ~这个是外置晶振的,用起来有问题的。- ]$ C( M9 j! T* b
当然我换过芯片,烧过一颗。6 \% z3 v; o7 R( b) V& w
这个是广州电子展展台送的。正儿八经官方出品。
! m( T; t: ?6 y e
9 L6 R0 f) Q( T& L" v/ j6 v& Z! W5 a
$ L' X% ]6 z* P* G3 E+ g
q9 o4 f7 \$ T真是太奇怪了,后来把串口波特率调到921600bps都很正常,没丢字符,无法解释。+ ^/ b1 n6 a# g! x4 g% t- K
3 h5 R; {6 n3 V. W$ @5 H
有什么情况后面再来更新。
3 Z, I0 r7 o+ r& Y3 i0 @
+ O/ A, ]( ?- t6 H. }5 T$ y2 A9 ]! ` |
|