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.

[参考译文] Linux/BEAGLEBN:PWM 不工作

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/774879/linux-beaglebn-pwm-not-working

器件型号:BEAGLEBN

工具/软件:Linux

我尝试使 PWM 正常工作、但没有成功。 我将 TI SDK 与 AM335x-bonebblack.dts 器件树的修改版本配合使用(请参阅下面的内容)

PWM 驱动器(ehrpwm1)探针正确、并显示在/sys/class/pwm/pwmchip0.中 然后、我配置了芯片

cd /sys/class/pwm/pwmchip0
echo 0 > export
echo 1000000 > pwm0/周期
echo 250000 > pwm0/Duty_cycle
echo 1 > pwm0/enable 

但是、没有 PWM 输出。 我是否遗漏了明显的东西?

 

/dts-v1/;

#include "am33xx.dtsi"
#include "am335x-bone-common.dtsi"

/{
型号="TI AM335x BeagleBone Black";
兼容="ti、am335x-bone-black"、"ti、am335x-bone-bone-"、"ti、am33xx";
}

&ldo3_reg{
reguler-min-microvolt =<1800000>;
reguler-max-microvolt =<1800000>;
reguler-always on;
}

;&mmc1{
VMMC-supply =<&vmmcsd_fixed>;
}

;&mmc2{
VMMC-supply =<&vmmcsd_fix>;
pinctrl


=默认值<&trls-nation>;"trls-names ="&trls-nations";&trl ="intrls-nations";&trl =默认值="ctrl宽度<&trls-names"
};

&am33xx_pinmux{
LCD_PINS:LCD_PINS{
pinctrl-single、PIN=<
AM33XX_IOPAD (0x8a0、PIN_OUTPUT | MUX_MODE0)/* P9.45、LCD_Data0 *
AM33XX_IOPAD (0x8a4、PIN_OUTP_0*


、0x3304_MO0*/AM3304_MODIO0*/AM3320_MODIO0*/AM3320_MODIO0*/AM334_MODIOXX_MODIO0*、0x43_MODIO0*/AM334*输出*/AM33XX_MODIO0_MODIO0_MODIO0*/AM3320_MODIO0_MODIOXX_MODIO0_MODIO0*
PIN_OUTPUT | MUX_MODE0)/* P9.42、LCD_data5 */
AM33XX_IOPAD (0x8b8、PIN_OUTPUT | MUX_MODE0)/* P9.39、LCD_data6 *
/ AM33XX_IOPAD (0x8bc、PIN_OUTPUT | MUX_MODE0)*

、0x338_LCD_0*/AM338_MODIO8*
、0x38*/MR_0*输出*/MR_MODIO0*
PIN_OUTPUT | MUX_MODE0)/* P9.34、LCD_data11 */
AM33XX_IOPAD (0x8d0、PIN_OUTPUT | MUX_MODE0)/* P9.35、LCD_data12 *
/ AM33XX_IOPAD (0x8d4、PIN_OUTPUT | MUX_MODE0)* P9.35、LCD_DIO23 *
、LCD_DATAD_0*、0x83*/AM338_MODIO23
(0x24_MODE8)*/AM33_IN_IN_MODIOXX_IN_IN_OUTP_0*、0x83*、0x24_MODIOXX_0*、0x24_MODIOXX_IN_IN_IN_MODIO23

PIN_OUTPUT | MUX_MODE1)/* P9.13、LCD_data22 */
AM33XX_IOPAD (0x828、PIN_OUTPUT | MUX_MODE1)/* P9.14、LCD_data21 *
/ AM33XX_IOPAD (0x82c、PIN_MODE1)/MUX_MODIO1*、0x8320*/MR_IN_MODIO12*
、

0x384*/MR_IN_MODIOXX_IN_OUTP_18*、0x3312*、0x3320_MODIO12*
PIN_OUTPUT | MUX_MODE1)/* P9.15、LCD_data16 */
AM33XX_IOPAD (0x8e0、PIN_OUTPUT 下
拉| MUX_MODE0)/* P9.27、LCD_vsync */ AM33XX_IOPAD (0x8e4、PIN_OUTPUT | MUX_MODE0)

*、M08_MODIV_LCD_MODE8

*/0x309.30 */MR_MOUX_SYSC_MODEV (0x80*/MR_MODE8)*/MR_MODIV_O8_P08*/MR_MODE_MODIV_RUS_RUL_MODE8)* GPIO2[1]*/
>;
};

backlight_pin:backlight_pin{
pinctrl-single、pins =< AM33XX_IOPAD (0x848、PIN_OUTPUT | MUX_MODE6)>;// P9.14、GPIO1[18]*
;

toucher_pins:toucher_pins{
pincr-single-single、MUX_MODE6)>;// pullup
= 0x339_pinu_pinu_pinu_pinu_pinu_pinu_pinu_pinu_pinu_pinu_pinu_pinu_pinu_pinu_pin

Dcan0_PINS{
pinctrl-single、PINS =<
AM33XX_IOPAD (0x97c、PIN_INPULLUP | MUX_MODE2)/* P9.19、ddcan0_Rx */
AM33XX_IOPAD (0x978、PIN_OUTPLUP | MUX_MODE2)/* P9.19、ddARTx20_IN_IND




*


= 0x804_IND_IND_IND;*引脚0x20_MODON_MODON_INUARTON_P= 0x804_MOD_INUART_IND_IND_IND20_P= 0x804*;*引


脚;*引脚0x804_MOD20_MOD_INDON_INDON_P= 0x804_IN_IND_IND_P= 0x804_INDON_INDON_IND_P= 0x20_MODON_MODON_P uart2_pins{
pinctrl-single、pins =<
AM33XX_IOPAD (0x950、PIN_INPUT_PULLUP | MUX_MODE1)/* P9.22、uart2_RxD */
AM33XX_IOPAD (0x954、PIN_OUTPLUG_PULLUX)/* P9.22、uart2_RXD *




= 0x3820_IN_INUDIOxx、0x4引脚


;*引脚4、UARTART284_IN_IN_INUARTON_INUARTON_P= 0x874_IN_IN_INUARTON_P= 0x4;
*引

脚;*引脚 uart5_pins{
pinctrl-single、pins =<
AM33XX_IOPAD (0x8c4、PIN_INPUT_PULLUX | MUX_MODE4)/* P8.38、uart5_RxD */
AM33XX_IOPAD (0x8c0、PIN_OUTPUT_PUTDOWN| MUX_MODE4)/* P8.384*、UARTHREST_Px
(0x385_Rx)


/*



、*输出= 0x384_M184_Mx、* Px + Px 1、*输出+ M184_MDIOr 1、*引脚;*引脚= 0x381*、0x381_MOU_Px + Px + Px + Px + Px + Px、0x381*、Px 1、Px 1、U_Px 1、U_Px 1、U_Px 1、*输出+ 1、*、UHRM18_



&epwms1{
status ="确定";
}

;&ehrpwm1{
pinctrl-name ="默认值";
pinctrl-0 =<&backlight_pin>;
status ="确定";
};

&lcdc{
status ="确定";
蓝红色接线="交叉";
};

&sgx{
status ="确定





";"cdtrl";"display"
="默认值=";"cdtrlcdtry"=";"ctl ="显示";"ctl ="默认
值="
pinctrl-0 =<&LCD_PINs>;
ENABLE-GPIO =<&GPIO2 1 GPIO_ACTIVE_HIGH>;/* P8.19 */

PALICE-INFO{
AC-BIAS =<255>;
AC-BIAS-INIPT =<0>;
DMA-BURST-SZ =<16>;
bpp =<32>;
FDD =<0x80>;
sync-edge =<0>;
sync-Ctrl =<0>;
光栅顺序=<0>;
fifo-th =<0>;
};

显示时序{
native-mode =<&ting0>;
ting0:800x480{
时钟频率=<45000000>;
hactive =<800>;
vactive =<480>;
hfront-c廊=<40>;
hback -c廊=<40>;
HSYNC-LEN =<48>;
后沿=<29>;
前沿=<13>;
VSYNC-LEN =<3>;
HSYNC-ACTIVE =<0>;
vsync-active =<0>;
};
};
};
};

&i2c2{
多触点:EDT-ft5x06@38{
兼容="EDT、EDT-ft5406"、"EDT、EDT-ft5x06";
reg =<0x38>;
pinctrl-names ="默认";
pinctrl-0 =<&toucher_pines>;
interrupt-parent =<&GPIO3>;
interrupts =<19 0>;// P9.27 */
Touchson-size-x=<799>;
Touchson-size-y=<479>;
xfuzz =<0>;
yfuzz =<0>;
};
};

&RTC{
系统电源控制器;
};

&dcan0{
status ="确定";
pinctrl-name ="默认";
pinctrl-0 =<&dcan0_PINs>;
}

;&uart1{
status ="确定";
pinctr-names ="默认";
pinctrl-0 =<&uarttrl>



;"uartns"="默认





值="partns";"pinc2 =";pinctrl"默认值="uartns";"pintrl"="uartns";"uartns"= 2;"pinctrl"="uartns"

pinctrl-0 =<uart4_PINs>;
}; 

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

    此部分中出现了问题

    ehrpwm1{(&E)
    pinctrl-name ="默认值";
    pinctrl-0 =<&backlight_pin>;
    状态="确定";
    }; 

    pinctrl-name 应该是 pinctrl-names (请注意末尾的"s")

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

    感谢您指出这一点。

    此致、
    Kemal