ads1118驱动,模拟spi,相关代码如下
unsigned int spi_sendRecvWord(unsigned int c)
{ unsigned int data = 0; unsigned int shift = 0x8000; int i = 0; //while(!(ADS1118_DO_X)) ADS1118_SCK_0; if (c & shift) return data;
} float ADS1118_V(void)
{ unsigned int adc=0; Config_Register =0x8393; ADS1118_CS_0; /* adc = spi_sendRecvWord(Config_Register); value=adc; 具体问题是无论我怎么改变写入控制字以及测量输入量,dout返回的都是如下错误波形,大家看看是什麽情况
图一:黄sclk,蓝dout
图二黄sclk,蓝din
图三,黄dout,蓝din
|
Martin:
你好,
请问你的CS信号大概在什么位置拉低的呢?
我看到图1和图2中的CLK信号最开始的时候有一个额外的时钟周期,是不是受这个影响了通信?
图2 中你所发送的数据是多少?
qingxiang chen:
回复 Martin:
cs信号本来想16clk就至高的,为了查出问题把所有cs拉高都注释了,现在恒为低
那个多出来的周期是dout拉底时的操作,原来是空指令,现象一样
所发数据为0x8393,应该是对的,我发83e3,83c3,85e3,85c3返回波形也是这个
PS:无论如何,感谢martin先生这么晚还为我解答
qingxiang chen:
回复 Martin:
cs信号本来想16clk就至高的,为了查出问题把所有cs拉高都注释了,现在恒为低
那个多出来的周期是dout拉底时的操作,原来是空指令,现象一样
所发数据为0x8393,应该是对的,我发83e3,83c3,85e3,85c3返回波形也是这个
PS:无论如何,感谢martin先生这么晚还为我解答
qingxiang chen:
回复 Martin:
有哪位大神能解答下么
qingxiang chen:
回复 qingxiang chen:
已解决,始终速率与采样率不匹配的问题
Martin:
回复 qingxiang chen:
你好,
能否分享一下详细的解决过程,谢谢!
honghong du:
回复 qingxiang chen:
你好 请问你能不能把用f149写的程序发给我一份 1045727765@qq.com 万分感谢