采用STM32F101与外部AD CS5550。
刚刚接触这个CS5550,感觉时序有点怪异。尤其是读的时候,在后3个指节,还要写SYNCO.
刚开始对这个非常不理解。后来参考了网上的一个程序。貌似网上就只有一个程序。于是有一点理解。就是说,单片机在读CS5550的数据时(也就是读MISO)还要往CS5550(MOSI)写数据。
CS5550读写大致是这样的。
读写都要32个周期。
前8个周期读写都是相同的,就是都要先写地址,然后读/写 地址的内容。
但是读的时候在后24个周期的时候要写3次SYNCO(11111110).这个是难点,容易被忽略。
刚开始我也琢磨了很久。
后来终于柳岸花明。
然后就是周期的选择,我是先低后高。看到网上很多程序都是先高后低。网上的程序我没有成功过。可能自己没设置好。
把自己的代码分享下,可能还有错误。大家可以指点下。
总之写程序要有耐心,可以模仿别人,但是千万复制。往往复制的都会是有问题的。
//延时都是精确延时,时间可以短一点没问题Delay_us(10)都行;
u32 Read_CS5550(u8 Read_Addr)
{
}
//READ 修改。。
void Write_CS5550(u8 Write_Addr,u32 Write_Data)
{
}
void Write_Command(u8 Command_Data)
{
}
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』