找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 563|回复: 1
打印 上一主题 下一主题

ADuC812单片机应用中应该考虑的问题

[复制链接]

2

主题

2

帖子

17

积分

二级会员(20)

Rank: 2Rank: 2

积分
17
跳转到指定楼层
1#
发表于 2012-11-6 17:09 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

EDA365欢迎您!

您需要 登录 才可以下载或查看,没有帐号?注册

x
    ADμC812是高度集成的高精度12位数据采集系统,其功能方框图如图1所示。从图中可知,该芯片内不仅集成了可重新编程非易失性闪速/电擦除程序存储器的高性能8位(与8051兼容)MCU,还包含了高性能的自校准8通道ADC及2通道12位DAC。
) G, O/ {6 c4 u! ~. g& V, [$ R    如所有与8051兼容的器件一样,对于程序和数据存储器,ADμC812具有各自独立的地址空间:64KB外部程序地址空间和16MB外部数据地址空间。但与其他器件不同的是,它包含了片内闪速存储器技术,向用户提供8KB的闪速/电擦除程序存储器、640B的闪速/电擦除数据存储器。% r; l- g; x6 v! I( W" P; y
    芯片集成了全部辅助功能块以充分支持可编程的数据采集核心。这些辅助功能块包括看门狗定时器(WDT)、电源监视器(PSM)以及ADC DMA功能。另外,为多处理器接口和I/O扩展提供了32条可编程的I/O线、I2C兼容的SPI和标准UART串行端口。
  W, q+ H+ u) g( k9 E- ]5 r    与以往的80C51单片机不同,ADμC812具有独特的在线调试和下载功能,由支持ADμC812的开发工具包QuickStart开发系统来提供。也就是说,在用户系统保留ADμC812的情况下,通过开发系统与ADμC812的串口通信,可直接对用户系统进行调试,并在调试完成后将已调试好的程序下载到ADμC812中。) ~* @# x5 _- N+ O3 t; h
    虽然ADμC812具有上述各种优良性能,但由于它是一种新型微控制器,与以往的单片机相比,在用法上有许多不同之处。因此,在进行ADμC812系统开发应用时,仍然有许多问题须要注意。下面,将我们在应用ADμC812开发产品时发现的一些应注意的问题及其解决办法介绍如下。: y" y$ N# _; O, P6 }+ j7 m% h, g: }# h
    应用中存在的若干问题/ p$ j( b5 D3 o# G2 m( X
    1.在线调试注意事项1 ]/ k% L. f- T2 r
    ADμC812与其他单片机突出不同之处在于支持它的开发系统不同。QuickStart开发系统是支持ADμC812的开发工具包,功能完善,包括下载、调试和模拟等功能。- w6 F8 j: E: M" t1 W6 [' F4 ^, U
    (1)RS232接口电路2 i! x* {/ ]1 ?
    对于用户开发系统来说,在线调试和下载功能最重要,也是最常使用的,但二者都需通过PC机上的串行端口与ADμC812的UART串行端口之间连接的串行端口电缆进行数据通信才能发挥作用。因此,用户在开发应用系统的同时,应设计一个RS232接口电路(如图2所示)来实现PC机与ADμC812的串口通信。
( f7 e3 b' J7 b  h+ A2 E    由于RS232接口电路是PC机和用户开发系统的唯一通路,因此,它是在线调试和下载功能实现的关键。在用户系统的开发研制过程中,经常会出现在线通信故障问题。导致该现象发生的原因有很多,但最有可能的是接口电路工作异常所产生。要判断RS232接口电路工作是否正常,可按以下步骤逐一检查RS232通信是否正常。  l1 B# r0 D1 n, |# C
    ① V+和V-引脚电压是否足够高(分别超过+8V和-8V)。若电压较低,则可能ADM202芯片已损坏。. S4 c% d. q9 \% u
    ② R1IN脚是否存在±12V的脉冲信号。若存在,则说明PC机方面通信发送信号正常。0 r' }3 o, e1 A, T, {) a
    ③ R1OUT脚是否存在+5V信号。若存在,则说明ADM202接收PC机信号工作正常。& e6 y  w; U9 D/ p! o
    ④ T1IN脚是否存在+5V信号。若存在,则说明ADμC812对PC机的通信产生响应;否则是ADμC812通信存在问题,说明ADμC812工作不正常。
5 Y1 E0 j9 f% z& A; h4 V    ⑤ T1OUT脚是否存在±12V的脉冲信号。若存在,但ADμC812还无法进入在线调试状态,则说明DB9与PC机之间的串行接口电缆有问题。6 Y$ O. @8 g! N5 _! {& L6 y
    (2)PSEN引脚) x1 j* d+ i) }% o8 |6 ], C$ |- h
    用户系统在具备RS232接口电路之后,还需通过一个与地相连的1kΩ电阻将ADμC812的PSEN引脚拉至低电平(见参考文献[1]、[2]),才能进入在线调试和下载状态。因此,PSEN引脚拉低是在线调试和下载功能实现的另一关键所在。- H+ A3 t9 \$ R7 \  m; O, v, M
    值得强调的是,PSEN引脚与地之间连上1kΩ电阻并不一定就能保证PSEN为低电平。若静电造成PSEN引脚损伤,则1kΩ电阻不能将PSEN引脚拉低。经试验证明,在PSEN引脚损伤不严重时,可通过把PSEN直接对地短路将其拉至低电平;但若损伤严重,则即使直接接地,器件仍然不能工作。因此,在使用ADμC812时,应特别小心、谨防静电。如焊接芯片时应将电烙铁接地,并戴上防静电手镯。7 m% }9 Q2 ~8 K
    由于ADμC812的调试器是在用户系统复位时检测PSEN引脚状态的,因此,为提高通信成功几率,可在用户系统复位瞬间将PSEN引脚直接对地短路。但在ADμC812芯片进入在线调试或下载状态之后,PSEN引脚仍应通过1kΩ电阻接地。当然,若需要在下载程序后脱机运行,应将PSEN引脚与1kΩ下拉电阻断开,否则,ADμC812将一直保持在线调试状态。
% P7 n) ^2 u1 y5 ~- b   (3)资源占用问题
) |* g' u- c& j4 J' v# @' u3 d" ~    ADμC812具有3个16位定时器/计数器,即:定时器0、定时器1和定时器2。每一个定时器/计数器包含2个8位寄存器THX和TLX(X=0,1和2)。所有3个定时器/计数器均可配置作为定时器或计数器,此功能和普通单片机相同。
" J6 f- M4 ^" ?( t. A* r2 m    由于与其他单片机不同,ADμC812具备在线调试功能,因此,芯片处于在线工作状态下某些功能将会受到限制。这是因为在线调试时,计算机和芯片之间的通信占用一定的资源所导致。经实践证明,定时器1就是被占用的资源之一。若用户在线调试的程序中使用了定时器1,则无论是设断点调试,还是单步或连续运行,都会有程序无法执行的情况发生。但若将程序中的定时器1屏蔽掉,则程序能正常运行,实现用户预定的功能。当然,在线调试程序时可以使用定时器0和定时器2,因它们未被占用。) A9 e4 B& _& V- e2 ]( A
    虽然在线调试时,定时器1无法使用,但并不意味着用户不能在用户系统中利用该定时器。用户可先将预定功能用定时器0实现,在调试通过之后,再改用定时器1来实现;也可直接用定时器1实现,但只能盲调,因程序必须下载后脱机运行。  |5 Y7 s0 I. g( X4 h
    2.A/D转换器的使用问题6 k, r, f: M$ A+ Y
    ADμC812内集成的ADC转换模块,包含了8通道、12位、单电源A/D转换器,这些A/D转换器是由基于电容DAC的常规逐次逼近转换器组成的,接收的模拟输入范围为0至+VREF(+2.5V)。另外,此模块还为用户提供片内基准、校准特性,模块内的所有部件能方便地通过3个寄存器SFR接口来设置。总之,ADμC812的ADC模块具有与一般ADC芯片相比拟的性能,并且操作简单、可靠性高,采集速率可高达200kHz。* i+ M  i( n. Y/ _" d
   (1)基准电压: U* h) ?& y! x8 }; m! K' ?! @
    A/D转换器的2.5V基准电压既可由片内提供,也可由外部基准经VREF引脚驱动。若使用内部基准,则在VREF和CREF引脚与AGND之间都应当连接100nF电容以便去耦。这些去耦电容应放在紧靠VREF和CREF引脚处。为了达到规定的性能,建议在使用外部基准时,该基准应当在2.3V和模拟电源AVDD之间。2 u* Y; I4 g/ R
    由于片内基准高精度、低漂移且经工厂校准,并且当ADC或DAC使能时,在VREF引脚会出现此基准电压。因此,在进行系统扩展时,可将片内基准作为一个2.5V的参考电源来使用。若要把片内基准用到微转换器之内,则应在VREF引脚上加以缓冲并应在此引脚与AGND之间连接100nF电容。/ n& n8 e- ?/ N, R' N/ ?' W
    在实际应用中应当特别注意,内部VREF将保持掉电直到ADC或DAC外围设备模块之一被它们各自的使能位上电为止。- y; W, F% O& j3 l
   (2)模拟输入
& d; V- L( _$ |4 A- k% k/ c# I7 I    与其他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。实际应用时,应保证输入的模拟电压为正电平。
6 y7 d. B7 {7 t: H5 c/ L   3.并行I/O端口的使用问题: b2 M; P; O. l2 m$ v# G3 y
   与其他单片机一样,ADμC812也有4个通用数据端口(P0~P3)与外部器件交换数据,且除了用作通用I/O之外,某些端口还能实现外部存储器操作。另有一些端口则与器件上外围设备其他功能多路复用。
2 x$ C* Y- f8 J& s1 F2 @! Z   (1)P1口  E% }! v6 `. R" j: i3 L
    值得注意的是,在ADμC812中端口0、2和3是双向端口,而端口1是只输入端口。在图3中可以看到在P1口的电路中包括了位锁存器和输入缓冲器,但没有输出驱动器,因而P1口只能被配置为数字输入或模拟输入,不能用于输出。* P5 I  E0 t  d
    当P1口用作模拟输入时,它对应于ADμC812内8通道模数转换的输入端口ADC0~ADC7。若在实际使用中,不须将8个通道ADC都用上,可将剩余的P1口引脚设置为数字输入,但此时须注意,它与标准的8051单片机用作数字输入的通用I/O口不同,认为高电平有效。因此,P1口用作数字输入时,在检测是否有输入信号之前,须将0写至对应端口,然后再判断。这就要求系统在设计时,应将用作数字输入的P1口外加1个下拉电阻,一般为几kΩ。
- ]4 i" O  ]! c$ w  E& Y- m# R   (2)P2口
: n+ W- F5 P- I+ }$ _    如前所述,ADμC812的P2口也是双向端口,包含输入缓冲器、输出锁存器和输出驱动器。通过与P2口相应的端口SFR,可将P2口的各端口引脚独立地配置为数字输入或数字输出,以及对它们进行读、写访问。这些与一般单片机P2口作通用I/O口的用法相同。
6 X: ]: O  X+ m0 i( Y( S7 c& D    但当ADμC812接有外部数据存储器时,P2口不仅要用于输出中8位地址(A8~A15),还要用于输出高8位地址(A16~A23),此用法类似于P0口。不同的是,P0口是数据和地址总线复用,而P2口是中位、高位字节地址总线复用。因此,P2口在用于外扩大容量数据存储器时,也应通过一个锁存器将高位字节地址锁存,如图4所示。0 o+ T" R7 ?! l' V
    4.外部寻址问题
; @7 S$ R( O0 Y; F6 _4 A* |4 g  T    与其他单片机不同,ADμC812具有24根地址线。它可寻址的外部数据存储器空间为16MB,此超大容量的存储空间可满足众多应用领域的需求。由于外部数据存储器空间高达16MB,只用DPTR作间址寄存器是不够的。因此,ADμC812的数据指针是由3个8位寄存器来组成,分别是DPP(页字节寄存器)、DPH(高位字节寄存器)和DPL(低位字节寄存器),在进行内部和外部代码访问或外部数据访问时,由它们来提供存储器地址。与其他单片机一样,DPTR仍然是由DPH和DPL两个寄存器来构成,且用法相同;而DPP是用于传送A23~A16最高8位地址的寄存器,这相当于若将外部数据寄存器每64KB划分为1页,则不同的DPP值将对应于不同的页,因此取名为页寄存器。
' D2 H2 q7 j* D$ [: f1 p* I    5.SPI串口对P3口的影响
; e* W1 h/ r0 Z9 R8 }( v    为便于MCU与各种外围设备进行通信,ADμC812提供了三种串行I/O端口:UART接口、I2C兼容的串行接口和串行外设接口(SPI)。其中,SPI接口是工业标准的同步串行接口,它允许MCU与各种外围设备以串行方式(8位数据同时同步地被发送和接收)进行通信。由于只须使用4条线就可与多种标准外围器件直接接口,因此,SPI接口在串口通信方面有着广泛的应用。
3 {4 f, U% ^. t1 L- A. O$ M2 `2 g    然而,我们在使用ADμC812的SPI串口进行通信时,发现它与其他芯片(具有SPI串口功能)不同,此SPI串口的使能会对P3口产生影响,其现象表现为:无论P3口实际输入电平为何值,P3口的内部锁存器都认定为高电平,从而程序中的JB或JNB等判断转移指令将失去作用。这说明,SPI串口使能将使P3口只能作为输出口来使用。因此,在同时使用SPI串口和P3口作输入口时,为避免错误发生,必须在每次P3口检测输入信号之前都将SPI串口禁止。' G, f% E5 \+ {  P# Y  N! Z: r
    结束语
, @( _6 `. i8 x    ADμC812作为一种新型的微控制器,具有一般单片机所不能比拟的强大功能。它内部集成的8通道高精度ADC和双12位DAC,使其能极有效地简化仪器中数据采集系统部分,同时它所提供的三种串口通信方式,可满足各种串行器件的接口问题。它的在线调试和下载功能可极大地方便用户系统的开发研制。经过一段时间探索和应用,我们已基本掌握ADμC812的各种功能,总结出一些经验和教训,本文旨在为用户提供借鉴参考。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

11

主题

362

帖子

1450

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1450
2#
发表于 2012-11-16 11:37 | 只看该作者
没用过这款,关注一下!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-11-10 08:16 , Processed in 0.064176 second(s), 32 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表