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.

[参考译文] TDA4AEN-Q1:TI Linux 的 CAN 时钟配置

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1528493/tda4aen-q1-can-clock-configuration-from-ti-linux

器件型号:TDA4AEN-Q1

工具/软件:

尊敬的团队:

我在基于 TDA4AEN 的定制电路板上使用 PSDK 10.x 版本。

应用程序从 A53 内核配置 4 个套接字 CAN 通道。

我看到 MCU CAN 时钟配置为 20MHz、但主 CAN 默认配置为 80MHz。

是否可以在 PSDK 中配置 MCU MCAN 时钟。

以下是 CAN 通道的详细信息:


root@j722s-evm:/opt/aptiv_apps ip -details 链接显示 mcu_mcan0

7:mcu_mcan0: MTU 72 qdisc noop 状态停机模式默认组缺省值 qlen 10

   链接/CAN 混杂 0 allmulti0 minmtu 0 maxmtu 0

   CAN 状态已停止 (berr-counter TX 0 Rx 0) restart-ms 0

         比特率 500000 采样点 0.750

         tq 250 prop-seg 3 phase-seg1 2 phase-seg2 SJW 2 BRP 5.

         m_can:tseg1 2..256 tseg2 2..128 SJW 1..128 BRP 1..512 BRP_inc 1.

         m_can:dtseg1 1..32 dtseg2 1..16 dsjw 1..16 dbrp 1..32 dbrp_inc 1

         时钟 20000000 numtxqueues 1 numrxqueues 1 GSO_max_size 65536 GSO_max_segs 65535 TSO_max_size 65536 GSO_max_size 65536 GSO_IPV4_max_size 65536 parentbus pl

root@j722s-evm:/opt/aptiv_apps ip -details 链接显示 mcu_mcan1

4:mcu_mcan1: MTU 72 qdisc noop 状态停机模式默认组缺省值 qlen 10

   链接/CAN 混杂 0 allmulti0 minmtu 0 maxmtu 0

   CAN 状态已停止 (berr-counter TX 0 Rx 0) restart-ms 0

         比特率 500000 采样点 0.750

         tq 250 prop-seg 3 phase-seg1 2 phase-seg2 SJW 2 BRP 5.

         m_can:tseg1 2..256 tseg2 2..128 SJW 1..128 BRP 1..512 BRP_inc 1.

         m_can:dtseg1 1..32 dtseg2 1..16 dsjw 1..16 dbrp 1..32 dbrp_inc 1

         时钟 20000000 numtxqueue 1 numrxqueue 1 GSO_max_size 65536 GSO_max_segs 65535 TSO_max_segs 65535 GSO_max_size 65536 GSO_IPV4_max_size 65536 GRO_IPV4_max_size 65536 parentbus pl

root@j722s-evm:/opt/aptiv_apps ip -details 链接显示 main_mcan0

5:main_mcan0: MTU 72 qdisc pfifo_fast 状态下行模式默认组默认值 qlen 10

   链接/CAN 混杂 0 allmulti0 minmtu 0 maxmtu 0

   CAN 状态总线关闭 (berr-counter TX 248 Rx 0) 重启 ms 0

         比特率 500000 采样点 0.750

         tq 250 prop-seg 3 phase-seg1 2 phase-seg2 2 SJW 2 BRP 20

         m_can:tseg1 2..256 tseg2 2..128 SJW 1..128 BRP 1..512 BRP_inc 1.

         dbitrate 2000000 dsample-point 0.750

         dtq 25 dprop-seg 9 dphase-seg1 5 dphase-seg2 5 dsjw 5 dbrp 2.

         m_can:dtseg1 1..32 dtseg2 1..16 dsjw 1..16 dbrp 1..32 dbrp_inc 1

         时钟 80000000 numtxqueue 1 numrxqueue 1 GSO_max_size 65536 GSO_max_segs 65535 TSO_max_size 65535 GSO_max_size 65536 GSO_IPV4_max_size 65536 GRO_IPV4_max_size 65536 parentbus pl

root@j722s-evm:/opt/aptiv_apps ip -details 链接 show main_mcan1

6:main_mcan1: MTU 16 qdisc noop 状态停机模式默认组缺省值 qlen 10

   链接/CAN 混杂 0 allmulti0 minmtu 0 maxmtu 0

   CAN 状态已停止 (berr-counter TX 0 Rx 0) restart-ms 0

         m_can:tseg1 2..256 tseg2 2..128 SJW 1..128 BRP 1..512 BRP_inc 1.

         m_can:dtseg1 1..32 dtseg2 1..16 dsjw 1..16 dbrp 1..32 dbrp_inc 1

         时钟 80000000 numtxqueue 1 numrxqueue 1 GSO_max_size 65536 GSO_max_segs 65535 TSO_max_size 65535 GSO_max_size 65536 GSO_IPV4_max_size 65536 GRO_IPV4_max_size 65536 parentbus pl

我尝试过研究 mcan 内核驱动程序文件、但在 dts 文件中找不到任何配置和配置。

请尽早对这一请求进行调查。

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

    尊敬的 Tejas:

    您可以执行“k3conf dump clocks | grep -i mcan“吗? 这个文件应该会转储所有时钟。

    我在 TRM 中看到、MCAN 和 MCU_MCAN 使用不同的时钟源。 我怀疑他们分别使用 MAIN_PLL0_HSDIV4_CLKOUT 和 MCU_PLL0_HSIV4_CLKOUT、MCU_PLL 0 HSDIV4 设置为 20MHz。

    此致、

    Takuma

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

    您好:

    感谢您的快速答复。

    让我来看看 TRM、以收集更多详细信息。

    同时、下面是您共享的命令的输出片段

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

    尊敬的 Tejas:

    k3conf 命令应输出时钟。 我想这是在共享屏幕截图中被切断的。 您是否可以对 DEV_MCAN0_MCANSS_CCLK_CLK 和 DEV_MCU_MCAN0_MCANSS_CCLK_CLK 进行比较?  它们 应该分别是主 MCAN0 和 MCU MCAN0 的总线时钟。

    此致、

    Takuma

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

    您好、

    我为屏幕截图道歉。

    下面是完整的一个

    以下是映射的值

    DEV_MCAN0_MCANSS_CCLK_CLK = 80000000

    DEV_MCU_MCAN0_MCANSS_CCLK_CLK = 20000000

    我通过该命令了解到 MCU MCAN 使用较低的时钟。

    您能帮我详细说明如何配置/更改 MCU MCAN 时钟以匹配主 MCAN 时钟吗?

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

    尊敬的 Tejas:  

    理论上、k3conf 应该能够设置这些时钟。 语法为“k3conf set clock “。 但是、当我尝试它时、“ip"命令“命令中显示的时钟没有改变。 它应该在下面进行更改、因此我认为在某种程度上、这种变化不会传播到工具中。

    或者、这种黑客应该将所有时钟的频率设置为相同。 我可以确认更改已传播到“ip"命令“命令、并在使用 k3conf 检查时更改时钟。

     e2e.ti.com/.../0001_2D00_Force_2D00_MCAN_2D00_at_2D00_80000000Hz.patch

    警告:这会将所有 MCAN 的 cclk 更改为 80MHz、这意味着 MCU0 PLL 的 HSDIV4 时钟频率将被更改。 应使用“k3conf dump clocks | grep -i MCU_0_HSDIVOUT4“进行检查、查看对您的系统 很重要的其他模块是否取决于该 HSDIV 输出。

    此致、

    Takuma