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.

[参考译文] TMS570LC4357:FIFO 缓冲器的 Halcogen DCAN 配置

Guru**** 2468610 points
Other Parts Discussed in Thread: HALCOGEN

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1055224/tms570lc4357-halcogen-dcan-configuration-of-fifo-buffer

器件型号:TMS570LC4357
主题中讨论的其他器件:HALCOGEN

我可以阅读手册并将 dcan 消息框配置为 FIFO 缓冲区、但如何使用 halcogen 执行此操作?


27.7.4远程帧的单个接收对象的配置

图27-11显示了如何初始化远程帧的接收对象。

图27-11. 远程帧的单个接收对象的初始化
MsgVal  ARB    数据  掩码   EOB   Dir NewDat MsgLst   RxIE   TxIE IntPnd RmtEn TxRqst
1          个应用  应用   应用    1       1        0                 0应用   0        0           0 0          0


远程帧的接收对象可用于监视 CAN 总线上的远程帧。 。
存储在接收对象中的远程帧不会触发数据帧的发送。 接收
远程帧的对象可以扩展为 FIFO 缓冲区、请参阅第27.7.5节。
UMASK 必须设置为1。 屏蔽位(MSK[28:0]、UMASK、MXtd 和 MDir 位)可以设置为"必须-
匹配”或“无关”,以允许接受具有类似标识符的远程帧组。 目录
在典型应用中、位不应被屏蔽。 有关详细信息、请参阅第27.7.8节。


仲裁位(ID[28:0]和 XTD 位)可由应用程序指定。 它们定义了标识符和
接受的远程帧的类型。 如果屏蔽位的某些位设置为“无关”
仲裁位的相应位将被存储的远程帧的位覆盖。 如果是
使用11位标识符(标准帧)(XTD = 0)、它被编程为 ID[28:18]。 在本例中、ID[17:0]
可以忽略。 当接收到标识符为11位的远程帧时、ID[17:0]将设置为0。
数据长度码(DLC[3:0])可由应用程序给出。 当消息处理器存储 A 时
远程帧、它将存储接收到的数据长度代码。 的数据字节
消息对象将保持不变。
如果 RxIE 位被置位、IntPnd 位将在接收到的远程帧被接受并存储在中时被置位
消息对象。


27.7.5 FIFO 缓冲器的配置
除了 EOB 位、属于 FIFO 缓冲区的接收对象的配置为
与单个接收对象的配置相同。
若要将多个报文对象连接到 FIFO 缓冲区、应使用这些报文对象的标识符和掩码(如果使用)
报文对象必须编程为匹配的值。 这是因为消息的隐式优先级
编号最小的报文对象将是 FIFO 缓冲区的第一个报文对象。
除了最后一个报文对象外、FIFO 缓冲区中所有报文对象的 EOB 位都必须编程为0。
FIFO 缓冲区最后一个报文对象的 EOB 位设置为1、将其配置为结束
块。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    从读数来看、"远程帧的单个接收对象"是唯一的可缓冲项。 ——如果我错了,请纠正我的问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="498985" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1055224/tms570lc4357-halcogen-dcan-configuration-of-fifo-buffer "]但如何使用 halcogen 实现此操作?[/quot]

    如27.7.5所述:"FIFO 缓冲区中除最后一个报文对象外的所有报文对象的 EOB 位都必须编程为0。  FIFO 缓冲区最后一个报文对象的 EOB 位设置为1、将其配置为 块的末尾。"

    如果 FIFO 包含4个缓冲区、则应设置#4缓冲区的 EOB: