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.

TDA4VM: TDA4VM-clk输出

Part Number: TDA4VM

hi,

你好,我们想用以下引脚输出500K的时钟

https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j721e/clocks.html

查了clk,获取,但是没有波形输出

dts如下:

elmos@0 {
pinctrl-names = "default";
pinctrl-0 = <&spi_e521_clkref_pins_default>;
spi-max-frequency = <2000000>;
reg = <0>;
compatible = "elmos,e521.42";
clocks = <&k3_clks 157 82>;
clock-names = "elmos";
};

code:

ref_clk = devm_clk_get(&spi->dev,"elmos");

ret = clk_prepare_enable(ref_clk);

dev_dbg(&spi->dev, "elmosclk_prepare_enable ret%d\n",ret);

pinmux检测了是对应的,是如下这样子,模式2

但量到对应引脚没有波形输出

  • cat /sys/kernel/debug/clk/clk_summary 

    enable prepare protect duty
    clock count count count rate accuracy phase cycle
    ---------------------------------------------------------------------------------------------

    clk:157:82 1 1 0 0 0 0 50000

  • 切成模式0也不行

  • 感谢您对TI产品的关注!为更加有效地解决您的问题,由于问题比较复杂,我需要询问TI资深工程师,再为您解答,一旦得到回复会立即回复给您。

  • 请问一下,有没有回复啊,

    这是不是一个pwm引脚

    ecap0_in_apwm_ou


    是否可以设置成可以设置成pwm,如果可以,怎 样设置成500k的输出

  • 我们已催促技术工程师,您可以查看英文贴了解进展TDA4VM: TDA4VM-clk output - Processors forum - Processors - TI E2E support forums

  • Hello,

    Is this a PWM pin?

     

    ecap0_in_apwm_ou

     

    是的,可能从这个模块输出,但是操作模块的寄存器好像会crash

    只读也会,我们暂时用的是sdk7.3,,在linux ,u-boot试过都是如此

    Can I set it as a PWM one? If so, how can I set the output as 500k?

    是的,如上,pwm输出,500k的方波即可

    Kind regards,

    Katherine

  • 感谢您的分享,已将您的问题提交给TI资深工程师。

  • 请问一下,ecap在sdk8.3中的linux中支持嘛?

    我们自己写的code,

    加上

    + power-domains = <&k3_pds 80 TI_SCI_PD_EXCLUSIVE>;

    pm_runtime_enable(&pdev->dev);
    ret = pm_runtime_get(&pdev->dev);
    if (ret < 0) {
    pm_runtime_put_noidle(&pdev->dev);

    return ret;
    }

    crash问题暂时没有复现

    我们操作了寄存器,按trm的例子,但没有输出对应的波形

    reg_writel(pcap,ECAP_ECCTL,reg_readl(pcap,ECAP_ECCTL) | EC_APWM_MODE<<25);
    reg_writel(pcap,ECAP_CAP1,1200);
    reg_writel(pcap,ECAP_CNTPHS,0x0);
    reg_writel(pcap,ECAP_ECCTL,0x0);
    reg_writel(pcap,ECAP_ECCTL,reg_readl(pcap,ECAP_ECCTL)&(~(1<<26)));
    reg_writel(pcap,ECAP_ECCTL,reg_readl(pcap,ECAP_ECCTL)&(~(1<<21)));
    reg_writel(pcap,ECAP_ECCTL,reg_readl(pcap,ECAP_ECCTL)&(~(EC_SYNCO_DIS<<22)));
    reg_writel(pcap,ECAP_ECCTL,reg_readl(pcap,ECAP_ECCTL) | 1<<20);
    reg_writel(pcap,ECAP_CAP2,0x300);

    请问一下应该怎样操作ecap0寄存器,才能让ecap0_in_apwm_out输出500K

  • 请问一下,ecap在sdk7.3中的linux中支持嘛?

  • 您能在SoC上使用ehrpwm实例来生成波形吗?

    如果不能,您能否具体描述您到目前为止所做的需求和代码更改?

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