• No : 10920
  • 公開日時 : 2022/03/22 19:52
  • 更新日時 : 2022/03/29 20:23
  • 印刷

【NXP:i.MX】 i.MX8M MiniのI2Cのピン設定について

Pins toolで作成したI2Cのピン設定でI2Cが動作しません。
Pins toolのプリセットに入っているMIMX8MM-EVK-REV-Cの設定をそのまま使用しても失敗しました。
 
 
評価ボードのレジスタ設定を確認すると、これらの値は0x400001C3となっており、Reservedになっている30bitが"1"に設定されていました。この設定をしたところI2Cが起動しました。
リファレンスマニュアルに記載がなくpins toolで設定もできませんが、30bitは1にする必要があるのでしょうか。
カテゴリー : 

回答

指摘のコードの fsl,pins の設定は、Pad Mux RegisterとPad Control Registerの両方をセットします。
例えば、I2C1_SCLについては、「IOMUXC_SW_PAD_CTL_PAD_I2C1_SCL」と「IOMUXC_SW_MUX_CTL_PAD_I2C1_SCL」の両方のレジスタを設定します。
 
この fsl,pins の設定に関する記述は下記を参照してください。

なお、該当のbit30は、Pad Mux Registerのbit4(SION bit)に該当します。
I2C信号に関しては、このSION bitを設定して頂く必要が御座います。(これはi.MXのI2CモジュールのRequirementです。)

各Registerについては、下記のReferenceManualの箇所を参照してください。
<ご参照箇所>
IMX8MMRM Rev. 3, 11/2020:
 - 8.2.3.3 SW Loopback through SION bit (P.1280)
 - 8.2.5.129 Pad Mux Register (IOMUXC_SW_MUX_CTL_PAD_I2C1_SCL) (P.1466-)
 - 8.2.5.283 Pad Control Register (IOMUXC_SW_PAD_CTL_PAD_I2C1_SCL) (P.1639-)