TLC5615串行数模转换器在开关电源中的应用
由时序图可以看出,当片选CS为低电平时,输入数据DIN由时钟SCLK同步输入或输出,而且最高有效位在前,低有效位在后。输入时SCLK的上升沿把串行输入数据DIN移入内部的16位移位寄存器,SCLK的下降沿输出串行数据DOUT,片选CS的上升沿把数据传送至DAC寄存器。
当片选CS为高电平时,串行输入数据DIN不能由时钟同步送入移位寄存器;输出数据DOUT保持最近的数值不变而不进入高阻状态。由此要想串行输入数据和输出数据必须满足两个条件:第一时钟SCLK的有效跳变;第二片选CS为低电平。这里,为了使时钟的内部馈通最小,当片选CS为高电平时,输入时钟SCLK应当为低电平。
串行数模转换器TLC5615的使用有两种方式,即级联方式和非级联方式。如不使用级联方式,DIN只需输入12位数据。DIN输入的12位数据中,前10位为TLC5615输入的D/A转换数据,且输入时高位在前,低位在后,后两位必须写入数值为零的低于LSB的位,因为TLC5615的DAC输入锁存器为12位宽。如果使用TL5615的级联功能,来自DOUT的数据需要输入16位时钟下降沿,因此完成一次数据输入需要16个时钟周期,输入的数据也应为16位。输入的数据中,前4位为高虚拟位,中间10位为D/A转换数据,最后2位为低于LSB的位即零。
2应用电路实例
图3给出了在开关电源中,TLC5615和AT89C51单片机的接口电路。在电路中,AT89C51单片机的P3.0-P3.2分别控制TLC5615的片选CS,串行时钟输入SCLK和串行数据输入DIN。电路的连接采用非级联方式。根据开关电源的设计要求,可变基准电压范围为0V~4V。因此,TLC5615的基准电压选为2.048V,其最大模拟输出电压为4.096V。可满足开关电源的要求。
TLC5615采用非级联方式,将要输入的12位数据存在R0、R1寄存器中,其D/A转换程序如下:
CLRP3?0;片选有效
MOVR2,#4;将要送入的前四位数据位数
MOVA,R0;前四位数据送累加器低四位
SWAPA;A中高四位与低四位互换
LCALLWR?data;DIN输入前四位数据
MOVR2,#8;将要送入的后八位数据位数
MOVA,R1;八位数据送入累加器A
LCALLWR?data;DIN输入后八位数据
CLRP3?1;时钟低电平
SETBP3?0;片选高电平,输入的12位数据有效
END:结束
送数子程序如下:
WR?data:NOP;空操作
LOOP:CLRP3?1;时钟低电平
RLCA;数据送入位标志位CY
MOVP3?2,C;数据输入有效
SETBP3?1;时钟高电平
DJNZR2,LOOP;循环送数
RET返回
3结语
由于采用接口简单的模拟数字转换器TLC5615,使得开关电源的硬件电路大为简化,线路板面积缩小,成本降低。
评论