aduc812作为新一代微控制器,具有强大的功能,比以往的单片机有着更广阔的应用前景。在实际应用中发现,芯片本身尚存在一些应注意的问题及使用时的特殊要求。本文对这些问题进行总结,以供读者参考。
关键词: 在线调试数据转换spi
引言
aduc812是高度集成的高精度12位数据采集系统,其功能方框图如图1所示。从图中可知,该芯片内不仅集成了可重新编程非易失性闪速/电擦除程序存储器的高性能8位(与8051兼容)mcu,还包含了高性能的自校准8通道adc及2通道12位dac。
图1 aduc812功能方框图
如所有与8051兼容的器件一样,对于程序和数据存储器,aduc812具有各自独立的地址空间:64kb外部程序地址空间和16mb外部数据地址空间。但与其他器件不同的是,它包含了片内闪速存储器技术,向用户提供8kb的闪速/电擦除程序存储器、640b的闪速/电擦除数据存储器。
芯片集成了全部辅助功能块以充分支持可编程的数据采集核心。这些辅助功能块包括看门狗定时器(wdt)、电源监视器(psm)以及adc dma功能。另外,为多处理器接口和i/o扩展提供了32条可编程的i/o线、i2c兼容的spi和标准uart串行端口。
与以往的80c51单片机不同,aduc812具有独特的在线调试和下载功能,由支持aduc812的开发工具包quickstart开发系统来提供。也就是说,在用户系统保留aduc812的情况下,通过开发系统与aduc812的串口通信,可直接对用户系统进行调试,并在调试完成后将已调试好的程序下载到aduc812中。
虽然aduc812具有上述各种优良性能,但由于它是一种新型微控制器,与以往的单片机相比,在用法上有许多不同之处。因此,在进行aduc812系统开发应用时,仍然有许多问题须要注意。下面,将我们在应用aduc812开发产品时发现的一些应注意的问题及其解决办法介绍如下。
图2 rs232接口电路
由于rs232接口电路是pc机和用户开发系统的唯一通路,因此,它是在线调试和下载功能实现的关键。在用户系统的开发研制过程中,经常会出现在线通信故障问题。导致该现象发生的原因有很多,但最有可能的是接口电路工作异常所产生。要判断rs232接口电路工作是否正常,可按以下步骤逐一检查rs232通信是否正常。
① v+和v-引脚电压是否足够高(分别超过+8v和-8v)。若电压较低,则可能adm202芯片已损坏。
② r1in脚是否存在±12v的脉冲信号。若存在,则说明pc机方面通信发送信号正常。
③ r1out脚是否存在+5v信号。若存在,则说明adm202接收pc机信号工作正常。
④ t1in脚是否存在+5v信号。若存在,则说明adμc812对pc机的通信产生响应;否则是adμc812通信存在问题,说明adμc812工作不正常。
⑤ t1out脚是否存在±12v的脉冲信号。若存在,但adμc812还无法进入在线调试状态,则说明db9与pc机之间的串行接口电缆有问题。
(2) psen引脚
用户系统在具备rs232接口电路之后,还需通过一个与地相连的1kω电阻将adμc812的psen引脚拉至低电平(见参考文献[1]、[2]),才能进入在线调试和下载状态。因此,psen引脚拉低是在线调试和下载功能实现的另一关键所在。
值得强调的是,psen引脚与地之间连上1kω电阻并不一定就能保证psen为低电平。若静电造成psen引脚损伤,则1kω电阻不能将psen引脚拉低。经试验证明,在psen引脚损伤不严重时,可通过把psen直接对地短路将其拉至低电平;但若损伤严重,则即使直接接地,器件仍然不能工作。因此,在使用adμc812时,应特别小心、谨防静电。如焊接芯片时应将电烙铁接地,并戴上防静电手镯。
由于adμc812的调试器是在用户系统复位时检测psen引脚状态的,因此,为提高通信成功几率,可在用户系统复位瞬间将psen引脚直接对地短路。但在adμc812芯片进入在线调试或下载状态之后,psen引脚仍应通过1kω电阻接地。当然,若需要在下载程序后脱机运行,应将psen引脚与1kω下拉电阻断开,否则,adμc812将一直保持在线调试状态。
(3) 资源占用问题
adμc812具有3个16位定时器/计数器,即:定时器0、定时器1和定时器2。每一个定时器/计数器包含2个8位寄存器thx和tlx(x=0,1和2)。所有3个定时器/计数器均可配置作为定时器或计数器,此功能和普通单片机相同。
由于与其他单片机不同,adμc812具备在线调试功能,因此,芯片处于在线工作状态下某些功能将会受到限制。这是因为在线调试时,计算机和芯片之间的通信占用一定的资源所导致。经实践证明,定时器1就是被占用的资源之一。若用户在线调试的程序中使用了定时器1,则无论是设断点调试,还是单步或连续运行,都会有程序无法执行的情况发生。但若将程序中的定时器1屏蔽掉,则程序能正常运行,实现用户预定的功能。当然,在线调试程序时可以使用定时器0和定时器2,因它们未被占用。
虽然在线调试时,定时器1无法使用,但并不意味着用户不能在用户系统中利用该定时器。用户可先将预定功能用定时器0实现,在调试通过之后,再改用定时器1来实现;也可直接用定时器1实现,但只能盲调,因程序必须下载后脱机运行。
2? a/d转换器的使用问题
adμc812内集成的adc转换模块,包含了8通道、12位、单电源a/d转换器,这些a/d转换器是由基于电容dac的常规逐次逼近转换器组成的,接收的模拟输入范围为0至+vref(+2.5v)。另外,此模块还为用户提供片内基准、校准特性,模块内的所有部件能方便地通过3个寄存器sfr接口来设置。总之,adμc812的adc模块具有与一般adc芯片相比拟的性能,并且操作简单、可靠性高,采集速率可高达200khz。
(1) 基准电压
a/d转换器的2.5v基准电压既可由片内提供,也可由外部基准经vref引脚驱动。若使用内部基准,则在vref和cref引脚与agnd之间都应当连接100nf电容以便去耦。这些去耦电容应放在紧靠vref和cref引脚处。为了达到规定的性能,建议在使用外部基准时,该基准应当在2.3v和模拟电源avdd之间。
由于片内基准高精度、低漂移且经工厂校准,并且当adc或dac使能时,在vref引脚会出现此基准电压。因此,在进行系统扩展时,可将片内基准作为一个2.5v的参考电源来使用。若要把片内基准用到微转换器之内,则应在vref引脚上加以缓冲并应在此引脚与agnd之间连接100nf电容。
在实际应用中应当特别注意,内部vref将保持掉电直到adc或dac外围设备模块之一被它们各自的使能位上电为止。
(2) 模拟输入
与其他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。实际应用时,应保证输入的模拟电压为正电平。
3?并行i/o端口的使用问题
与其他单片机一样,adμc812也有4个通用数据端口(p0~p3)与外部器件交换数据,且除了用作通用i/o之外,某些端口还能实现外部存储器操作。另有一些端口则与器件上外围设备其他功能多路复用。
(1) p1口
值得注意的是,在adμc812中端口0、2和3是双向端口,而端口1是只输入端口。在图3中可以看到在p1口的电路中包括了位锁存器和输入缓冲器,但没有输出驱动器,因而p1口只能被配置为数字输入或模拟输入,不能用于输出。
当p1口用作模拟输入时,它对应于adμc812内8通道模数转换的输入端口adc0~adc7。若在实际使用中,不须将8个通道adc都用上,可将剩余的p1口引脚设置为数字输入,但此时须注意,它与标准的8051单片机用作数字输入的通用i/o口不同,认为高电平有效。因此,p1口用作数字输入时,在检测是否有输入信号之前,须将0写至对应端口,然后再判断。这就要求系统在设计时,应将用作数字输入的p1口外加1个下拉电阻,一般为几kω。
图3 p1口位锁存器与输入缓冲
(2) p2口
如前所述,adμc812的p2口也是双向端口,包含输入缓冲器、输出锁存器和输出驱动器。通过与p2口相应的端口sfr,可将p2口的各端口引脚独立地配置为数字输入或数字输出,以及对它们进行读、写访问。这些与一般单片机p2口作通用i/o口的用法相同。
但当adμc812接有外部数据存储器时,p2口不仅要用于输出中8位地址(a8~a15),还要用于输出高8位地址(a16~a23),此用法类似于p0口。不同的是,p0口是数据和地址总线复用,而p2口是中位、高位字节地址总线复用。因此,p2口在用于外扩大容量数据存储器时,也应通过一个锁存器将高位字节地址锁存,如图4所示。
图4 p2口地址锁存
4 外部寻址问题
与其他单片机不同,adμc812具有24根地址线。它可寻址的外部数据存储器空间为16mb,此超大容量的存储空间可满足众多应用领域的需求。由于外部数据存储器空间高达16mb,只用dptr作间址寄存器是不够的。因此,adμc812的数据指针是由3个8位寄存器来组成,分别是dpp(页字节寄存器)、dph(高位字节寄存器)和dpl(低位字节寄存器),在进行内部和外部代码访问或外部数据访问时,由它们来提供存储器地址。与其他单片机一样,dptr仍然是由dph和dpl两个寄存器来构成,且用法相同;而dpp是用于传送a23~a16最高8位地址的寄存器,这相当于若将外部数据寄存器每64kb划分为1页,则不同的dpp值将对应于不同的页,因此取名为页寄存器。
5? spi串口对p3口的影响
为便于mcu与各种外围设备进行通信,adμc812提供了三种串行i/o端口:uart接口、i2c兼容的串行接口和串行外设接口(spi)。其中,spi接口是工业标准的同步串行接口,它允许mcu与各种外围设备以串行方式(8位数据同时同步地被发送和接收)进行通信。由于只须使用4条线就可与多种标准外围器件直接接口,因此,spi接口在串口通信方面有着广泛的应用。
然而,我们在使用adμc812的spi串口进行通信时,发现它与其他芯片(具有spi串口功能)不同,此spi串口的使能会对p3口产生影响,其现象表现为:无论p3口实际输入电平为何值,p3口的内部锁存器都认定为高电平,从而程序中的jb或jnb等判断转移指令将失去作用。这说明,spi串口使能将使p3口只能作为输出口来使用。因此,在同时使用spi串口和p3口作输入口时,为避免错误发生,必须在每次p3口检测输入信号之前都将spi串口禁止。
结束语
adμc812作为一种新型的微控制器,具有一般单片机所不能比拟的强大功能。它内部集成的8通道高精度adc和双12位dac,使其能极有效地简化仪器中数据采集系统部分,同时它所提供的三种串口通信方式,可满足各种串行器件的接口问题。它的在线调试和下载功能可极大地方便用户系统的开发研制。经过一段时间探索和应用,我们已基本掌握adμc812的各种功能,总结出一些经验和教训,本文旨在为用户提供借鉴参考。mes
参考文献
1 analog devices inc. microconvertertm, multichannel 12-bit adc with embedded flash mcu adμc812,ver 2.0 september 1999
2 analog devices inc. adμc812 user’s manual,2000
3 analog devices inc. microconvertertm,spi serial port,1999
4 孙涵芳,徐爱卿.单片机原理及应用.北京:北京航空航天大学出版社,1988
Miniware TS101 智能烙铁评测:多一种选择
iPhone 3GS上网cmwap破解
荣耀9发布会即将开始:男神胡歌等和你一起造未来,荣耀发布会视频直播地址在线看
传欧洲有15家大型电池工厂正在建设中
琢磨了一天的CAN协议
ADuC812微控制器的应用及原理
贸易战、汇率波动...联创光电2018如何实现业绩再增?
无线生物识别锁的制作
我们都生活在一个计算机模拟出来的世界里,你相信吗?
上半年印度高端智能手机出货量增加18%,三星占据37%的份额
华为P11什么时候上市?华为P11提前曝光,外观惊艳、配置强劲,不负旗舰之名!
4G物业执法记录仪助力物业管理升级
深度分析48V车载电气系统以及48V轻混系统
“同心同行,共创未来”创盈芯2021年度员工团建活动圆满举行
傅里叶级数有时移特性
华硕笔记本电脑哪款好
强化学习泡沫之后,人工智能的终极答案是什么?
苹果手机持续降价 iPhone XR一个月内直降1000+就问你怕不怕
做好共模绕线电感选型这两个方面务必关注
sql和sql server的区别总结分析