主题中讨论的其他器件:HALCOGEN
您好!
我正在为客户提供基于 TMS470 Micro 的项目。 我的第一项任务是让一个简单的调度程序使用 RTI (工作)、在 UART 上发送一个字节并在同一 UART 上回路(工作)、最后在 DCAN2上发送一条固定消息、该消息用作带有外部收发器的高速 CAN。 上述所有驱动程序都是使用 halcogen 生成的。
问题:每次我单击 CAN_Transmit (在我的5ms 任务中)时、我都会收到错误通知、请参阅下面的代码片段
void Task_5ms ()
{
uint8 retval = 0;
RetVal = canTransmit (canREG2、canMESSAGE_box3、FT_TX_PTR);
if (评估)
while (hs_TX_DONE = 0){}; //等待 CAN 传输完成。 该标志在 canMessageNotification 函数中设置
sciSend (sciREG1、8、DATA_UART);
}
我看到 节点->IF2DAT 包含我将中断点放置在 canTransmit 内时要发送的数据。 我已将 message_box3配置为在 halcogen 中传输、我已在初始化中启用错误和消息通知。
此外、我在 ISR 中放置了一个断点、我看到它在调用 canTransmit 后到达 ISR、但始终存在错误! 因此、控制始终转到错误通知。
void can1高 LEVELInterrupt (void)
{
uint32 value = canREG1->INT;
如果(值= 0x8000U)
{
canErrorNotification (canREG1,canREG1->ES & 0x1E0U);--------------- >始终转到错误通知。
返回;
}
我在总线上连接了一个正在运行的 CAN 监控工具、该工具将发送确认信号。
我检查了勘误表寄存器、它大部分时间显示为0xE5。 一些人会在我启动程序后立即试用断点、我看到寄存器的值为0x05。
我从数据表中了解到 CAN 上存在位错误、对吗? 我甚至尝试在 CAN_H 和 CAN_L 线路上输入120欧姆的端接电阻、但似乎什么都不起作用。 所有 AM 卡滞是 CAN 错误通知。 有人能帮我向前迈进吗? 如何继续调试? 请帮助。
此致、
Shankar