我用的是dsp2806,使用can通信时,同时配置了两邮箱4和5,5号邮箱定时500毫秒发送数据,4号邮箱也发送数据,现在发现一个问题,当两个邮箱同时发送数据时,5号邮箱发送的messageid正常,但是4号邮箱的messageid 中的源地址会出现错误,如图
邮箱5的messageID配置为0x0707f80b,
邮箱4的messageID配置为0x1b20a001,0x1b21a001,0x1b22a001,0x1b41a001,
20,21,22,41标识信息类型,01表示源地址
当邮箱4和邮箱5同时发送一条信息时,邮箱4中的源地址就变成了09
求有知道的解释一下,谢谢
Susan Yang:
在TRM内有相关描述 http://www.ti.com/lit/ug/spruh18g/spruh18g.pdf 的 16.3
当一个消息被发送时,消息控制器传送消息到CPK的发送缓冲器。
在下一总线空闲状态时,开始消息的发送。
当多条消息需要被发送时,在准备发送的消息中,具有最高优先级的消息将首先由消息控制器转移到CPK。
如果两个邮箱具有相同的优先级,那么具有更高序号的邮箱首先被发送。
我用的是dsp2806,使用can通信时,同时配置了两邮箱4和5,5号邮箱定时500毫秒发送数据,4号邮箱也发送数据,现在发现一个问题,当两个邮箱同时发送数据时,5号邮箱发送的messageid正常,但是4号邮箱的messageid 中的源地址会出现错误,如图
邮箱5的messageID配置为0x0707f80b,
邮箱4的messageID配置为0x1b20a001,0x1b21a001,0x1b22a001,0x1b41a001,
20,21,22,41标识信息类型,01表示源地址
当邮箱4和邮箱5同时发送一条信息时,邮箱4中的源地址就变成了09
求有知道的解释一下,谢谢
user6003003:
回复 Susan Yang:
问题解决了的,不过应该不是这个解释,邮箱5在发送过程中,发送还未完成,此时将邮箱4的发送位置1,可能会使数据发送错误,现在将发送方式更改了下,在检测到五号邮箱在发送完成后,才会再次将四号邮箱发送位置1,这样就没有问题,感觉上面tI的资料的跟实际使用时有差别,有知道的帮忙解释下,谢谢