たとえば `SAI2_MCLK` ピンにクロックを出力するには何が必要ですか?
iMX8MM では、iomux が設定される直後にクロックが開始されます。例えばベアボックスブートローダーでは、信号が次のように表示されます。
mw 0x303301c8 0しかしiMX8MPでは信号は静止したままです
mw 0x303a00d8 32 ## power up audio block
mw 0x303301b4 0 ## ALT0_AUDIOMIX_SAI2_MCLKプルアップ/プルダウン設定を変更することで切り替えるCAN
mw 0x30330414 0x140 ## signal becomes high
mw 0x30330414 0x100 ## signal becomes lowクロックが有効になっており、audio_blk_ctrl コントローラに電源オン設定があり、SAI MCTL で MOE が有効になっています。
md 0x30384650
30384650: 00000003 00000003 00000003 00000003 ................
:/ md 0x30e20000+8
30e20000: ff777777 0000003f www.?...
:/ md 0x30e20300+0x20
30e20300: 00000000 00000000 00000000 00000000 ................
30e20310: 00000000 00000000 00000000 00000000 ................
:/ md 0x30c20100
30c20100: 80000000 00000000 xxxxxxxx xxxxxxxx ................MCLK 信号を出力するために他に何を設定する必要がありますか?i2c 通信に MCLK を必要とする SGTL5000 を使用するために必要です。
SAI3_MCLK でクロック出力を有効にすることもできません。私CASE、Linux をインストールする前に、最初のボード ハードウェア テストのためにクロックが必要です。私の状況では、たとえばアドレス 0x30E20000 の AUDIO_BLK_CTRL ブロックにアクセスすると、「同期中止」例外が発生します。
誰か私にヒントをくれませんか?コアクロックが欠落しているか、または他に何が例外の原因となっているのでしょうか?
こんにちは:
sgtl5000は正常に動作しますか?CANデバイスツリー構成を提供できますか?現在、パッチに従いましたが、まだ mclk 出力がありません。
こんにちは@ensc
問題は解決しましたか?
クロックを生成するには、`FSL_SAI_MCTL_MCLK_EN` + `FSL_SAI_CSR_TERE` を有効にする必要があります。
私は、SAI をクロック プロバイダーにして、必要に応じて sgtl5000 で MCLK を有効にすることでこの問題を解決しました。
非常に際どいですが、今のところは動作します。FUTUREのハードウェアはおそらくSGTL5000に取って代わるだろう
こんにちは@ensc 、
追加の詳細を電子メールで送信しました。
よろしくお願いします。
よろしくお願いします、
ドゥルヴィット。
SAI を動作させるために、まず何かを再生/録音してみていただけますか?
問題は、SAI_MCLK が見つからないため SGTL5000 を初期化できず、何も再生または録音CANないことです。
同様のハードウェア上の iMX8MM では、iomux を設定するだけでこのクロックを簡単に生成できました。これは iMX8MP ではもう機能しません。
SAI_MCLK を生成するには何をすればよいですか?
例えば、デフォルトのi.MX8MP evkでwm8960を再生に使うと
wm8960 についてはよく分かりませんが、おそらくその I2C はグローバル mclk なしで動作します。
こんにちは@ensc 、
SAI を動作させるために、まず何かを再生/録音してみていただけますか?
例えば、デフォルトのi.MX8MP evkでは、再生にwm8960を使用するとSAI3が使用され、次のようにレジスタを読み取ることができます。
ot@imx8mpevk:~# /unit_tests/memtool 30e20000 1
E
Reading 0x1 count starting at address 0x30E20000
0x30E20000: 04000300
よろしくお願いします、
ドゥルヴィット。
MCLK が動作するのに I2C に依存することはないと思います。
MCLKが必要です。表7「動的電気特性」の注1を参照してください。
SGTL5000 には、すべての電源レールが起動してから 8 SYS_MCLK サイクル後にデアサートされる内部リセットがあります。この時間が経過すると、CANを開始できます。
図4「パワーアップタイミング」
ensc_1-1660829353535.png
しかし、この質問は iMX8MP に関するものであり、そこで SAI MCLK を生成する方法を知りたいのです。
こんにちは@ensc 、
MCLK が動作するのに I2C に依存することはないと思います。
ピン/GPIO または SGTL5000 に関連して何か不足している点があるかどうか、貴社で確認していただけますか?
よろしくお願いします、
ドゥルヴィット。