TJA1145ATK/FD,配置好唤醒ID后,发现除了配置的唤醒ID可以将设备唤醒,任意的CAN FD报文也能够将其唤醒
寄存器配置如下:
0x26寄存器配置为0x05,波特率为500kbit/s
0x2F寄存器配置为0x00,过滤标准帧,并且不理会数据字段长度和内容
0x29、0x2A寄存器分别配置为0x84、0x08,配置标准ID为0x221
0x2D、0x2E寄存器使用默认值即0x00,即不配置多个过滤ID
0x23寄存器配置为0x01,使能 can wake up detection
0x01寄存器配置为0x07,配置为normal mode
0x20寄存器配置为0x32,配置为CFDC = 0, PNCOK = 1, CPNC = 1, CMC = 10
查看手册,自己的理解如下,设置的唤醒CAN 报文ID 0x221,验证发现可以正常唤醒
然而,根据手册所描述的,发送CAN FD报文的话,会触发某个错误计数寄存器的增加,而最大值为31,超过31的话,造成的溢出会导致设备的强制唤醒,也就是说,发送CAN FD报文的话,至少发送多条报文才会导致唤醒才对,但是测试发现,每次发送第一帧CAN FD报文便会将设备唤醒,因此,请问这个是属于正常情况吗,是哪里的问题造成的呢
Solved! Go to Solution.
Hello Wang
1.TJA1145ATK/FD是不是只能通过CAN报文唤醒,不能通过CAN FD报文唤醒
2.为何设置CFDC为0时会导致任意的CAN FD报文会将设备从休眠状态唤醒
With Best Regards,
Jozef
Dear Wang Chuang,
please refer to the Table 12. and to the section 7.3.2 in the TJA1145 datasheet.
With Best Regards,
Jozef
您好,问题已经解决,在进入休眠的配置中需要将CFDC配置为1,则不会导致CAN FD报文将设备唤醒了,只能通过CAN 报文将其唤醒。
那么,想请问下以下问题:
1.TJA1145ATK/FD是不是只能通过CAN报文唤醒,不能通过CAN FD报文唤醒
2.为何设置CFDC为0时会导致任意的CAN FD报文会将设备从休眠状态唤醒
您好,我也遇见这个问题了,我初始化的时候就已经将CFDC配置为1了,然后按照你说的在休眠函数里面也重新将CFDC设置为1了一次,但是仍旧是任意的FDCAN报文都可以唤醒,您这边是不是除了设置CFDC之外还有什么其他操作呢
Hello Wang
1.TJA1145ATK/FD是不是只能通过CAN报文唤醒,不能通过CAN FD报文唤醒
2.为何设置CFDC为0时会导致任意的CAN FD报文会将设备从休眠状态唤醒
With Best Regards,
Jozef
您好,第一个问题中,想请问下TJA1145设计为只支持特定的CAN报文唤醒,而不能支持CAN FD唤醒的原因是什么呢,我看手册的描述是防止仅在CAN通信时,产生总线错误。可以解答下还有其他的原因吗?
我清楚手册的意思,按照手册中的那句话来说,意思是任何的CAN FD报文均不会对设备进行唤醒,但是当我使设备进入休眠模式后,然而,发送CAN FD报文却能够将其唤醒。所以,我的问题是,为何任意CAN FD报文会将设备唤醒呢