您好:
我们所有的系统都在生产中的“下线“测试装置上进行测试。 我正在寻找一种方法来验证 CANH 和 CANL 信号是否通过 PCBA、焊接的导线以及一直通过连接器连续。
我们已经投入生产的电流测试仪仅使用 DAQ 来读取 CANH 和 CANL 信号。 通过复位然后重新初始化 TCAN、如果一切连接正确、我可以验证电压在 0 和 2.5V 之间切换。
但是、我想验证 CANH 和 CANL 的极性是否正确。 理想情况下、我可以单独“启用“每个功能。 我有没有办法完成这项任务?
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.
您好:
我们所有的系统都在生产中的“下线“测试装置上进行测试。 我正在寻找一种方法来验证 CANH 和 CANL 信号是否通过 PCBA、焊接的导线以及一直通过连接器连续。
我们已经投入生产的电流测试仪仅使用 DAQ 来读取 CANH 和 CANL 信号。 通过复位然后重新初始化 TCAN、如果一切连接正确、我可以验证电压在 0 和 2.5V 之间切换。
但是、我想验证 CANH 和 CANL 的极性是否正确。 理想情况下、我可以单独“启用“每个功能。 我有没有办法完成这项任务?
尊敬的 Mike:
您可以利用几种“测试模式“功能或选项来实现这一点。
0V 和 2.5V 是 CANH 和 CANL 引脚隐性电平的偏置电压。 在显性位期间、CANH 引脚将被驱动到高于 2.5V(大约 3.5V)的电压电平、CANL 引脚将被驱动到低于 2.5V(大约 1.5V)的电压。 无法仅单独启用其中一个 CANH 和 CANL 引脚、但可以强制收发器在 CAN 总线上发送显性位、以验证电压电平分别是否大于和小于 2.5V。
第一个选项是:
MCAN 测试寄存器 0x1010 将允许您控制收发器的显性和隐性状态。 因此可以强制器件传输一个显性电平。 这将在器件的显性超时值到期之前留出大约 2ms 的时间来进行测量、并导致器件在 SPI 写入测试寄存器并将 TX 位设置为“10"后“后恢复到隐性电平。


要启用测试寄存器 0x1010、您必须首先设置控制寄存器 0x1018 中的测试位 (7)。

仅当控制寄存器的 INIT 和 CCE 位均已设置为“1"时“时、才能设置 TEST 位、因此您将需要多次写入寄存器 0x1018 以启用 INIT、CCE 和 TEST 位。 但一旦它们全部为“1",“,您、您就可以访问测试寄存器 0x1010、并强制总线进入显性状态以进行测量。

第二个选项是使用 MCAN 外部环回测试模式、该模式将启用内部环回功能将 CAN 消息传输回自身、但也会将 CAN 消息“外部“驱动到 CAN 总线上。 ACK 错误将被忽略、因此不需要第二个 CAN 收发器来发送完整消息。 但这将使您能够看到 CAN 消息并可能检测 CANH 和 CANL 的电压电平、以确保它们分别高于和低于 2.5V。

要启用此模式、您需要在之前设置寄存器 0x1018 中的 INIT、CCE 和 TEST 位后、再次将测试寄存器 0x1010 中的 LBCK 位设置为“1"。“。

第三个选项是绕过 MCAN 控制器并将器件置于收发器测试模式、该模式将内部 TXD、RXD 和 EN 信号路由到 GPIO1、GPO2 和 nINT 引脚。 这将使您能够在 GPIO1 引脚上输入“TX"信号“信号、从而控制 CAN 总线显性和隐性状态、并使您能够监测 CANH 和 CANL 引脚上的电压电平、确保它们分别大于或小于 2.5V。

由于这会绕过 MCAN 控制器、因此您无需访问 MCAN 寄存器 0x1018 和 0x1010、而只需访问运行模式和引脚配置寄存器 0x0800。 您需要将 TEST_MODE_EN 位 (21) 设置为“1"才能“才能启用测试模式、在收发器测试模式下、TEST_MODE_CONFIG 位 (0) 的默认值已设置为“0"。“。


以下示例使用此测试模式通过收发器驱动时钟模式以验证 CANH 和 CANL 信号电平。

我希望这些选项中至少有一个能为您效劳。
此致、
Jonathan