检查以下波形有助于进行故障排除。请参考设计说明中的 I/O 图:
- CLB 生成的 SPI 时钟。
- SPI 的输出数据。这是发送到编码器的请求。
- SPI 的输入数据。这是响应。
- TxEN 信号。在请求传输期间,该信号必须为高电平。
- RS485 线路驱动器和编码器之间的编码器数据信号 (D+/D-)。注意:数据是差分信号。因此,需要使用特殊的探头来观察。
- 如果 SPI 不发送请求:
- 检查 SPICLK 和 CLB 之间的连接。CLB 驱动 SPI CLK。除了 F2837xD 外,所有器件上的 MCU 都可以在内部进行此连接。在 F2837xD 上,必须在外部进行此连接。
- 在命令设置后观察 SPI 寄存器,并在启动操作后再次观察。如果 SPI 收到时钟,TX FIFO 级别会降低,而 RX FIFO 级别会增加。
- 编码器没有响应:
- 确认在请求传输期间 TxEN 为高电平。
- 检查 SPI 时钟频率。时钟频率必须为 2.5MHz,编码器才会响应。如果时钟不是 2.5MHz,请检查系统示例头文件中的频率配置 (TFORMAT_FREQ_DIVIDER)。
- 检查编码器是否正确通电。在某些情况下,LaunchPad 无法提供编码器所需的电流。尝试单独为编码器供电,确保所有接地都连接在一起。
- 在发送期间观察到 SPI CLK,但在响应时间内观察不到:
- 检查编码器与测试硬件的连接。
- 如果修改了该设计:
- 检查响应引脚是否已路由到正确的 CLB 逻辑块和该逻辑块的正确输入。CLB 必须检测到编码器的响应。只有这样,CLB 才会生成 CLB_SPI_CLK。
- 如果 CLB 在内部驱动 SPI CLK,请检查该逻辑块和逻辑块输出使能是否正确。只有特定的逻辑块才能访问特定的 SPI 模块。这可能会在不同的器件上发生变化。