ATtinyをI2Cマスタ

AVR Dragonを買ったついでに入手したATtiny85。8Kバイトのフラッシュメモリとそこそこ使える容量なのであるが、如何せん8ピンのAVR MPUで使いにくい。周辺デバイスをI2Cなどで接続するのがスマートだとは思うのであるが、TWIは実装されてない。その代わりTWIの機能をUSIで実装することになる。
AVR Dragonやロジアナとか開発環境が揃ってるので、I2Cマスタのライブラリィを整備した。

I2Cの開発のベースは

今回作ったI2Cのドライバは、ここにあるがた老さんのソースをベースに構築した。開発のMPUはATTiny85、ターゲットのI2CデバイスはI2Cのメモリ24LC256である。

I2Cのテスト環境

I2Cのテスト環境

ロジアナで覗いたデータのやりとりがこれである。
ロジアナのようなデータを可視化するツールがないと開発が難しいのは確か。

ロジアナでデータの確認

ロジアナでデータの確認

おわりに

今回開発に使ったATtiny85の他、手持ちのATtiny2313とATtiny861でI2Cマスタとして24LC256を駆動できた。
たぶんこれで問題はないのであろうけど1Kバイト近くもフラッシュメモリを使っている。8KバイトのフラッシュメモリがあるATtiny85やATtiny861ならいいけど、ATtiny2313は少しキツイかも。

ATtinyをI2Cマスタにして何か作るという予定がいまのところないので、これにて終了である。
将来ATtinyでI2Cデバイス使いたいときには、今回整備したライブラリィを使えば容易にドライブできるだろう。

そのうち

ATtiny I2Cマスタライブラリィの整理ができたら公開します。