28035调试can时遇到这样的问题:
芯片复位以后,开始发送一帧数据,假设发送的数据为01 01 01 01 01 01 01 01,跟踪到发送邮箱写入邮箱寄存器的数据是01 01 01 01 01 01 01 01,长度(DLC位)是8,但是用can盒抓取总线上的数据时,这一帧数据的帧id正确,数据长度为0,没有数据段。
再次发送(10ms以上)这一帧数据,数据正确发送。
发送另外一帧数据(02 02 02 02 02 02 02 02),跟踪到发送邮箱写入发送寄存器的数据是02 02 02 02 02 02 02 02,长度为8,但是用can盒抓取总线上的数据时,发送的仍然是01 01 01 01 01 01 01 01。
问题是:
芯片复位后发送的第一帧数据不是实际邮箱寄存器中的数据
后续发送的数据是前一次发送的数据,也不是邮箱寄存器中的数据
Susan Yang:感觉这问题有点难以定位,建议您CCS在线调试一下程序,查看数据发送的过程问题在哪里
28035调试can时遇到这样的问题:
芯片复位以后,开始发送一帧数据,假设发送的数据为01 01 01 01 01 01 01 01,跟踪到发送邮箱写入邮箱寄存器的数据是01 01 01 01 01 01 01 01,长度(DLC位)是8,但是用can盒抓取总线上的数据时,这一帧数据的帧id正确,数据长度为0,没有数据段。
再次发送(10ms以上)这一帧数据,数据正确发送。
发送另外一帧数据(02 02 02 02 02 02 02 02),跟踪到发送邮箱写入发送寄存器的数据是02 02 02 02 02 02 02 02,长度为8,但是用can盒抓取总线上的数据时,发送的仍然是01 01 01 01 01 01 01 01。
问题是:
芯片复位后发送的第一帧数据不是实际邮箱寄存器中的数据
后续发送的数据是前一次发送的数据,也不是邮箱寄存器中的数据
zhaoheng li:
回复 Susan Yang:
我就是在ccs里面调试,看到正确数据已经写入寄存器了,结果总线上发的是上一帧数据
28035调试can时遇到这样的问题:
芯片复位以后,开始发送一帧数据,假设发送的数据为01 01 01 01 01 01 01 01,跟踪到发送邮箱写入邮箱寄存器的数据是01 01 01 01 01 01 01 01,长度(DLC位)是8,但是用can盒抓取总线上的数据时,这一帧数据的帧id正确,数据长度为0,没有数据段。
再次发送(10ms以上)这一帧数据,数据正确发送。
发送另外一帧数据(02 02 02 02 02 02 02 02),跟踪到发送邮箱写入发送寄存器的数据是02 02 02 02 02 02 02 02,长度为8,但是用can盒抓取总线上的数据时,发送的仍然是01 01 01 01 01 01 01 01。
问题是:
芯片复位后发送的第一帧数据不是实际邮箱寄存器中的数据
后续发送的数据是前一次发送的数据,也不是邮箱寄存器中的数据
Susan Yang:
回复 zhaoheng li:
我看您在 e2e.ti.com/…/800320 也发了帖子
28035调试can时遇到这样的问题:
芯片复位以后,开始发送一帧数据,假设发送的数据为01 01 01 01 01 01 01 01,跟踪到发送邮箱写入邮箱寄存器的数据是01 01 01 01 01 01 01 01,长度(DLC位)是8,但是用can盒抓取总线上的数据时,这一帧数据的帧id正确,数据长度为0,没有数据段。
再次发送(10ms以上)这一帧数据,数据正确发送。
发送另外一帧数据(02 02 02 02 02 02 02 02),跟踪到发送邮箱写入发送寄存器的数据是02 02 02 02 02 02 02 02,长度为8,但是用can盒抓取总线上的数据时,发送的仍然是01 01 01 01 01 01 01 01。
问题是:
芯片复位后发送的第一帧数据不是实际邮箱寄存器中的数据
后续发送的数据是前一次发送的数据,也不是邮箱寄存器中的数据
zhaoheng li:
回复 Susan Yang:
是的,这个问题困扰好几天了
28035调试can时遇到这样的问题:
芯片复位以后,开始发送一帧数据,假设发送的数据为01 01 01 01 01 01 01 01,跟踪到发送邮箱写入邮箱寄存器的数据是01 01 01 01 01 01 01 01,长度(DLC位)是8,但是用can盒抓取总线上的数据时,这一帧数据的帧id正确,数据长度为0,没有数据段。
再次发送(10ms以上)这一帧数据,数据正确发送。
发送另外一帧数据(02 02 02 02 02 02 02 02),跟踪到发送邮箱写入发送寄存器的数据是02 02 02 02 02 02 02 02,长度为8,但是用can盒抓取总线上的数据时,发送的仍然是01 01 01 01 01 01 01 01。
问题是:
芯片复位后发送的第一帧数据不是实际邮箱寄存器中的数据
后续发送的数据是前一次发送的数据,也不是邮箱寄存器中的数据
zhaoheng li:
回复 zhaoheng li:
问题已经解决。
原因是先写了CANTRS寄存器,判断了CANTA寄存器以后,才写了MDL,MDH寄存器
28035调试can时遇到这样的问题:
芯片复位以后,开始发送一帧数据,假设发送的数据为01 01 01 01 01 01 01 01,跟踪到发送邮箱写入邮箱寄存器的数据是01 01 01 01 01 01 01 01,长度(DLC位)是8,但是用can盒抓取总线上的数据时,这一帧数据的帧id正确,数据长度为0,没有数据段。
再次发送(10ms以上)这一帧数据,数据正确发送。
发送另外一帧数据(02 02 02 02 02 02 02 02),跟踪到发送邮箱写入发送寄存器的数据是02 02 02 02 02 02 02 02,长度为8,但是用can盒抓取总线上的数据时,发送的仍然是01 01 01 01 01 01 01 01。
问题是:
芯片复位后发送的第一帧数据不是实际邮箱寄存器中的数据
后续发送的数据是前一次发送的数据,也不是邮箱寄存器中的数据
K Mr:发送数据的时候在CCS中能够实时查看寄存器的数据,你可以看下寄存器的值