您好,在根据图1的配置数据和TCAN284XX用户手册8.4.7.2小节设置选择性唤醒功能后(图2),再让TCAN284休眠,但我用500kbps发送ID0x400的CAN报文后,TCAN284并未唤醒(未观测到VCC1有5V),调试该功能时用PC控制CAN卡(周立功)直接与TCAN284的CAN总线相连,CAN总线想没有其他设备,TCAN284的CAN TX RX没有与MCU相连(MCU掉电),CAN卡显示一直有错误帧,期待您的解答
图1
图2
您好,在根据图1的配置数据和TCAN284XX用户手册8.4.7.2小节设置选择性唤醒功能后(图2),再让TCAN284休眠,但我用500kbps发送ID0x400的CAN报文后,TCAN284并未唤醒(未观测到VCC1有5V),调试该功能时用PC控制CAN卡(周立功)直接与TCAN284的CAN总线相连,CAN总线想没有其他设备,TCAN284的CAN TX RX没有与MCU相连(MCU掉电),CAN卡显示一直有错误帧,期待您的解答
图1
图2
您好,
必须严格按照说明的步骤进行,否则部分网络/选择性唤醒配置可能会失败。
部分网络的高级配置 - 步骤:
1. 写入所有控制寄存器以进行帧检测 - 这包括ID,ID_MASK,SW_ID_MASK_DLC,DATA和SW_CONFIG寄存器;在步骤3之前,不要将0b1写入SW_CONFIG_4的第7位。
2. 读回所有已写入的寄存器,以验证其中是否存在正确的数据。
3. 当部分网络设置完成时,将SWCFG(SW_CONFIG_4的第7位)设置为0b1。
4. 在CAN_CNTRL_1寄存器中启用选择性唤醒(将0b1写入第7位(最高位))。
5. 无论当前状态如何(即使设备目前处于待机模式),将设备设置为待机模式。
----------------------------------------------------------------------------------------------------
虽然代码似乎大致遵循这些步骤,但似乎存在一些重要的差异:
1. 我没有看到对寄存器写入的任何验证 - 这非常重要,并且已经给其他不进行读回的客户带来了麻烦 - 数据配置的小错误可能导致设备无法按预期工作。这可能无法解决问题,但通过读取所有寄存器以检查选择性唤醒/部分网络功能是非常重要的。
2. 看起来最后的写入是对 CAN_CTRL 寄存器的写入 - 在设置部分网络之前,这不应该是最后的写入 - 它应该是在 CAN_CTRL 寄存器中启用 SW,然后告诉 SBC 进入待机模式 - 对 CAN 寄存器的最后写入是什么?这可能会导致问题,因为它似乎没有遵循准确的设置。
3. 在所有这些代码被调用后,软件发生了什么 - 我们也遇到过客户代码覆盖软件的部分网络的问题没有显示 - 我之所以询问是因为在这个设备上从未出现过不是由于用户错误的部分网络问题 - 所以我们真的需要确保我们的基础没有问题,以确认软件中没有其他东西在干扰这一点。如果可能的话 - 我会尝试将测试仅限于配置选择性唤醒(如上述说明所示),软件中没有其他任何运行的程序。
4. 你说MCU是关闭的 - 那他们是如何配置设备的呢?也就是说,能否获取CAN总线的示波器截图 - 我想查看进入主设备的唤醒模式。如果可能的话,可以测试一下BWRR唤醒是否工作(BWRR是指SBC通过CAN总线WUP(唤醒模式)唤醒 - 之后没有ID验证 - 如果BWRR工作正常) ...
如果可能的话,能否测试一下 BWRR 唤醒是否正常工作(BWRR 是指 SBC 通过 CAN 总线 WUP(唤醒模式)唤醒 - 之后没有 ID 验证 - 如果 BWRR 正常工作,那么我们可以专注于其部分网络功能。