【调试】AD7665无法读出数据到ARM的串口上

问题:根据AD7665芯片手册编写转换程序与读取程序,在CNVSTn拉低后芯片正常转换完成后BUSY信号发送一个高脉冲,表示转换完成。再根据时序图将读取部分用程序写完后,发现无法读出正常的16位数据,无论采集电压值是1.8V还是2.5V或是其它都读成了0xFFFF。示波器测AD_SCLK的波形,发现恒为3.3V,未发出正常的时钟信号。


方法:将自己编写的程序烧入到开发板中,便可确定是硬件还是软件问题


方法:通过STR9官方SSP示例程序来配置IO口,在硬件正确无误的基础上往往就是IO口的配置有误造成功能无法实现。


方法:将STR9官方SSP示例程序烧写到开发板中,观察SPI的时钟波形。


方法:解决:(IO配置正确后,一直发数,观察有无正常SPI时钟信号)SPI需要先发送激发时钟,在确定了硬件正确后,将IO口配置成ARM为主设备AD7665为从设备的模式,配置IO口P2.4P2.5P2.6P2.7分别为SPI的NSS,MISO,MOSI,CLK。(此处特别注意,虽然在硬件中没有加入ARM→AD7665的MOSI连接,但在IO口配置也必须得配置上!!)在main函数的while(1)循环里只写入SPI发送数据的语句,其余全注释掉。烧写之。

现象:发现CLK信号可以被激发出来,但波形并非规则的方波。继续调整:在SSP的配置函数中将分频系数从2增加到20,频率降低了10倍,再烧写后观察波形,此时得到完美的时钟信号方波。

继续调整:将ADC的转换程序和读取程序加入到while(1)循环中,并在读取程序内部加入SPI发数的语句,发现无法得到稳定的数值。而将SPI发数的语句插入两个程序之间,可以正确读数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值