串行D/A转换器与单片机的接口设计
扫描二维码
随时随地手机看文章
摘要:简述串行D/AMAX521的工作原理,介绍它的工作时序及其与单片机的连接方法和部分程序。
关键词:串行D/A;I2C总线;单片机
1引言
MAX521是一种2线8路八位电压输出DAC(数模转换器)。MAX521有5路参考电压输入,前面的四路DAC(DAC0~DAC3)每路有一个独立的参考电压输入(REF0~REF3),允许独立地设置每路的电压范围;剩下的四路DAC(DAC4~DAC7)共享一路参考电压输入REF4。它具有串行接口和内置软件协议,允许最高转换频率达400kbps。MAX521的接口具有双缓冲输入结构,允许DAC的寄存器单独或者同时更新;它具有低能耗模式,可以使工作电流减少到4μA。MAX521以单一的+5V电源供电。
应用范围:最小模拟器件系统;数据偏移/采样调节;工业过程控制;自动检测设备。
MAX521有20脚DIP,24脚SO和24脚SSOP三种封装形式。20脚DIPMAX521的引脚如图1。
OUT0~OUT7:DAC0~7的电压输出端;REF0~REF3:DAC0~3的参考电压输入端;REF4:DAC4~7的参考电压输入端;AD0、AD1:设备地址输入引脚;SCL:串行时钟输入端;SDA:串行数据输入端;DGND:数字信号地;AGND:模拟信号地
2MAX521的软件通讯协议
I2C总线组成:仅由两条线组成。一条是时钟线(SCL),另一条是数据线(SDA)。SCL线为时钟信号,由总线控制设备产生,为总线提供统一的时钟信号。
SDA线为数据信号,在总线控制设备和总线上的其他设备间进行双向传送。
I2C总线协议规定:SCL为高电平时SDA信号有效,SDA线上的数据变化应在SCL为低电平时进行。此规定唯一的例外是开始信号和停止信号。
I2C输入/输出一个字节的格式是高位在前、低位在后。每一次I2C总线访问是由一系列的基本操作组成的,下面对这些基本操作进行详细解释。
2.1开始信号
每次I2C总线访问前要在总线上发送开始信号。当SCL线为高电平时,SDA线由高变低,便形成开始信号。
2.2结束信号
每次I2C总线访问后要在总线上发送结束信号。当SCL线为高电平时,SDA线由低变高,便形成结束信号。
开始信号和停止信号的时序图如下:
2.3器件寻址字节
无论读写操作均需一个器件寻址字节。MAX521的寻址字节的前五位为01010(选中该设备的标志代码)。后两位为设备地址,由MAX521的AD0、AD1引脚的状态决定。最后一位X是向设备写入或读出数据,若向MAX521写入数据时X为0。
下面是MAX521完整的工作时序图:
2.4数据地址字节或命令字节
设备寻址字节后为命令字。命令字的前三位为0,后面两位为RST和PD,再后面三位A2A1A0是8个DAC输出寄存器的通道地址。数据地址字节或命令字节的工作时序见图4:
R2R1R0设置为0,属保留位。当RST为高时,MAX521复位所有DAC寄存器,但输出一直保持到“停止”信号。当PD位为高时,在收到“停止信号”后MAX521进入低能耗模式。在低能耗模式中,DAC输出取决于此时通道地址设置和输出字节设置状态,此时提供最大电流为20μA。当PD位为低时,MAX521返回正常工作状态后紧跟着发送“停止信号”,DAC输出的电压取决于当前通道地址设置和输出字节设置情况。
2.5应答信号
在每传送完一个地址字节或一个数据字节之后的第九个时钟脉冲期间,接收方在SDA线上产生一个低电平的应答信号ACK,以通知发送方数据已接收到,可以继续发送。所有数据传送完毕后,单片机向SDA线发送一个停止信号,结束该次数据传送。
注意:
1)总线空闲时,SCL和SDA线应保持在高电平。
2)一次新的启动前,总线空闲时间tBUF>4.7μs。
3)时钟为高电平、低电平的时间和开始信号建立时间、结束信号建立时均需大于4.7μs。
4)两次写发送时间间隔tWR>10ms。
5)SCL线的操作速率可以达到400kHz。
3MAX521与MCU的接口和程序
如图1所示,MAX521与单片机的P1.6、P1.7相连,并把它作为I2C总线来操作。所有参考电压均接+5V,使输出的模拟电压值在0~+5V之间。设备地址设为01B。OUTPUT后接执行设备。
4结束语
本系统已成功应用在具有多个DAC转换的电路中,比通常并行DAC器件节省,并为智能化设备研发提供了很好的方案。