[STM8] DAC之TLC5615

[复制链接]
1439|3
 楼主| piteqiu 发表于 2020-6-27 18:50 | 显示全部楼层 |阅读模式
  TLC5615是一款10位的DAC,采用三线SPI驱动方式,本文将介绍TLC5615的电路设计以及驱动程序编写。
  如下图所示,TLC5615与MCU的接口为DIN、SCLK和CS,其中CS为芯片片选端,也可直接接低电平;DOUT端用于级联输出,不做介绍。
2045579-20200604214308113-1199506242.jpg

  TLC5615的输出电压为0V—2*Vref,以上图为例,基准电压源REF3020的电压为2.048V,则TLC5615的输出电压范围为0V—4.096V,手册中的说明如下:
2045579-20200604214939837-2017763454.jpg

 楼主| piteqiu 发表于 2020-6-27 18:51 | 显示全部楼层
  那么在此电路中1LSB对应0.004V,也就是4mV,电压输出端可以直接接负载,也可以先采用运放进行跟随,这里需要注意的是,如果需要在整个输出电压范围内使用TLC5615,运放最好选用轨到轨输出的运放,否则将达不到输出效果,电路中的SGM358就是一个轨到轨的运放,如果使用的是通用运放比如LM358,在5V单电源供电下,输出一般只有0.5V—3.5V。
  同时TLC5615的电压稳定时间通常为12.5us,所以无法用于高速应用。
  驱动程序的编写第一步:时序的理解。
2045579-20200604225824919-238135392.jpg

  CS选通很容易理解,DOUT在不级联使用的情况下也不用关注,那么通过这个图可以很清晰的看出,DIN在时钟信号SCLK的低电平允许切换状态,在SCLK的上升沿将数据锁存。
  驱动程序编写第二步:数据传输协议。
2045579-20200604230516571-1485205085.jpg

 楼主| piteqiu 发表于 2020-6-27 18:51 | 显示全部楼层
  这里采用12位数据传输方式,51单片机驱动程序如下。
  1. #ifndef _tlc5615_h
  2. #define _tlc5615_h

  3. #include "stc8.h"
  4. #include "delay.h"

  5. #define uchar unsigned char
  6. #define uint unsigned int

  7. sbit TLC5615_DIN=P2^7;
  8. sbit TLC5615_CLK=P2^6;
  9. sbit TLC5615_CS=P2^5;
  10. //sbit TLC5615_DOUT=P2^4;

  11. void tlc5615_init();        //init tlc5615
  12. void tlc5615_set(uint vol);        //set voltage to tlc5615

  13. #endif


 楼主| piteqiu 发表于 2020-6-27 18:52 | 显示全部楼层
  1. #include "tlc5615.h"

  2. void tlc5615_init()        //init tlc5615
  3. {
  4.     TLC5615_DIN=0;
  5.     TLC5615_CLK=0;
  6.     TLC5615_CS=1;
  7.     //TLC5615_DOUT=1;
  8. }

  9. void tlc5615_set(uint vol)        //set voltage to tlc5615
  10. {
  11.     uchar i;
  12.     uint temp;
  13.    
  14.     temp=vol<<6;
  15.    
  16.     TLC5615_CS=0;
  17.     TLC5615_CLK=0;
  18.     for(i=0;i<12;i++)
  19.     {
  20.         if(temp&0x8000)
  21.             TLC5615_DIN=1;
  22.         else
  23.             TLC5615_DIN=0;
  24.         TLC5615_CLK=1;
  25.         temp=temp<<1;
  26.         TLC5615_CLK=0;
  27.     }
  28.     TLC5615_CS=1;
  29. }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

39

主题

292

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部