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.

[参考译文] TCAN4550:接受过滤 — 写入过滤器元素

Guru**** 2478765 points
Other Parts Discussed in Thread: TCAN4550

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1546240/tcan4550-acceptance-filtering---writing-filter-elements

器件型号:TCAN4550


工具/软件:

大家好、我正在尝试设置接受过滤。 在 TCAN4550 数据表中、我看到了标准 ID 过滤器配置 (0x1084) 的规范、但没有看到任何有关创建标准消息 ID 过滤器元素的信息。 我在 MCAN 用户手册中找到了这些信息、并尽最大努力设置过滤器、但尚未成功。 在我在这里过度旋转车轮之前、我是否应该了解 TCAN4550 的验收过滤实现?

下面是我的测试概述:

1.配置全局过滤器 (0x1080) 以拒绝 ID 与任何过滤器元素不匹配的消息。

2.将标准 ID 过滤器 (0x1084) 配置 为有 1 个过滤器元素

3.将中断启用 (0x1054 和 0x105C) 配置为在出现高优先级消息时中断

4.配置过滤器元素 0(过滤器列表标准起始地址 SIDFC.FLSSA 加上索引 0)以将消息存储在 RX fifo 0 中、并在 ID 位于范围内时设置高优先级。

5.发送 ID 在过滤器 0 范围内外的消息。

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

    尊敬的 Mike:

    看起来您已经看到了 MCAN 用户手册 (链接)、但我不确定您是否看到了 TCAN45xx 软件用户指南 (链接)、其中还包含有关如何创建筛选器元素的一些示例信息。

    1.配置全局过滤器 (0x1080) 以拒绝 ID 与任何过滤器元素不匹配的消息。

    没错

    2.将标准 ID 过滤器 (0x1084) 配置 为有 1 个过滤器元素

    正确、记下 MRAM 起始地址、您需要在其中写入过滤器元素

    3.将中断启用 (0x1054 和 0x105C) 配置为在出现高优先级消息时中断

    如果您的过滤器配置为匹配消息的“设置优先级“、请更正。  否则、您可以 根据过滤器设置与存储在特定 MRAM 位置中的任何新消息相对应的 RF0NE、RF1NE 或 DRXE 中断位。

    4.配置过滤器元素 0(过滤器列表标准起始地址 SIDFC.FLSSA 加上索引 0)以将消息存储在 RX fifo 0 中、并在 ID 位于范围内时设置高优先级。

    正确、您需要将过滤器元素存储到 SIDFC.FLSSA 寄存器 (0x1084) 中使用的 MRAM 地址中。  请注意、存储在寄存器中的地址值没有 0x8000 偏移量。  例如、假设您使用的是 FLLSA = 0x10。  然后、您应将过滤器元素写入 MRAM 存储器位置 0x8010。

    5.发送 ID 在过滤器 0 范围内外的消息

    没错。

    一般来说、您的流程看起来是正确的。  您尚未提供任何实际寄存器值或过滤器元素的内容以供审核或验证。  我还假设您正在启用至少一个 RX FIFO 0 过滤器元素来存储接收到的消息。

    如果您证明您的器件和 MRAM 配置的实际寄存器值、过滤器元素和您尝试传递和排除的 CAN 消息 ID、我可以查看它是否存在错误。

    此致、

    Jonathan

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

    Jonathan、感谢您的详细答复、这确实帮助我调试了这个问题。 此外、如果没有阅读 TCAN45xx 软件用户指南、我简直不能相信我能做到这一点!

    我的问题是 、我将 SID 地址配置为 0x8000、然后在该地址基础上添加 0x8000 偏移。 我现在可以成功地写入和读取所有过滤器元素了!

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

    尊敬的 Mike:

    我很高兴我能提供帮助!  

    此致、

    Jonathan