|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
ADμC812是高度集成的高精度12位数据采集系统,其功能方框图如图1所示。从图中可知,该芯片内不仅集成了可重新编程非易失性闪速/电擦除程序存储器的高性能8位(与8051兼容)MCU,还包含了高性能的自校准8通道ADC及2通道12位DAC。
4 ]8 G* S7 T# a9 s 如所有与8051兼容的器件一样,对于程序和数据存储器,ADμC812具有各自独立的地址空间:64KB外部程序地址空间和16MB外部数据地址空间。但与其他器件不同的是,它包含了片内闪速存储器技术,向用户提供8KB的闪速/电擦除程序存储器、640B的闪速/电擦除数据存储器。
$ W; V# \; v, t0 t 芯片集成了全部辅助功能块以充分支持可编程的数据采集核心。这些辅助功能块包括看门狗定时器(WDT)、电源监视器(PSM)以及ADC DMA功能。另外,为多处理器接口和I/O扩展提供了32条可编程的I/O线、I2C兼容的SPI和标准UART串行端口。% d- r' p8 ~- ~. U8 e3 T
与以往的80C51单片机不同,ADμC812具有独特的在线调试和下载功能,由支持ADμC812的开发工具包QuickStart开发系统来提供。也就是说,在用户系统保留ADμC812的情况下,通过开发系统与ADμC812的串口通信,可直接对用户系统进行调试,并在调试完成后将已调试好的程序下载到ADμC812中。) J$ [/ P, {6 H% k. i4 H
虽然ADμC812具有上述各种优良性能,但由于它是一种新型微控制器,与以往的单片机相比,在用法上有许多不同之处。因此,在进行ADμC812系统开发应用时,仍然有许多问题须要注意。下面,将我们在应用ADμC812开发产品时发现的一些应注意的问题及其解决办法介绍如下。5 g8 [2 Q; j8 B t- w- ]5 J5 `
应用中存在的若干问题
1 ~* h4 Q. L% o8 G/ y$ z 1.在线调试注意事项. L2 u _" i) D! n
ADμC812与其他单片机突出不同之处在于支持它的开发系统不同。QuickStart开发系统是支持ADμC812的开发工具包,功能完善,包括下载、调试和模拟等功能。
8 Q( `# S3 \6 n G6 h2 `% I (1)RS232接口电路
4 b% k+ N9 r( s! t' k5 J) w 对于用户开发系统来说,在线调试和下载功能最重要,也是最常使用的,但二者都需通过PC机上的串行端口与ADμC812的UART串行端口之间连接的串行端口电缆进行数据通信才能发挥作用。因此,用户在开发应用系统的同时,应设计一个RS232接口电路(如图2所示)来实现PC机与ADμC812的串口通信。
- j/ o9 D6 o( v* m 由于RS232接口电路是PC机和用户开发系统的唯一通路,因此,它是在线调试和下载功能实现的关键。在用户系统的开发研制过程中,经常会出现在线通信故障问题。导致该现象发生的原因有很多,但最有可能的是接口电路工作异常所产生。要判断RS232接口电路工作是否正常,可按以下步骤逐一检查RS232通信是否正常。
8 x0 L% W- H% Y8 C+ Z5 A ① V+和V-引脚电压是否足够高(分别超过+8V和-8V)。若电压较低,则可能ADM202芯片已损坏。
; U X. h/ o! [# k# m$ z7 ? ② R1IN脚是否存在±12V的脉冲信号。若存在,则说明PC机方面通信发送信号正常。
2 f1 T) D. g5 L, X8 W$ E/ ` ③ R1OUT脚是否存在+5V信号。若存在,则说明ADM202接收PC机信号工作正常。( Y, b* z2 y2 T) R9 z+ v3 w
④ T1IN脚是否存在+5V信号。若存在,则说明ADμC812对PC机的通信产生响应;否则是ADμC812通信存在问题,说明ADμC812工作不正常。) ]" r# S% ?. `9 }1 W2 \7 [
⑤ T1OUT脚是否存在±12V的脉冲信号。若存在,但ADμC812还无法进入在线调试状态,则说明DB9与PC机之间的串行接口电缆有问题。% c; @4 ^+ {7 c) q# w
(2)PSEN引脚$ `$ a. ?0 H4 S( ]6 y( z% V* |' i
用户系统在具备RS232接口电路之后,还需通过一个与地相连的1kΩ电阻将ADμC812的PSEN引脚拉至低电平(见参考文献[1]、[2]),才能进入在线调试和下载状态。因此,PSEN引脚拉低是在线调试和下载功能实现的另一关键所在。+ @; a/ I- W9 R0 p
值得强调的是,PSEN引脚与地之间连上1kΩ电阻并不一定就能保证PSEN为低电平。若静电造成PSEN引脚损伤,则1kΩ电阻不能将PSEN引脚拉低。经试验证明,在PSEN引脚损伤不严重时,可通过把PSEN直接对地短路将其拉至低电平;但若损伤严重,则即使直接接地,器件仍然不能工作。因此,在使用ADμC812时,应特别小心、谨防静电。如焊接芯片时应将电烙铁接地,并戴上防静电手镯。; i) r+ A5 A. N4 N' S; l
由于ADμC812的调试器是在用户系统复位时检测PSEN引脚状态的,因此,为提高通信成功几率,可在用户系统复位瞬间将PSEN引脚直接对地短路。但在ADμC812芯片进入在线调试或下载状态之后,PSEN引脚仍应通过1kΩ电阻接地。当然,若需要在下载程序后脱机运行,应将PSEN引脚与1kΩ下拉电阻断开,否则,ADμC812将一直保持在线调试状态。$ S5 ]) i) K! d2 ~- X
(3)资源占用问题4 y& |- B, c3 h" r2 G* Q8 K
ADμC812具有3个16位定时器/计数器,即:定时器0、定时器1和定时器2。每一个定时器/计数器包含2个8位寄存器THX和TLX(X=0,1和2)。所有3个定时器/计数器均可配置作为定时器或计数器,此功能和普通单片机相同。
8 A9 E9 A$ W3 D 由于与其他单片机不同,ADμC812具备在线调试功能,因此,芯片处于在线工作状态下某些功能将会受到限制。这是因为在线调试时,计算机和芯片之间的通信占用一定的资源所导致。经实践证明,定时器1就是被占用的资源之一。若用户在线调试的程序中使用了定时器1,则无论是设断点调试,还是单步或连续运行,都会有程序无法执行的情况发生。但若将程序中的定时器1屏蔽掉,则程序能正常运行,实现用户预定的功能。当然,在线调试程序时可以使用定时器0和定时器2,因它们未被占用。
# Y. \" u! w$ x8 H# f- R 虽然在线调试时,定时器1无法使用,但并不意味着用户不能在用户系统中利用该定时器。用户可先将预定功能用定时器0实现,在调试通过之后,再改用定时器1来实现;也可直接用定时器1实现,但只能盲调,因程序必须下载后脱机运行。5 Y& p! Y/ c+ b
2.A/D转换器的使用问题( b1 u* R% ^' o/ U
ADμC812内集成的ADC转换模块,包含了8通道、12位、单电源A/D转换器,这些A/D转换器是由基于电容DAC的常规逐次逼近转换器组成的,接收的模拟输入范围为0至+VREF(+2.5V)。另外,此模块还为用户提供片内基准、校准特性,模块内的所有部件能方便地通过3个寄存器SFR接口来设置。总之,ADμC812的ADC模块具有与一般ADC芯片相比拟的性能,并且操作简单、可靠性高,采集速率可高达200kHz。
: |) H. [8 L4 f8 K9 w0 L (1)基准电压
3 v* P7 Y( X. O6 k# V A/D转换器的2.5V基准电压既可由片内提供,也可由外部基准经VREF引脚驱动。若使用内部基准,则在VREF和CREF引脚与AGND之间都应当连接100nF电容以便去耦。这些去耦电容应放在紧靠VREF和CREF引脚处。为了达到规定的性能,建议在使用外部基准时,该基准应当在2.3V和模拟电源AVDD之间。
9 a) _1 Q/ t# B5 V* u1 I 由于片内基准高精度、低漂移且经工厂校准,并且当ADC或DAC使能时,在VREF引脚会出现此基准电压。因此,在进行系统扩展时,可将片内基准作为一个2.5V的参考电源来使用。若要把片内基准用到微转换器之内,则应在VREF引脚上加以缓冲并应在此引脚与AGND之间连接100nF电容。. d. A! b3 e& Y: U0 H& U
在实际应用中应当特别注意,内部VREF将保持掉电直到ADC或DAC外围设备模块之一被它们各自的使能位上电为止。
+ o) ~5 _2 c* w8 Z (2)模拟输入
) {+ i/ v2 v' r7 D4 O/ D& `4 G# } 与其他ADC芯片相比,ADμC812的ADC模块有一个缺点,就是ADC正常工作的模拟输入范围为0~+2.5V;而允许输入的电压范围只能为正电压(0~+5V)。经实验证明,若输入的模拟电压超过+2.5V(最大值为+5V),ADC的采样结果为最大值(0FFFH),虽然结果不对,但并没有影响ADμC812正常工作;但是,一旦输入负的模拟电压,则会影响ADμC812正常工作,表现为ADC的基准电压(VREF=+2.5V)消失和采样结果不正确,且若长时间输入负电压,将有可能损坏芯片。因此,在实际应用中,若发现启动ADC之后VREF端无电压,则应立即将芯片复位,并检查模拟输入信号的采集放大部分。在确保进入ADμC812的模拟信号在0~+2.5V范围内之后,才能再次启动ADC。实际应用时,应保证输入的模拟电压为正电平。
! I# I8 F- N0 q7 x 3.并行I/O端口的使用问题" h, m" i/ b U
与其他单片机一样,ADμC812也有4个通用数据端口(P0~P3)与外部器件交换数据,且除了用作通用I/O之外,某些端口还能实现外部存储器操作。另有一些端口则与器件上外围设备其他功能多路复用。
" K' s; k7 u: J3 C (1)P1口
$ I' m% U$ ^. y& P, Z 值得注意的是,在ADμC812中端口0、2和3是双向端口,而端口1是只输入端口。在图3中可以看到在P1口的电路中包括了位锁存器和输入缓冲器,但没有输出驱动器,因而P1口只能被配置为数字输入或模拟输入,不能用于输出。% C# w8 v5 X% B
当P1口用作模拟输入时,它对应于ADμC812内8通道模数转换的输入端口ADC0~ADC7。若在实际使用中,不须将8个通道ADC都用上,可将剩余的P1口引脚设置为数字输入,但此时须注意,它与标准的8051单片机用作数字输入的通用I/O口不同,认为高电平有效。因此,P1口用作数字输入时,在检测是否有输入信号之前,须将0写至对应端口,然后再判断。这就要求系统在设计时,应将用作数字输入的P1口外加1个下拉电阻,一般为几kΩ。- ]4 A; `. P# |
(2)P2口$ g- w) \ s, C6 J
如前所述,ADμC812的P2口也是双向端口,包含输入缓冲器、输出锁存器和输出驱动器。通过与P2口相应的端口SFR,可将P2口的各端口引脚独立地配置为数字输入或数字输出,以及对它们进行读、写访问。这些与一般单片机P2口作通用I/O口的用法相同。
, U3 k. u; m- c" g0 T: R4 m3 w# H C 但当ADμC812接有外部数据存储器时,P2口不仅要用于输出中8位地址(A8~A15),还要用于输出高8位地址(A16~A23),此用法类似于P0口。不同的是,P0口是数据和地址总线复用,而P2口是中位、高位字节地址总线复用。因此,P2口在用于外扩大容量数据存储器时,也应通过一个锁存器将高位字节地址锁存,如图4所示。
& V, r* c1 @+ T5 d' S" | 4.外部寻址问题3 o, {2 Z5 N- J( I J( e1 `
与其他单片机不同,ADμC812具有24根地址线。它可寻址的外部数据存储器空间为16MB,此超大容量的存储空间可满足众多应用领域的需求。由于外部数据存储器空间高达16MB,只用DPTR作间址寄存器是不够的。因此,ADμC812的数据指针是由3个8位寄存器来组成,分别是DPP(页字节寄存器)、DPH(高位字节寄存器)和DPL(低位字节寄存器),在进行内部和外部代码访问或外部数据访问时,由它们来提供存储器地址。与其他单片机一样,DPTR仍然是由DPH和DPL两个寄存器来构成,且用法相同;而DPP是用于传送A23~A16最高8位地址的寄存器,这相当于若将外部数据寄存器每64KB划分为1页,则不同的DPP值将对应于不同的页,因此取名为页寄存器。
1 I8 \, G" X$ h- @: A* b 5.SPI串口对P3口的影响; V% M% B- u4 b
为便于MCU与各种外围设备进行通信,ADμC812提供了三种串行I/O端口:UART接口、I2C兼容的串行接口和串行外设接口(SPI)。其中,SPI接口是工业标准的同步串行接口,它允许MCU与各种外围设备以串行方式(8位数据同时同步地被发送和接收)进行通信。由于只须使用4条线就可与多种标准外围器件直接接口,因此,SPI接口在串口通信方面有着广泛的应用。
5 a' ?( m9 x8 Z( U 然而,我们在使用ADμC812的SPI串口进行通信时,发现它与其他芯片(具有SPI串口功能)不同,此SPI串口的使能会对P3口产生影响,其现象表现为:无论P3口实际输入电平为何值,P3口的内部锁存器都认定为高电平,从而程序中的JB或JNB等判断转移指令将失去作用。这说明,SPI串口使能将使P3口只能作为输出口来使用。因此,在同时使用SPI串口和P3口作输入口时,为避免错误发生,必须在每次P3口检测输入信号之前都将SPI串口禁止。
4 p: m7 X0 u4 K! g b) Y/ n# g8 a 结束语! I v2 _ o. e
ADμC812作为一种新型的微控制器,具有一般单片机所不能比拟的强大功能。它内部集成的8通道高精度ADC和双12位DAC,使其能极有效地简化仪器中数据采集系统部分,同时它所提供的三种串口通信方式,可满足各种串行器件的接口问题。它的在线调试和下载功能可极大地方便用户系统的开发研制。经过一段时间探索和应用,我们已基本掌握ADμC812的各种功能,总结出一些经验和教训,本文旨在为用户提供借鉴参考。 |
|