USI使用のTWI(I2C)

TinyAVRでTWIを実現する方法に興味が出たので調べてみた。

  • ソフトウェアで実現する
  • USIを使って実現する

の2種類。
ソフトウェアはその通り、全部の制御をソフトでやる方法。I2Cはクロックを伸ばすことでハンドシェイク的に動作できるので、ソフトでも十分間に合う。
USI(Universal Serial Interface)はTinyについているシリアル通信のための周辺機器で、SPI/UART/TWIの最大公約数的なユニットをソフトウェアで駆動して動かす。
おそらく、後者を使っているのではないか?と思う。


USIを使えば100%ソフトで実現するよりも速く動作するらしい。
前にShannon先生のマイコンをTinyで作って、UARTをUSIで作った時に苦労してあんまりいい記憶がないが、またやってみよう。