SPI读外设寄存器时数据总是错一位
SPI主机读取一个外设的寄存器,每次读回来的数据都偏一个bit位,像是时钟相位或极性不对,但我切换了CPOL/CPHA都不太对。逻辑分析仪波形也没看出问题。要不你用手动bit-bang试几次,确认真实数据节奏。 有可能是外设那边要求dummy bit,你少发了一拍。 我遇到过一次,SPI模式对了但数据长度设置错了。 建议你试着切换MSB/LSB顺序,看能不能对齐。 有时线太长也会造成采样延迟一个bit。 是不是片选信号提前拉低或延后释放? 你可以试着在片选拉高前加一点延时。 我怀疑是SPI速度太高,外设还没准备好。 我之前调试AD7793也遇到这种错位问题。 逻辑分析仪有时候也会显示错位,取样率太低。
页:
[1]