Part Number:TLV5610
Hi,我在调试TLV5610的时候遇到了一些问题。下图是我最初的SPI程序,依照TI的例程修改而来。DAC芯片输出正常
FS_LOAD,FS_CLR是两个GPIO的宏定义,用于拉高或拉低GPIO。
但我若是将LOAD引脚和片选FS引脚在初始化的时候就拉低,SPIDAC芯片就没有输出了,想问下原因。
另外我还有一个问题,因为在这个程序中我用到了while循环,占用了相当一部分的CPU资源,于是我参考TI的例程将SPI修改为基于DMA,FIFO模式的SPI,在这种条件下我该如何配置FS哈人LOAD管脚呢?
Kailyn Chen:
LOAD是哪个引脚?LDAC吗?我理解的是不能正常输出是因为片选信号在初始化的时候就拉低,说明芯片在初始化的过程中就被选中,也就是说在芯片内部Power on reset电路还没初始化完成就准备对寄存器进行读写,这个时序是不正确的。
yeyuan zhu said:在这种条件下我该如何配置FS哈人LOAD管脚呢?
这里是什么意思?
,
yeyuan zhu:
Kailyn Chen said:LOAD是哪个引脚?LDAC吗?
是LDAC引脚。
Kailyn Chen said:
yeyuan zhu 说:在这种条件下我该如何配置FS哈人LOAD管脚呢?
这里是什么意思?
因为在FIFO模式下,我没有使用while语句等待SPI数据发送完毕后再拉高FS引脚。我该如何通过软件去配置FS引脚和LDAC引脚的的电平状态呢?
,
Kailyn Chen:
yeyuan zhu said:我该如何通过软件去配置FS引脚和LDAC引脚的的电平状态呢?
通过软件的话是通过寄存器去配置这两个引脚吗?但是我看了下数据手册,没有对应的寄存器可以配置呢。
我认为还是需要通过GPIO去控制。
,
yeyuan zhu:
嗯嗯,我也是通过GPIO去控制的FS与LDAC。我目前在使用C2000系列的F28388D与TLV5610实现SPI通信,我写了一个基于定时器中断的SPI通信程序,在每个定时器中断内,我会将16位的数据放入SPIBUF中.但在SPI的FIFO模式下我该在哪个时刻把与FS相连的GPIO拉低呢?在哪个时刻把FS引脚拉高呢?
,
Kailyn Chen:
yeyuan zhu said:我目前在使用C2000系列的F28388D与TLV5610实现SPI通信,我写了一个基于定时器中断的SPI通信程序,在每个定时器中断内,我会将16位的数据放入SPIBUF中.但在SPI的FIFO模式下我该在哪个时刻把与FS相连的GPIO拉低呢?在哪个时刻把FS引脚拉高呢?
您好,这个问题我请教下我们的C2000工程师,然后尽快给您答复。
,
yeyuan zhu:
您好,工程师有回复么
,
Kailyn Chen:
抱歉抱歉,当时我就咨询C2000工程师了,并且回复了,现在看来是没回复成功。
C2000工程师看了下28388的数据手册,SPI模块有一个SPISTE引脚,当C2000作为主机传送数据的时候会自动拉低这个引脚,不需要额外的GPIO,也不需要在中断中做额外的处理。不知是否能解决您的问题?
,
yeyuan zhu:
好的好的,非常感谢!
,
Kailyn Chen:
不必客气,后续有什么问题,再一起讨论。