请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TDA4VM 工具/软件:
你好
我们使用 SDK 10、定制板。
我想使用 V5 作为解串器的 FSYNC 信号发生器 (30Hz)。 我做了以下修改。
diff --git a/psdkla/board-support/ti-linux-kernel-6.6.32+git-ti/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts b/psdkla/board-support/ti-linux-kernel-6.6.32+git-ti/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts index 575df6ca8..a948df9eb 100644 --- a/psdkla/board-support/ti-linux-kernel-6.6.32+git-ti/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts +++ b/psdkla/board-support/ti-linux-kernel-6.6.32+git-ti/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts @@ -407,6 +407,12 @@ J721E_IOPAD(0x1d4, PIN_INPUT, 3) /* (Y3) SPI1_CS0.UART5_RXD */ J721E_IOPAD(0x1d8, PIN_OUTPUT, 3) /* (W4) SPI1_CS1.UART5_TXD */ >; }; + + mytimer1_pins_default: mytimer1-default-pins { + pinctrl-single,pins = < + J721E_IOPAD(0x23c, PIN_OUTPUT, 2) /* (V5) TIMER_IO1 */ + >; + }; }; &wkup_pmx0 { @@ -1037,6 +1043,14 @@ clk_sensor_fixed: sensor-xclk { #clock-cells = <0>; clock-frequency = <24000000>; }; + + main_pwm1: dmtimer-main-pwm-1 { + compatible = "ti,omap-dmtimer-pwm"; + #pwm-cells = <3>; + ti,timers = <&main_timer1>; + pinctrl-names = "default"; + pinctrl-0 = <&mytimer1_pins_default>; + }; }; &main_i2c1 { diff --git a/psdkla/board-support/ti-linux-kernel-6.6.32+git-ti/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi b/psdkla/board-support/ti-linux-kernel-6.6.32+git-ti/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi index de3541bd2..4f9d3cbbb 100644 --- a/psdkla/board-support/ti-linux-kernel-6.6.32+git-ti/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi +++ b/psdkla/board-support/ti-linux-kernel-6.6.32+git-ti/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi @@ -1129,7 +1129,7 @@ main_timer1: timer@2410000 { assigned-clock-parents = <&k3_clks 50 2>, <&k3_clks 327 1>; power-domains = <&k3_pds 50 TI_SCI_PD_EXCLUSIVE>; ti,timer-pwm; - status = "reserved"; + status = "okay"; }; main_timer2: timer@2420000 { diff --git a/psdkla/board-support/ti-linux-kernel-6.6.32+git-ti/arch/arm64/configs/defconfig b/psdkla/board-support/ti-linux-kernel-6.6.32+git-ti/arch/arm64/configs/defconfig index 05dce5a5b..74b25450f 100644 --- a/psdkla/board-support/ti-linux-kernel-6.6.32+git-ti/arch/arm64/configs/defconfig +++ b/psdkla/board-support/ti-linux-kernel-6.6.32+git-ti/arch/arm64/configs/defconfig @@ -1451,7 +1451,7 @@ CONFIG_PWM_IMX27=m CONFIG_PWM_MESON=m CONFIG_PWM_MTK_DISP=m CONFIG_PWM_MEDIATEK=m -CONFIG_PWM_OMAP_DMTIMER=m +CONFIG_PWM_OMAP_DMTIMER=y CONFIG_PWM_RCAR=m CONFIG_PWM_RENESAS_TPU=m CONFIG_PWM_ROCKCHIP=y
然后添加
static pinmuxPerCfg_t gTimer1PinCfg[] = { /* MyTIMER1 -> TIMER_IO1 -> V5 */ { PIN_TIMER_IO1, PIN_MODE(0) | \ ((PIN_PULL_DISABLE) & (~PIN_PULL_DIRECTION & ~PIN_INPUT_ENABLE)) }, {PINMUX_END} };
引脚功能
我在用户空间中使用了以下命令:
-
导出频道(仅首次需要):
echo 0 > /sys/class/pwm/pwmchip0/export
-
设置 30Hz 周期:
echo 33333333 > /sys/class/pwm/pwmchip0/pwm0/period
-
设置 50%占空比:
echo 16666666 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
-
启用输出:
echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable
但是、V5 上的输出仍是 19.2MHz 并且没有变化。
我这样做的方式有什么问题吗?
BR
中断