2412599_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2412599_ja-JP

2412599_ja-JP

FRDM-RW612(Zephyr) — CTIMER0 MAT0/GPIO0 PWMが切り替えられず、MAT1/MAT2は問題なく動作します

ボード/SDK: FRDM-RW612、NXP-Zephyr v4.3.0

搭載のRGB LED(GPIO0=青、GPIO1=赤、GPIO12=緑)をpwm-ledとしてCTIMER0、それぞれチャネル0/1/2として、IO_MUX_CT0_MAT0_OUT_IO0、IO_MUX_CT0_MAT1_OUT_IO1、IO_MUX_CT0_MAT2_OUT_IO12を共用pinctrl-0グループで構成しました。3チャネルすべてでテストアプリをサイクルサイクルで実行しました。

赤色および緑色のLEDは正しくPWM制御されています(Saleaeロジックアナライザで確認済み - GPIO1およびGPIO12の波形は正常です)。青色LED(GPIO0/MAT0)は完全に消灯したままで、ロジックアナライザは平坦な線を示し、デューティサイクル(0~100%)のいずれにおいてもトグルは発生しません。GPIO0のデジタルGPIO(非PWM)トグルは問題なく動作します。
CTIMER0 MAT0チャネルのみがPWM出力に失敗します。同じタイマーインスタンス上のMAT1/MAT2は動作します。

必要なもの:

  • GPIO0/CT0_MAT0がZephyrのFRDM-RW612上で既知の動作PWM組み合わせであるかどうかの確認。
  • RW612のチャネル0 CTIMER0に関するエラタムや制限に関するガイダンスがあります。
  • 動作する.overlay例として、CTIMER を介して GPIO0 を PWM する例を挙げ、それと比較します。


    frdm_rw612.オーバーレイ
    「`」

    #include < zephyr/dt-bindings/pwm/pwm.h>

    / {
    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>;
    };
    };

    エイリアス {
    pwm-gpio0 = &pwm_gpio0;
    pwm-gpio1 = &pwm_gpio1;
    pwm-gpio12 = &pwm_gpio12;
    };
    };

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

    ステータス = "okay"

    clk-source = <5>;
    クロック = <&clkctl1 MCUX_CTIMER0_CLK>;

    #pwm-cells = <3>;

    モード = <0>;
    プリスケール = <0>;

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

    &pinctrl {
    pinmux_ctimer0_pwm: pinmux_ctimer0_pwm {
    グループ0 {
    pinmux = <
    IO_MUX_CT0_MAT0_OUT_IO0
    IO_MUX_CT0_MAT1_OUT_IO1
    IO_MUX_CT0_MAT2_OUT_IO12
    >;

    スルーレート = "通常";
    };
    };
    };

    「`」



評価ボード
タグ(1)
評価なし
バージョン履歴
最終更新日:
昨日
更新者: