2358869_ja-JP

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

2358869_ja-JP

2358869_ja-JP

Zephyrを使用してIMXRT1170でFLEXPWMを使用する方法は?

こんにちは、みんな、

私はZephyrとIMXRT1176を組み合わせて使用し、FLEXPWMを使ってPWM信号を出力する予定です。
FLEXPWMとXBARに関する過去の投稿をいくつか読みました。ベアメタルコードの出力にFLEXPWMをルーティングするために、XBARAを初期化する必要があります。

さて、Zephyrではこれはどのように機能するのでしょうか?デバイスツリーで何を定義する必要がありますか?FLEXPWMグループを定義するだけで、ビルドシステムがXBARAの設定を処理するという流れで良いのでしょうか?

私の理解では、zephyrは汎用APIを使用してPWMの出力を設定しているようですが、IMXRT117X MCUのようなハードウェア依存性がある場合、これはどのように機能するのでしょうか?手動設定ですか?

この分野について理解を深めるのに役立つ例や解説はありますか?

Re: how to use FLEXPWM on IMXRT1170 using Zephyr?

こんにちは、 @TomC818 さん

NXP MIMXRTシリーズにご関心をお寄せいただきありがとうございます!

Zephyrでは、選択したピンが通常のFLEXPWM代替機能である場合、デバイスツリーで対応するFLEXPWMサブモジュールを有効にし、正しいpinctrlを指定するだけで済みます。ZephyrのMCUX PWMドライバは、汎用PWM APIを介してpinctrlを適用し、FLEXPWMを設定します。MIMXRT1170 EVKには、flexpwm1_pwm2とGPIO_AD_04をFLEXPWM1_PWM2_Aとして使用する例が既に含まれています。
ただし、設計上、FLEXPWM信号をXBARA経由でXBAR出力ピンにルーティングする必要がある場合、現在のZephyr PWMドライバはXBARAをPWM用に自動的に構成しません。MCUX SDK APIを使用してボード/アプリケーションの初期化時にXBARAを手動で設定するか、xbar-mapsプロパティを使用する小さなカスタムドライバ/初期化関数を追加する必要があります。Zephyrにはnxp,mcux-xbarバインディングがあり、QDECなどの一部のドライバはこれを使用しますが、PWMドライバ自体は現在xbarマップを使用していません。

以下の2つの主要なドライバを参照してください。
1. https://github.com/zephyrproject-rtos/zephyr/blob/main/drivers/pwm/pwm_mcux.c
2. https://github.com/zephyrproject-rtos/zephyr/blob/main/drivers/sensor/nxp/qdec_mcux/qdec_mcux.c

よろしくお願いします、
ギャビン

Re: how to use FLEXPWM on IMXRT1170 using Zephyr?

この回答についてもう少し詳しく教えていただけますか?「xbar-maps」のintreeでの使用例は、/zephyr/samples/sensor/qdec/boards/mimxrt1050_evk_mimxrt1052_hyperflash.overlayだけです。


これは、数値を使うようなものだろうか?

kXBARA1_InputFlexpwm1Pwm0OutTrig0 ->  kXBARA1_OutputFlexpwm1Pwm0Exta ?

Tags (1)
No ratings
Version history
Last update:
2 weeks ago
Updated by: