问题描述
因此,在 SPI 部分阅读 NXP LPC2129/01 的数据表时,我发现:
当设备是主设备时,传输的开始由主设备具有准备传输的数据字节来指示。 此时,主机可以激活时钟,并开始传输。当传输的最后一个时钟周期时传输结束 已完成。
当一个设备是从设备,并且CPHA设置为0时,传输开始 当 SSEL 信号变为有效时,并在 SSEL 变为无效时结束。 当设备是从设备并且 CPHA 设置为 1 时,传输开始于 选择从机时的第一个时钟沿,并在最后一个时钟沿结束 采样数据的时钟边沿。
要清楚 - 我的代码部分,代表传输看起来像这样:
IO0CLR = SPI_CS_bm;
S0SPDR = (DAC_GA_bm | DAC_SHDN_bm) | (uiVoltage >> 8);
while((S0SPSR & SPI_SPIF_bm) == 0){
}
S0SPDR = (uiVoltage);
while((S0SPSR & SPI_SPIF_bm) == 0){
}
IO0SET = SPI_CS_bm;
下面您可以看到记录信号(感谢逻辑分析仪)。简短说明:
Channel 0 = CS
Channel 1 = SCK
Channel 2 = MOSI
Channel 3 = MISO
SPI - 用逻辑分析仪记录信号:
对我来说 - 当 CS 从高到低时传输开始。是否正确? 或者这可能仅适用于从设备(请参阅上面数据表中的 SPI 部分)?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)