大家好!这几天一直在用FPGA做TI 的16位4通道AD芯片ads1147的驱动编程,搞了差不多1周时间,但是和ads1147的通信始终不对!通信协议是SPI的,我做了如下一些工作:
1向ads1147 发送0x20 00 ff 3个字节,采用sclk上升沿发送,下降沿读寄存器数据。
2在上诉期间,一直保持CS为低,START 为高。
3上电延时16毫秒,复位后延时0.6MS,这些都是按手册来的。
SPI时序按照datasheet中做的
<ignore_js_op>
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
大家好!这几天一直在用FPGA做TI 的16位4通道AD芯片ads1147的驱动编程,搞了差不多1周时间,但是和ads1147的通信始终不对!通信协议是SPI的,我做了如下一些工作:
1向ads1147 发送0x20 00 ff 3个字节,采用sclk上升沿发送,下降沿读寄存器数据。
2在上诉期间,一直保持CS为低,START 为高。
3上电延时16毫秒,复位后延时0.6MS,这些都是按手册来的。
SPI时序按照datasheet中做的
<ignore_js_op>
我读的是MUX0寄存器,复位后应为01h,但现在读出始终为0,我觉得写20h,00h,ffh要用上升沿,读数据要用下降沿,这个地方很关键,不知我用的对不对?我用的是verilog 编程,因为手头没有示波器,所以只是用串口助手调试。有没有高手指点一下,实在搞 不出来了!非常感谢!
非常感谢您的回复!我测量模拟电源和数字电源都是正常的,为3.3v 。上电复位也考虑了,FPGA上电后先延时16ms,再向ads1147发复位脉冲。我感觉还是ads1147手册上什么地方用的不对造成的!比如说读寄存器时序,我还是不敢确定到底对不对!逼得我感到有点黔驴技穷了!