真的是好久不见!
此篇博客介绍TLC5615的控制之SPI建模。
PART1:TLC5615及其时序控制原理介绍
TLC5615是TI公司的一款10位DAC芯片,控制兼容SPI接口。其引脚图如下:
从引脚图看到,通信接口为:DIN、SCLK、CS_N和DOUT,其中DOUT用于级联方式,本次设计采用的是非级联方式,故不用到DOUT;模拟接口:OUT(模拟电压输出)、REF(基准电压输入)。
(2019.07.12)对tlc5615芯片描述进行相关补充:
1、sclk串行移位时钟的最快频率限制:该值有spi传输协议限制,一般取决于Tsclk的高低电平的最小值之和。由手册可知,tw(CH)=tw(CL)=25ns(最小值),则fsclk_max=1/50ns=20MHz,留有一定空间,故fsclk不能过大,手册给出经验值14MHz,设计时按照此值即可。
2、dac输出极限频率限制:
手册中有个概念,名为Setting time(注意不是建立时间setting up time),其义为:当输入的数字16进制码(12bit)从000变化到3ff(或者从3ff变化到000),dac输出电压保持稳定在目标电压的+-0.5LSB范围内的时间,也可以称之为广义的建立时间。按这样定义的话,这个参数决定了dac的输出频率,因为这个时间概念是一个范围概念,其包括了很多个时间之和(隐含从000à001的时间以及001à010的时间等等,他是这之间所有变换的时间之和),则fo_max=1/(2*12.5us)=40KHz,很多资料说是80KHz(只取12.5us,这里的意思是全范围内的输出的更新率,如从0V输出到5V输出,这个时间间隔是12.5us,那么输出正弦波的频率就应该小于40KHz),关于这点,我会做了验证之后再下结论。
验证:实验验证得,最大输出正弦波频率约25KHz。输出波形如下(已失真,这可能与芯片有关,这不一定是原装芯片,但从这个趋势知其输出一定是达到不了80KHz的,实际中建议控制在20KHz以内):
3、更新速率:手册上是1.21MHz,即tp(CS)=tp(CSH)+tp(CSL) = 16*tsclk+tw(CS)=16*50ns+20ns=820ns,则fupdata=1/820ns=1.21MHz
其通信协议为SPI(串行外设接口),相关spi协议知识,可参看:https://blog.youkuaiyun.com/zjy900507/article/details/79660273
因为tlc5615作为从设备,故通信数据线只需要sda即可。(2019.05.31)
PART2:基于状态机的spi协议的实现。(2019.6.11)