kl_kyoko
2016年1月21日 17時13分
初めて投稿させていただきます。大嶋と申します。
Armadillo-440を使用してリアルタイム制御を実施しようと試みています。
OSをμITRON仕様のμC3(イーフォース社)に積み替えて動作させたいのですが、
基板に元々入っているブートローダ及びLINUXを消去し、μC3及びアプリをフラッシュに書き込んで、
アプリを起動しようとしたところ、ある領域の電源供給がONにならなくなりました。
※LINUXで起動させていた時には正常に動作していました。
いろいろ調査したところ、PMICから3.3Vが出力されていないように見えます。
ブートローダーをμC3に変更した影響だと思われます。
μC3はArmadilloに対応していますが、I2C1のドライバやPMICのドライバを備えていません。
このため、PMICを制御しようとしましたがPMICとI2Cを介した通信が行えていないように見えます。
(1)まずはmultiplexerの初期化を行うべく以下の初期化を行いました。
/* CON10 Pin No. ***********************************/ REG_IOMUXC.SW_MUX_CTL_PAD_GPIO_C = 2; // 3:GPIOC(ALT2) ->I2C2 SCL REG_IOMUXC.SW_MUX_CTL_PAD_GPIO_D = 2; // 4:GPIOD(ALT2) ->I2C2 SDA REG_IOMUXC.SW_MUX_CTL_PAD_I2C1_CLK=0x80; // I2C_SCL | Force input path of pad I2C1_CLK REG_IOMUXC.SW_MUX_CTL_PAD_I2C1_DAT=0x80; // I2C_DAT | Force input path of pad I2C1_CLK REG_IOMUXC.SW_PAD_CTL_PAD_I2C1_CLK= 0x000000E0; // [I2C_SCL]Pull/Keeper=Enable Pull=Enable ,100KΩPull-up REG_IOMUXC.SW_PAD_CTL_PAD_I2C1_DAT= 0x000000E0; // [I2C_SCL]Pull/Keeper=Enable Pull=Enable ,100KΩPull-up
(2)続いて、I2Cを初期化すべく以下の処理をしました。
i.MX25 Multimedia Applications Processor Reference Manual(IMX25RM Rev. 2 01/2011)の
Figure 29-13. Detailed Flowchart of a Typical I2C Master Tx Mode, Part 1(29-20ページ)のフローチャートに従い
コーディングしましたが、5つめの『Program MSTA and MTX』を実行した後の『IBB =1?』となりません。
そこで質問です。
1.I2C1を使用する場合の初期化方法は間違っていないでしょうか?
2.PMICのアドレスは0x54で良いのでしょうか?
開発が先に進まず、大変困っています。
何卒、よろしくお願いいたします。
at_yuma.arakawa
2016年1月21日 19時14分
> 1.I2C1を使用する場合の初期化方法は間違っていないでしょうか?
> REG_IOMUXC.SW_MUX_CTL_PAD_I2C1_CLK=0x80; // I2C_SCL | Force input path of pad I2C1_CLK
> REG_IOMUXC.SW_MUX_CTL_PAD_I2C1_DAT=0x80; // I2C_DAT | Force input path of pad I2C1_CLK
SIONビットはb4なので、0x10の間違いではないでしょうか。
> i.MX25 Multimedia Applications Processor Reference Manual(IMX25RM Rev. 2 01/2011)
のA-137〜A-138を見てみてください。
> REG_IOMUXC.SW_PAD_CTL_PAD_I2C1_CLK= 0x000000E0; // [I2C_SCL]Pull/Keeper=Enable Pull=Enable ,100KΩPull-up
> REG_IOMUXC.SW_PAD_CTL_PAD_I2C1_DAT= 0x000000E0; // [I2C_SCL]Pull/Keeper=Enable Pull=Enable ,100KΩPull-up
Pull/Keeper Enableはb7、
Pull Up/Down Configはb5-4で「100KΩ Pull Up」の場合、設定値は0b10なので、
0x000000A0の間違いではないでしょうか。
> i.MX25 Multimedia Applications Processor Reference Manual(IMX25RM Rev. 2 01/2011)
のA-351〜A-354を見てみてください。
> 2.PMICのアドレスは0x54で良いのでしょうか?
PMICのスレーブアドレスは0x54で正しいです。
MC34704のデータシート[1]のP.31に、「7bit Physical Address」が「1010100」であると書かれています。
[1]: 以下のリンク先の「ドキュメント」タブから
「MC34704, Multiple Channel DC-DC Power Management IC - Data Sheet (REV 8.0) 」が参照できます。
http://www.nxp.com/ja/products/power-management/pmics/pmics-for-i.mx-pr…