This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
设置:
EK-TM4C123GXL 连接到 BOOSTXL-CANFD-LIN
SPI:
MOSI - B7、MISO-B6、CLK-B4和 CS-A4。 我使用的是 SSI_FRF_MOTO_MODE_0、位速率为2000000。
我正在尝试 SPI 写入0x00000003以设置 CCCR。 CCE 和 CCCR。 不过、Control 寄存器下的 INIT 位、但是写操作似乎没有任何作用、因为 CCE 位没有置位、每次尝试置位后从该寄存器读取时、我得到0x00000019、这是根据文档提供的复位值。 想知道为什么会出现这种情况?
您好、Brendan:
感谢您向 E2E 提出问题。
您是否能够验证 MCU 和 TCAN4550之间的其他 SPI 事务是否成功? 一种很好的测试方法是使用暂存区寄存器(h0808)来确保 MCU 能够正确写入和读回预期值。 这还将确保晶体振荡器正常工作、因为所有高于 h000C 的寄存器都要求这个时钟源处于激活状态并稳定。
在请求期间、MCAN 可能正忙、尝试解锁受保护的寄存器失败。 在报告配置尝试中的故障之前、软件通常会多次尝试解锁。 请参阅 器件存储页面上提供的 TCAN4550演示驱动程序中的 TCAN4x5x_MCAN_EnableProtectedRegisters ()函数,以了解如何解锁这些字段。 然后可以使用 TCAN4x5x_MCAN_ConfigureCCCRRegister ()函数测试所需的配置位。
如果这些对您的测试有帮助、同时您有任何其他问题、请告诉我。
此致、
埃里克·肖特
您好、Eric、
感谢您的帮助。
我测试了暂存区寄存器、我得到了0x00000000的初始读取、似乎是正确的、但我向寄存器写入了0xFFFFFFFF、读取后返回了0xFFFFFF29、因此最后一个字节已通过 SPI 关闭。 更改 我用于在发送最后一个字节后检查传输是否完成的逻辑 似乎可以修复此问题。 此外、我一直在关注 商店页面上的 TCAN4550演示、只是针对我的特定 MCU 对其进行了配置。
谢谢!
布伦丹