请教一下此模拟spi驱动的问题ads1118
ads1118驱动,模拟spi,相关代码如下 unsigned int spi_sendRecvWord(unsigned int c) return data; float ADS1118_V(void) 具体问题是无论我怎么改变写入控制字以及测量输入量,dout返回的都是如下错误波形,大家看看是什麽情况 图一:黄sclk,蓝dout 图二黄sclk,蓝din 图三,黄dout,蓝din |
你好,
请问你的CS信号大概在什么位置拉低的呢?
我看到图1和图2中的CLK信号最开始的时候有一个额外的时钟周期,是不是受这个影响了通信?
图2 中你所发送的数据是多少?
cs信号本来想16clk就至高的,为了查出问题把所有cs拉高都注释了,现在恒为低
那个多出来的周期是dout拉底时的操作,原来是空指令,现象一样
所发数据为0x8393,应该是对的,我发83e3,83c3,85e3,85c3返回波形也是这个
PS:无论如何,感谢martin先生这么晚还为我解答
cs信号本来想16clk就至高的,为了查出问题把所有cs拉高都注释了,现在恒为低
那个多出来的周期是dout拉底时的操作,原来是空指令,现象一样
所发数据为0x8393,应该是对的,我发83e3,83c3,85e3,85c3返回波形也是这个
PS:无论如何,感谢martin先生这么晚还为我解答
有哪位大神能解答下么
已解决,始终速率与采样率不匹配的问题
你好,
能否分享一下详细的解决过程,谢谢!
首先注意到din波形,也就是控制命令与我设定的相同,对比数据手册的时序,din波形也更sclk相符,
再加上单片机中吧返回信号用lcd显示十六进制吗也与波形相同,由此认为时序正确,但控制命令没能正确写入
更换芯片,情况相同,暂且认为与芯片无关
再注意到1118的采样率最快仅有860,默认128,与我用的msp430f149的8M时钟相比实在太慢,尝试着加大延时,
发现数据字不再是0,控制字也与实际命令相近了,确定是ads1118无法响应过快时钟,以默认采样率算,每个采样周期
至少需时1/128s,远大于430模拟32个时钟周期的时间,故在时钟操作后面加上1/(128*32)s的延时,
至此,我的ads1118工作正常
以上纯属个人理解,若有错误,当我碰巧调出来了正常的结果,请各位大神指出
你好 请问你能不能把用f149写的程序发给我一份 1045727765@qq.com 万分感谢