2412599_en-US

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2412599_en-US

2412599_en-US

FRDM-RW612 (Zephyr) — CTIMER0 MAT0/GPIO0 PWM not toggling, MAT1/MAT2 work fine

Board/SDK: FRDM-RW612, NXP-Zephyr v4.3.0

Configured on-board RGB LED (GPIO0=Blue, GPIO1=Red, GPIO12=Green) as pwm-leds on CTIMER0, channels 0/1/2 respectively, using IO_MUX_CT0_MAT0_OUT_IO0, IO_MUX_CT0_MAT1_OUT_IO1, IO_MUX_CT0_MAT2_OUT_IO12 in a shared pinctrl-0 group. Ran a test app cycling duty cycle on all three channels.

Red and Green LEDs PWM correctly (confirmed with Saleae logic analyzer — clean waveforms on GPIO1 and GPIO12). Blue LED (GPIO0/MAT0) stays completely off — logic analyzer shows a flat line, no toggling at any duty cycle (0–100%). Digital GPIO (non-PWM) toggle on GPIO0 works fine,
Only CTIMER0 MAT0 channel fails to output PWM; MAT1/MAT2 on the same timer instance work.

What we need:

  • Confirmation whether GPIO0/CT0_MAT0 is a known-working PWM combination on FRDM-RW612 under Zephyr.
  • Guidance on any erratum/limitation for CTIMER0 channel 0 on RW612.
  • Any working .overlay example that PWMs GPIO0 via CTIMER, for us to diff against.


    frdm_rw612.overlay
    ```

    #include

    / {
    pwm_outputs {
    compatible = "pwm-leds";

    pwm_gpio0: pwm_gpio0 {
    pwms = <&ctimer0_pwm 0 PWM_KHZ(1) PWM_POLARITY_NORMAL>;
    };

    pwm_gpio1: pwm_gpio1 {
    pwms = <&ctimer0_pwm 1 PWM_KHZ(1) PWM_POLARITY_NORMAL>;
    };

    pwm_gpio12: pwm_gpio12 {
    pwms = <&ctimer0_pwm 2 PWM_KHZ(1) PWM_POLARITY_NORMAL>;
    };
    };

    aliases {
    pwm-gpio0 = &pwm_gpio0;
    pwm-gpio1 = &pwm_gpio1;
    pwm-gpio12 = &pwm_gpio12;
    };
    };

    ctimer0_pwm: &ctimer0 {
    compatible = "nxp,ctimer-pwm";

    status = "okay";

    clk-source = <5>;
    clocks = <&clkctl1 MCUX_CTIMER0_CLK>;

    #pwm-cells = <3>;

    mode = <0>;
    prescale = <0>;

    pinctrl-0 = <&pinmux_ctimer0_pwm>;
    pinctrl-names = "default";
    };

    &pinctrl {
    pinmux_ctimer0_pwm: pinmux_ctimer0_pwm {
    group0 {
    pinmux = <
    IO_MUX_CT0_MAT0_OUT_IO0
    IO_MUX_CT0_MAT1_OUT_IO1
    IO_MUX_CT0_MAT2_OUT_IO12
    >;

    slew-rate = "normal";
    };
    };
    };

    ```



Evaluation Board
Tags (1)
No ratings
Version history
Last update:
Friday
Updated by: