我正在使用连接到DW1000模块的nRF52832芯片 . 问题是从DW1000请求数据时,缺少第一个字节 . 该芯片应该发送0xDECA0130,但我收到0xCA0130FF . 当我使接收缓冲区变大时,丢失的0xDE出现(传输以最低字节开始) . 我的问题是,这是怎样以及为什么会发生这种情况 .
配置
SPI配置是根据DW1000的数据表,使用nRF SPI驱动程序完成的 . 这包括
SPI默认频率设置为1MHz
SPI芯片选择引脚配置为低电平有效
使用SPI模式0
MSB首次传输
在开始通信之前,DW1000通过将其复位引脚拉低并在释放之前保持低电平足够长的时间来复位 . 重置后,主机等待一段时间让模块启动 . 之后,第一件事是将所述值读取为32位寄存器值 .
nRF设置
nRF设置包括
SPI和SPI0使能
SPI0 easyDMA已禁用
读取该值包括具有所述配置的 nrf_drv_spi_transfer 和4字节的缓冲区长度
已采取步骤
我已经尝试了以下的事情,没有解决问题:
更改SPI频率
更改SPI模式*
复位后等待时间增加
传输之间的等待时间增加
更改MISO上拉配置*
手动芯片选择(包括上拉配置*)
用(*)表示的步骤我知道它们不应该解决问题 .
不幸的是它是一个嵌入式设备,因此我无法访问CLK和MISO引脚以连接示波器 .
我很感激有关此事的任何意见 .