请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号: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
中断