¿Cómo verificar actualmente qué dispositivo PWM está activo y en qué pwmchip en BeagleBone Black?

0

Me gustaría controlar un servomotor utilizando PWM. He cargado el siguiente archivo .dtbo en las ranuras del directorio bone_capmgr como se muestra a continuación:

root@beaglebone:/sys/devices/platform/bone_capemgr# cat slots
0: PF----  -1 
1: PF----  -1 
2: PF----  -1 
3: PF----  -1 
4: P-O-L-   0 Override Board Name,00A0,Override Manuf,BB-SPIDEV1
5: P-O-L-   1 Override Board Name,00A0,Override Manuf,am33xx_pwm
7: P-O-L-   2 Override Board Name,00A0,Override Manuf,bspwm_P9_22_3

Para PWM, he cargado correctamente el pin P9_22 configurado como salida con mode3 como ehrpwm0A.

Ahora, ¿cómo identifico qué dispositivo pwm está activo desde los cuatro pwmchips como se muestra a continuación?

root@beaglebone:/sys/class/pwm# ls
pwmchip0  pwmchip2  pwmchip4  pwmchip5  pwmchip6

Estoy usando BeagleBone Black con la siguiente versión:

root@beaglebone:~# uname -a
Linux beaglebone 4.1.18-ti-r53 #1 SMP Thu Mar 17 19:41:05 UTC 2016 armv7l    GNU/Linux

Generé los .dts utilizando el generador de dts encontrado AQUÍ . Abajo están los .dts que usé:

 /dts-v1/;
 /plugin/;

 / {
     compatible = "ti,beaglebone", "ti,beaglebone-black";

/* identification */
part-number = "BS_PWM_P9_22_0x3";

/* state the resources this cape uses */
exclusive-use =
    /* the pin header uses */
    "P9.22",
    /* the hardware IP uses */
    "ehrpwm0A";

fragment@0 {
    target = <&am33xx_pinmux>;
    __overlay__ {
        bs_pwm_P9_22_0x3: pinmux_bs_pwm_P9_22_0x3 {
            pinctrl-single,pins = <0x150 0x3>;
        };
    };
};

fragment@1 {
    target = <&ocp>;
    __overlay__ {
        bs_pwm_test_P9_22 {
            compatible  = "pwm_test";
            pwms        = <&ehrpwm0 0 500000 0>;
            pwm-names   = "PWM_P9_22";

            pinctrl-names   = "default";
            pinctrl-0   = <&bs_pwm_P9_22_0x3>;

            enabled     = <1>;
            duty        = <0>;
            status      = "okay";
        };
    };
};
};
    
pregunta PsychedGuy

1 respuesta

1

Conseguí el PWM ehrpwm2A en P8_19 trabajando para el kernel 4.1 actual. Seguí la solución publicada por Kevin en los grupos de Google Aquí . Probado y funciona :). Tenga en cuenta que, al compilar los .dts en el kernel 4.1, use la nueva versión de dtc, es decir, DTC 1.4.1. Puede actualizar a la nueva versión de DTC utilizando las Superposiciones BB de Robert Nelsons, incluso esta ha sido explicada en el hilo. También se ha arrojado algo de luz sobre cómo verificar qué dispositivo pwm está activo en este hilo.

    
respondido por el PsychedGuy

Lea otras preguntas en las etiquetas