ADI 技术
直播中

周玮

7年用户 192经验值
私信 关注
[问答]

AD7988-1与单片机spi通信接收数据错位,请问怎么解决?

尊敬的ADI工程师:
我的原理图:

  
AD7988-1与SPI通讯时序:

我的问题:
AD7988-1与stm8的SPI进行通信时spi的MISO引脚处于拉高状态,在cnv引脚加入脉冲来使能AD采集。spi使能之后接收的数据都是 FF,这是正确的。打开脉冲之后接收的数据发生了错位,正常应该接收到
FF FF FF FF 00 00 FF FF FF FF 00  00  FF FF FF FF
实际接收到的
FF FF FF FE 00 7F FF FF FF FE 00 7F FF FF FF
我认为是CNV下降沿的时候没办法与SPI时序同步造成的

回帖(9)

周玮

2018-8-7 07:02:50

最佳答案

问题已解决 我更改了下SPI的模式,结果就能读出正确的数据了。
1 举报
  • 陈俊: 您好,请问修改成什么模式?可否将相应代码贴出来,谢谢!

丁浩

2018-8-7 07:19:25
你好,可以用示波器同时抓到CNV, SCK, MISO的波形看一下吗?
IN-, IN+输入电压分别是多少?
举报

周玮

2018-8-7 07:32:37
我的IN+和IN-是短接在一起的。CNV和MISO的波形如下图,其中通道1(黄色的)是MISO,通道2(绿色的)CNV


SCLK和MISO的波形如下图,其中通道1(黄色的)是MISO,通道2(绿色的)SCLK

我的SCK的时钟频率是62.5Khz,一个时钟周期是16us。
脉冲是384us触发一次,其中tcnvh的时间是4us,通过MISO上的波形可以看出,有效数据2个字节,无效一个字节。也就是
FF  00  00  FF  00  00  FF  00  00   FF
串口打印的数据是
FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 80 00 7F 80 00 7F 80 00 7F 80 FC 00 03 FC 00 03 FC 00 03 FC 00 03 FC 00 03 FC 00 03 FC 00 03 FC 00 03 FC 00 03 FC 00 03 FE 00 01 FE 00 01 FE 00 01 FE 00 01 FE 00 01 FE 00 01 FE 00 01 FE 00 01 FE 00 01 FE 00 01 FE 00 01 FE 00 01 FE 00 01 FE 00 01 FE 00 01 FE 00 01 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 80 00 7F 80 00 7F 80 00 7F 80 00 7F 80 00 7F 80 00 7F 80 00 7F 80 00 7F 80 00 7F 80 00 7F 80 00 7F 80 00 7F 80 00 7F 80 00 7F 80 00 7F 80 00 7F C0 00 3F C0 00 3F C0 00 3F C0 00 3F C0 00 3F C0 00 3F C0 00 3F C0 00 3F C0 FE 00 01 FE 00 01 FE 00 01 FE 00 01 FE 00 01 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF
举报

高淑贤

2018-8-7 07:43:39
通道1(黄色的)是MISO上升沿时间太慢了,你看看这根信号线上是不是有容性负载。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分