« 新居探し | トップページ | 仕事と趣味 »

2015年3月 7日 (土)

48ピンSTM32F3でI2Cよもやま

愛用のSTM32F303の48ピンパッケージにて。

I2Cスレーブアドレスが変更できないデバイスを、複数接続したくなる。

F3には、I2Cが2つあるから、それぞれのバスに接続すればいいか、と思ったが、I2C2側の使用ピンがイケてない。
USART1(FLASH書き込みと、デバッグポートに使う)か、外部振動子接続端子とかぶっていて、どっちも空けられない...
困った。
I2C1の方は、PA14,15 PB6~9と、無難な所、3か所に出ているのに。

------

というわけで、動作中にピンファンクションレジスタを書き換えて、同一アドレスのI2Cスレーブチップを同時(交互)動作させられるか試してみる。
それぞれのピンに、I2CバスのPullup抵抗を取り付け、独立したバスとする。

お互いに同時にはつながらないように、ピンファンクションレジスタを切り替えることで、一つのマスタ(I2C1)で問題なく動作させられるようになった。

動かしてから改めて考えると、最初からこういったアプリケーション(I2Cバス切り替え)を想定して、ピンファンクションがレイアウトされているのかも。
シングルマスタ限定だけれども、I2Cが使われるシチュエーションからすると、これで十分な気がする。

|

« 新居探し | トップページ | 仕事と趣味 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 48ピンSTM32F3でI2Cよもやま:

« 新居探し | トップページ | 仕事と趣味 »