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.

[参考译文] TMS320F28377S:可能在某些处理器上接收失败

Guru**** 2393725 points
Other Parts Discussed in Thread: TMS320F28377S

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1351213/tms320f28377s-can-receive-fail-on-some-processors

器件型号:TMS320F28377S

你(们)好!

我们采用 TMS320F28377S 处理器制造 PCB 已大约5年。 电路板使用 CAN 总线与系统的其他部分通信。 电路板测试过程的一部分是测试 CAN 总线是否正常运行。 此功能适用于多达数百个电路板。 但是、在上一批中、我们有2个电路板发生故障、其中可以接收故障。

硬件工作正常。 我可以看到测试系统发送的消息位和来自处理器的确认位。 对于良好的电路板和坏的电路板、消息是相同的。

对于正常和不良的电路板、软件是相同的。

邮箱6被配置为接收来自测试系统的消息。 在正常电路板中、收到消息时、CAN_NDAT_21寄存器按预期设置为0x00000020。 在两个坏的主板中、该寄存器设置为0x00000010。 会设置错误的位、并且消息接收过程在此时中断。  邮箱5的 消息 ID 完全不同。

这些处理器具有相同的 PART_ID、REVID 和批次跟踪代码、并且它们的 UniqueID 值彼此接近。

这2个不良电路板中的错误位设置是怎么可能的?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    所以、即使没有数据传输到邮箱5、为该邮箱设置 NewDat 位了吗? MSGID 和数据都是一些随机值? 如果您有意将内容传输到 MBX5、您会看到什么? 您能否运行实验以将数据传输到所有32个物体?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    MBX5设置为 MSG_OBJ_TYPE_RxTx_REMOTE。 当我把它更改为一个接收邮箱时、到 MBX6的消息 被正确接收。 如果我将 MBX5重新分配为4、那么它可以正常工作。 如果我离开 MBX5并将 MBX6重新分配给3、它将正常工作。 如果我将它们都移至5 & 4或3 & 2、它将正常工作。

    MBX5的 msgid 似乎是相关的。

    这些 MsgID 工作:0x234、0x234567、0x1EDA34、0x3EDA34、0x7EDA34、 0x1000000

      如果失败、这些 MsgID 会生成:0xFEDA34、0xF01234、0x8EDA34、0x800000

    似乎将某个位设置好会导致出现问题。

    下面是初始化函数:

    #define TX_obj_ID 5
    #define RX_obj_ID 6

    unsigned char TX_DATA[8]={0xA1、0xA2、0xA3、0xA4、0xA5、 0xA6、0xA7、0xA8};
    unsigned char rx_data[8]={0、0、0、0、0、 0、0、0 };
    tCANMsgObject TX_msg;
    tCANMsgObject Rx_msg;

    void can_init (void)
    {
      CANInit (CANA_BASE);
       CANClkSourceSelect (CANA_BASE、0);
       CANBitRateSet (CANA_BASE、200000000UL、250000UL);

       tx_msg.ui32MsgID = 0xFEDA34;// 0x234567;//
       TX_msg.ui32MsgIDMask = 0;
       TX_msg.ui32Flags = 0;
       tx_msg.ui32MsgLen = 8;
       tx_msg.pucMsgData = TX_DATA;
       CANMessageSet (CANA_BASE、TX_obj_ID、&TX_msg、MSG_OBJ_TYPE_RxTx_REMOTE);

       RX_msg.ui32MsgID = 0x123;
       RX_msg.ui32MsgIDMask = 0;
       RX_msg.ui32Flags = 0;
       RX_msg.ui32MsgLen = 8;
       rx_msg.pucMsgData = Rx_DATA;
       CANMessageSet (CANA_BASE、RX_OBJ_ID、&RX_msg、MSG_OBJ_TYPE_RX);

       CANEnable (CANA_BASE);

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果您的固件在过去5年中已在数百个主板中使用过、并且您只在两个主板中发现了问题、那么这两个器件中可能出现了一两个潜在缺陷。 您是否已更换这两个板中的 MCU 并发现问题消失?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是否还可以尝试以下实验:请将 ARB ID 的所有位设置为1 (即 CAN_IF1ARB 寄存器的位28:0)、并验证这些位是否确实变为1。 使用0重复该实验。 我想确定消息目标 RAM 中是否有任何阻塞位。 附加的文件可能会有所帮助。 e2e.ti.com/.../3531.DCAN_5F00_MBOX-_2D00_-Cust.xls

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

       您是否能够尝试我建议的实验?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Hareesh。

    抱歉、几天内我必须转到更紧急的项目。 我们昨天也有一个假期。 我将在下周继续。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Hareesh。

    我们决定更换这些器件、只是为了使电路板正常工作并向客户发货。 新器件在一个板上工作正常、但另一个板仍然存在相同的问题。  这些处理器具有相同的 PART_ID、REVID 和批次跟踪代码、但这些新器件的 UniqueID 值与 之前的处理器大不相同。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    新设备在一个板上可以工作,但另一个板仍有相同的问题。

    这很奇怪。  这是我们最畅销的器件之一、我们已经发送了数百万个此类器件、但这是我第一次听到这样的问题。 我感到惊讶的是、即使更换新设备后、问题仍未解决。

    处理器具有相同的 PART_ID、REVID 和批次跟踪代码[/报价]

    好的。

    但是这些新设备的 UniqueID 值与 以前的处理器有很大不同。

    这并不奇怪。 请访问 www.ti.com/lit/SPRACD0。

    请尝试一下我大约3周前告诉你的实验来检查卡住的位。 如果您确实发现了阻塞位、可以将器件返回 TI 进行进一步分析。  

    [/quote]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Hareesh。

    当我说唯一 ID 值非常不同时、我指的是电路板批次之间的关系。 一批100个主板的 ID 为1800nnnn、另一批具有5101nnnn。 这两个新器件是4120nnnn。

    我尝试在 ARB 寄存器中检查是否存在卡住的位。 它们都正确写回和读回。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、我不想过多地关注 UID 值、因为它具有伪随机组件。 考虑到 ARB 寄存器的所有位都正确写入和读回所有位(为1和0)、我怀疑这是器件本身的问题。 请告知我们是否有相反的新发现。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Hareesh。

    ARB 寄存器位正确读取和写入并不意味着设备不存在问题。 它显示 ARB 寄存器正在工作。 该器件中还有很多其他东西。

    更换设备后、一个主板上的问题消失了。 这说明它是一个器件问题。

    该软件可在99%以上的板上工作。 这意味着它不是软件问题。

    现在、让我来回顾一下问题是什么。 MBX6配置为接收消息。 MBX5配置为远程帧接收和自动发送。 如果设置了 MBX5消息 ID 的第23位、那么应该转至 MBX6的消息转至 MBX5。 对我来说、这表明某些器件的验收过滤存在细微问题。 由于它只出现在大约1%的器件上、并且需要特定的邮箱使用组合才能显示出来、我怀疑这对于大多数应用来说不是问题。

    如果有人有另一种解释、我很乐意回答。

    此致、

    安德鲁

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Andrew、

               正如我之前提到的、存在在特定条件下表面出现的潜在缺陷的可能性。 在这一点上,这只是一个猜想。 如果您想进一步调查、可以将疑似故障器件发送给 TI 进行分析。