1 AduC812的通用数据端口
AduC812是一种新型的高度集成的高精度12位数据采集系统。在其片内,不仅包含了可重新编程的非易失性闪速/电擦除程序存储器的高性能8位(与8051兼容)MCU,还包含了高性能的自校准多通道(8个输入通道)ADC,两个12位DAC。AduC812微控制器内核与8051指令集兼容,具有9个中断源(2个优先级)。片内还集成了8K字节的闪速/电擦除程序存储器、640字节的闪速/电擦除数据存储器以及256字节RAM。
AduC812共有52个管脚,使用4个通用数据端口P0~P3与外部器件进行数据交换。每一个I/O口都有自己不同的驱动执行电路。除端口1之外都是8位双向端口。端口1的操作是AduC812特有的,表1说明了P1口可复用的管脚功能。
表1 P1口管脚说明
所有端口均包含位锁存器和输入缓冲器,I/D双向端口还包含了输出驱动器。由于P1口没有输出驱动器,所以P1口只能是输入端口,只能被配置为数字输入或模拟输入,不能用于输出,如图1所示。AduC812的P1口通常用于模拟输入;当不用于模拟输入时,可将0写至端口值,这样就被设置为数字输入方式。
2 P1口的各种功能与应用
P1口的主要功能是ADC的模拟输入,另外还可用于一些控制输入、定时器2和计数器2的数字输入以及SPI从属选择输入等。
2.1 模/数转换输入
AduC812中的ADC转换块包含了8通道、12位、单电源A/D转换器。此模块为用户提供了多通道多路转换器、跟踪/保持、片内基准、校准特性。此模块内的所有部件都能方便地通过3个寄存器SFR接口来设置。
A/D转换器由基于电容DAC的常规逐次逼近转换器组成。转换器接收的模拟输入范围为0至+VREF。片内提供高精度、低漂移并经工厂校准的2.5V基准电压。内部基准可经外部VREF引脚过驱动。外部基准在2.3V至AVDD的范围内。
AduC812装有工厂编程的校准系数,它在上电时自动下载到ADC,以确保最佳的ADC性能。ADC核包括内部失调和增益校准寄存器,所提供的软件校准子程序可允许用户在需要时重写工厂编程的校准系数,以便使用户目标系统中端点误差的影响为最小。
来自片内温度传感器的电压输出正比于绝对温度,它也可向前端ADC多路转换器(实际上是第9个ADC通道输入)传送。
2.1.1 ADC转移函数
ADC的模拟输入范围是0V至VREF。在此范围内,设计的代码跳变发生在连续的整数LSB值的中间(即LSB,LSB,LSB,……FS-LSB)。当VREF=2.5V时,输出码是直接的二进制数,1LSB=FS/4096或2.5V/4096=0.61mV。在0至VREF范围内理想的输入/输出转移特性如图2所示。
来源:电子发烧友