单片机为microchip的dsPIC33EP512GP502,晶振16M,单片机内部指令周期为0.125us,TLC2574与单片机的硬件连接为,CS,FS,CSTART,EOC/INT分别与单片机的IO口直连,SCLK连33欧电阻接到单片机的SCLK引脚,SDI连接到单片机的SDO引脚,SDO连接到单片机的SDI引脚,参考电压为4V。部分代码如下:
SPI通信
void SPICom(unsigned int data)
{
SPI1BUF=data;
while(!_SPI1IF);
tempdata=SPI1BUF;
}
TLC2574时序
CS=0;
SPICom(0xa000);
CS=1;
CS=0;
SPICom(0xab04);
CS=1;
CS=0;
SPICom(0x0000);
CS=1;
CS=0;
SPICom(0xe000);
value = tempdata;
CS=1;
用示波器始终没有观察到EOC电平变化,始终是高,TLC2574输出是固定的不对的值
TLC2574对SPI的时钟频率有没有要求,最小是多少?我的SPI时钟频率是15.625K-4M
请问有没有代码可供参考?
FeiTianZhu:
回复 Martin:
上图的电路有所改动,FS和CSTART均接了4.7K的上拉电阻,跟单片机断开了,单片机是3.3V供电,AD是3.3V和5V供电,33欧电阻已取消
有转换结果,但是感觉结果的 不对的,(AD*20/4096)-10,当输入是4.2V时,采到的AD值是EO7
user3917511:
TLC2574时钟频率最高是25MHz(DVDD 5V供电的情况下),建议将SPI时钟频率调为4M进行测试。
JiaChuang Chen:
TLC2574对SPI的时钟频率有没有要求,最小是多少?我的SPI时钟频率是15.625K-4M
回答:对时钟频率有要求,datasheet原文如下:
SPI/DSP-Compatible Serial Interfaces With SCLK up to 25-MHz
最大不要超过25MHz,不过你的SPI时钟频率是15.625K-4M,是没有问题的。
FeiTianZhu:
已调试成功,感谢各位的提示
kuilong yin:
回复 FeiTianZhu:
您好,在调试TLC2574也遇到类似的问题,能观测到EOC的变化,但EOC随着CS变高的同时而变低(两条线对称),调试了好久,不知道哪里出现错误,最后看您问题解决了,您看是什么原因呢,能否借您的程序调试一下呢?471800859@qq.com ,谢谢!