|
带24位A/D转换的51单片机MSC1210及其应用
南京航空航天大学电子中心 魏小龙 施亿平 戴祥 摘要:本文介绍了德州仪器公司最近出品的带24位Δ-∑ A/D转换的51兼容单片机的特点与性能,以及FLASH的使用方法、AD转换的使用方法。 关键词:单片机,FLASH,Δ-∑ A/D转换 无论是功能,还是性能,德州仪器(TI)的MSC1210单片机都达到了混合信号处理的颠峰,它集成了一个增强型8051内核,有8路24位低功耗(4mW)Δ-∑ A/D转换;21个中断源;16位PWM;全双工UART(并兼容有SPI功能);停止方式电流小于1μA;比标准8051内核执行速度快3倍且全兼容;片内集成32K字节FLASH,而且FLASH可定义为程序分区与数据存储分区,给设计带来非常大的灵活性;片内SRAM也多达1.2K字节;采用TQFP64小型封装。由于具有如此高的模拟和数字集成度,对各种要求小体积、高集成度和精确测量而言,MCS1210实为理想的整合选择。图一是MSC1210的较为详细框图。 图一 MSC1210的详细框图
MSC1210特性介绍 模拟特性: 24位无丢失码A/D 转换,在10Hz采样频率下转换可得到22位有效转换结果,且转换噪音只有75nV,转换模块耗电<4mW; 可选缓冲输入且输入增益可调,调节范围为1~128; 片内带有精确的转换用参考电压,精度为0.2%,温漂为5ppm / ℃; 8路差分或单端输入通道; 在片偏移、增益表度,且漂移在0.02PPM/°C与0.5PPM/°C内。 数字特性: 8051完全兼容; 高速内核,每个指令周期只需4个时钟周期,在33MHz晶体驱动下,单周期指令的执行时间为121nS;双数据指针,可更加快数据传送; 高达32K FLASH存储器,FLASH存储器可分区为程序存储器与数据存储器,FLASH存储器可在系统串行编程,可加密,达1M次擦写周期,; 1280K SRAM型数据存储器; 2KB 启动ROM; 34条I/O口线; 额外的32位累加器; 3个16位定时/计数器,一个系统时钟,一个可编程看门狗定时器; 全双工UART,带DMA主、从方式SPI; 16位PWM; 多种能量控制方式,可耗电 < 1mA的空闲方式,可耗电<1 uA的停机模式,且各个模块的供电可以控制,低电压检测; 21个中断源,可提供系统的灵活实时控制; 表一给出了MSC1210的大致特性。 | 模拟电路 | 数字电路 | 外设特性 | | - 24位无丢失码 | - 兼容8051内核 | - 32位累加器 | | - 8路差动/单端输入 | - 工作性能达6-MIPS | - 电源管理 | | - PGA:1:128 | - 高达32-KB存储器 | - 电压监控 | | - 低功率工作:4mW | - 外部64-KB存储器 | - 64TQFP封装 | | - 单电源:2.7V-5.25V | - 10万次擦除/写操作 | | 表一 MSC1210特性表 FLASH存储器的使用 MSC1210系列单片机的片内存储器4K到32K字节不等。其中MSC1210Y5的存储器最大,有32K字节。而所有的存储器可以通过控制位来定义用于程序存储的大小与用于数据存储的大小。用于程序存储的FLASH只能通过CPU的取指令操作自动访问、以及用 MOVC 指令进行表格查询时用户访问。用于数据存储的FLASH可以片外RAM的方式用MOVX指令任意读写。由于FLASH 的这种特性,可将程序使用剩余的FLASH定义为数据存储使用,而不需要扩展数据存储器,对于节省空间以及提高系统可靠性很有意义。硬件配置寄存器0(HCR0)的低3位将定义FLASH存储器的划分,表二与表三反映了不同FLASH容量器件的程序存储器与数据存储器的划分情况。 举例说明:(使用MSC1210Y5) MOV HCR0,#02H ;划分32K FLASH中的各16K 为程序空间与数据空间。 …… MOV DPTR,#400H ;400H为数据存储器的第一字节 MOVX @DPTR,ADRESH ;保存转换结果的高字节到400H单元 INC DPTR ;401H为数据存储器的第二字节 MOVX @DPTR,ADRESM ;保存转换结果的中间字节到401H单元 INC DPTR ;402H为数据存储器的第三字节 MOVX @DPTR,ADRESL ;保存转换结果的低字节到402H单元 …… 在由HCR0的低3位定义了FLASH存储器的划分之后,程序存储器的起始地址依然是0000H,但结束地址由划分的尺寸决定(见表三);数据存储器的起始地址由0400H开始,不是0000H,结束地址由划分的尺寸决定(见表三)。在使用时,要注意数据存储器的读写地址不要超出范围。 表二 FLASH存储器容量划分 表三 FLASH存储器地址划分 24位模数转换及其使用方法 MSC1210内带8路24位模数转换器,由输入多路器、可编程增益放大器、调节器、数字滤波器、参考稳压源等组成。 1 输入多路器 输入多路器将切换多路模拟输入信号到输入缓冲器。共有9路输入信号,其中一路为片内温度传感器信号,每路输入可设置单极性输入与差分输入。片内配置有模拟输入缓冲,当不使用输入缓冲时, 输入阻抗为5M欧姆,当使用模拟输入缓冲时,输入阻抗由时钟频率与增益决定:
由寄存器ADMUX选择输入通道以及相应通道的极性。该寄存器绝对地址是0D7H,默认值是01。该寄存器的8位含义如下:
其中高4位为输入通道的正极性,INP2、INP1、INP0三位的二进制值就是对应的8路外部模拟通道,AINCOM是输入模拟公共端,最后通道(内部)为片内温度传感器输入。见表四。 表四 正极性选择 每一个通道的输入负极性选择由该寄存器的低4位决定。见表五。 表五 负极性选择 将表四与表五结合起来就可以选择每一个输入通道的输入是正极性还是负极性、或是差分输入(如果正负极性都选择,就是差分输入)。 2 可编程增益放大器与参考电压 可编程增益放大器能设定增益为1、2、4、8、16、32、64、128 。使用可编程增益放大器能非常有效地改善转换结果。当5V为满刻度时,设增益为1,则ADC可分辨出1uV;当40mV为满刻度,增益为128时,可分辨75nV。可见可编程增益放大器在改善转换分辨率上非常有用。寄存器ADCON0的低3位决定增益的大小。默认值是1。该寄存器同时也决定参考电压的选择,第5位为1将使能内部参考电压发生器,第4位将决定参考电压是2.5V还是1.5V。该寄存器默认值为30H,表示增益为1,使用内部2.5V 参考电压。 也可以使用外部参考源,但要求稳定性与精度都很高。使用外部参考源时,需要将内部参考源关闭,这时内部参考源的输出引脚为高阻抗,因此为了方便一般也将内部参考输出与外部参考输入两引脚连在一起,再用电容滤波。 3 转换频率与转换结果 可通过ADC时钟与转换设置寄存器设定转换频率。ADC时钟将由ACLK寄存器的低5位决定:
ADC时钟 = 系统时钟 / ( FREQ+1 ) 而采样频率在ACLK的基础之上由ADCON2、ADCON3两寄存器(绝对地址0DEH、0DFH)的内容DR(共11位)决定: 采样率 = (ACLK + 1)/(64 * DR) 转换结果将使用3个寄存器暂存:ADRESH(高字节)、ADRESM(中字节)、ADRESL(低字节)。可以定时采样,定时得到转换结果。 4 A/D转换举例 下面的程序将实现输入通道1的正极性模拟转换,并将转换结果送显示缓存显示。 void main(void) { PDCON &= 0x0f7; //打开转换器 ACLK = 30; // 设置ACLK频率 ADCON0=0x30; //选择片内参考电压 ADMUX=0x1; //选择第一通道正极性 while(1) { disbuffer[7] = (ADRESH>>4)&0XF; //使用6只数码管十六进制显示转换结果 disbuffer[6]=ADRESH&0XF; disbuffer[5] = (ADRESM>>4)&0XF; disbuffer[4]=ADRESM&0XF; disbuffer[3] = (ADRESL>>4)&0XF; disbuffer[2]=ADRESL&0XF; disp(); } } 总结 通过实际运用,可以发现TI的带24位A/D转换的51内核混合器件MSC1210的确具有很高的性能、很高的集成度、很大的灵活性。尤其值得一提的是片内FLASH的灵活运用,省去了扩展数据存储器需要的地址锁存器与SRAM,以及大面积的印刷板空间;带可编程增益放大的24位A/D转换器可以实现非常高精度的模数转换。
|