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.

[参考译文] TDA4VE-Q1:实际 SPI 时钟速率与器件树中配置的时钟速率有显著差异

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1417603/tda4ve-q1-the-actual-spi-clock-rate-deviates-significantly-from-the-clock-rate-configured-in-the-device-tree

器件型号:TDA4VE-Q1

工具与软件:

尊敬的 TI 工程师:

   我们目前使用的是 SOC 模型 TDA4VE、当我们使用 TDA4的 SPI 时、我们发现实际时钟速率比器件树中配置的速率慢得多。 我们发现、当我们使用 TDA4 SPI 时、实际时钟速率远低于器件树中配置的速率。 在器件树中配置24MHz、但实际测量的时钟速率仅约为8M;在器件树中配置了15MHZ、但实际测量的时钟速率仅约为5M、以下是器件树的配置和相应的时钟速率测量结果:

SPI-max-Frequency = 24000000:
Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
&main_spi2{
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&myspi2_pins_default>;
dmas = <&main_udmap 0xc608>, <&main_udmap 0x4608>;
dma-names = "tx0", "rx0";
/*default: ti,pindir-d0-in-d1-out */
/*ti,pindir-d0-out-d1-in; */
spidev@0{
compatible = "rohm,dh2228fv";
reg = <0>;//0-spidev1.0,3-spidev1.3
spi-max-frequency = <24000000>;
//spi-max-frequency = <15000000>;
spi-cpol = <0>; //1-89501,0-89541
spi-cpha = <0>; //1-89501,0-89541
};
};
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SPI-max-Frequency = 15000000:
Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
&main_spi2{
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&myspi2_pins_default>;
dmas = <&main_udmap 0xc608>, <&main_udmap 0x4608>;
dma-names = "tx0", "rx0";
/*default: ti,pindir-d0-in-d1-out */
/*ti,pindir-d0-out-d1-in; */
spidev@0{
compatible = "rohm,dh2228fv";
reg = <0>;//0-spidev1.0,3-spidev1.3
//spi-max-frequency = <24000000>;
spi-max-frequency = <15000000>;
spi-cpol = <0>; //1-89501,0-89541
spi-cpha = <0>; //1-89501,0-89541
};
};
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我们需要检查什么是 CLKDIV 值 ,基于它将把输入时钟与 CLKDIV 值和 SPI-max-Frequency is limit 分频,它将不会等于它. 它将小于 SPI-max-frequency。

    此致

    Tarun Mukesh

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

    您好、感谢您的答复!

       我应该如何检查 CLKDIV 的此值?我使用 spidev_test 工具测量 SPI 并通过执行以下命令:指定频率

    ./sidev_test -D /dev/spidev0.0 -i test_data -s 24000000 -v

    "TEST_DATA"是 包含32字节数据;的测试数据

    使用此命令发送 SPI 数据、示波器测得的 CLK 频率仅约为8M

    此致

    Jiwei

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

    是的、让我检查一下寄存器地址、为您提供了信息。

    此致

    Tarun Mukesh

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

    好的、期待收到您的回复!

    此致

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

    你好、 Tarun、ć

    检查寄存器的结果是什么? 是否与时钟?的分频值有关

    此致

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

    您好!

    SPI 的输入时钟是50MHz、我们需要检查 Ch CONF 寄存器中的 CLKD 和 CLKG 位。 0212 012Ch 用于主 SPI2寄存器。

    此致

    Tarun Mukesh

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

    您好!

    我检查了寄存器0x0212012C、这是结果:μ s

    Fullscreen
    1
    2
    3
    4
    root@Linux:~# devmem2 0x0212012C
    /dev/mem opened.
    Memory mapped at address 0xffffa859c000.
    Read at address 0x0212012C (0xffffa859c12c): 0x200103D5
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    此致

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

    正在解锁该线程。

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

    Bruce、您好!

    此问题是否仍然存在?

    此致、

    Brijesh

x 出现错误。请重试或与管理员联系。