ADuC702x系列单片机数据采集系统的应用要点
0赞1.简介
ADuC702x系列微转换器(ADuC7019/7020/7021/7022/7024/7025/7026/7027)是全集成的1 MSPS,12位数据采集系统,它在单个芯片内包含了一个高性能多通道ADC,一个16位/32位微控制器(MCU)和一个闪速/电擦除存储器。
ADC包括12个单端输入。另外的4个输入是可被DAC的四个输出引脚多路复用的。这4个DAC输出只适用于某些特定的模式(ADuC7020和ADuC7026)。但是,在许多情况下DAC输出是不存在的,但这些引脚仍然可以被用来作为另外的ADC输入,提供最多16路的ADC输入。ADC可能以单端或差分输入模式操作。ADC输入电压是0到VREF。另外,芯片内部还集成了UART/I2C/SPI 串行接口。
2.模拟接口----ADC
硬件方面,注意信号电压不应大于2.5V,大于2.5V的电压采样值均为0x0FFF,如果大于3.3V,那后果就严重了哦~可能会导致ADC损坏,关于信号的滤波,通常可以采样两种方式
硬件滤波常用阻容滤波,这种方式不用多说,比较简单~
设计中也可以采样软件滤波的方式,简单的一个例子如下
软件滤波程序:
#include "Filter.h"
3.数字接口---- UART/SPI/I2C
ADuC7026共配置了三种串行接口:UART串行接口、SPI串行接口和I2C兼容串行接口。
3.1
UART串行接口是全双工的,即可以同时发送和接收数据。
UART波特率的设置,以9600bps为例;
采用标准波特率发生器设定UART波特率为9600bps的程序如下:
COMCON0 = 0x080; //置位DLAB,可实现对COMDIV0和COMDIV1的访问
COMDIV0 = 0x088; //设定DIV0 和DIV1计算DL
COMDIV1 = 0x000;
COMCON0 = 0x007; // 清除DLAB
3.2
SPI是工业标准的同步串行接口,它允许8位数据同时同步发送和接收,系统可配置成主(master)或从(slave)操作。
主模式下SPI速度与时钟分频器位对应表
|
时钟分频位 |
0 |
1 |
2 |
3 |
4 |
5 |
|
SPIDIV(16进制) SPI频率(MHZ) |
0x05 3.482 |
0x0B 1.741 |
0x17 0.870 |
0x2F 0.435 |
0x5F 0.218 |
0xBF 0.109 |
3.3
I2C总线是双向两线(SCL——串行时钟、SDA——串行数据线)制同步串行总线,具有竞争检测和仲裁机制,可使多个主机任意同时发送数据而不破坏总线上的数据信息。非常适合在器件之间进行近距离数据通信。 在系统里,I2C主机为传送产生串行时钟。主机通道可配置为快速模式(400kHz)和标准模式下(100kHz)。
例:I2C0DIV = 0xCFCF; // 设置I2C0串行时钟频率,0xCFCF对应100kHz
例:I2C0DIV = 0x3232; // 设置I2C0串行时钟频率,0x3232对应400kHz
注意I2C使用时SCL和SDA引脚一定要接上拉电阻,典型值为10K 欧姆
