見出し画像

I2Cで遊んでみたい

この記事でI2Cと出合った。そしてI2Cを知りたい、I2Cで遊んでみたいと思った。

約30年前に2年間ほどマイコンで遊んだ経験がある。その時使ったのは、Z80互換のTMPZ84C013A-6というマイコンだった。当時のシリアル通信はUART全盛期。I2Cは新しい技術のシリアル通信として名前だけは聞いたことはあった。

I2Cは、2004年8月に開発元のフィリップス社の特許が失効してロイヤリティフリーになった。それ以降は誰でも自由に使うことができるようになり一般に普及したようだ。

最近のマイコンにはI2Cがハードウェアに標準で実装されている。約30年前に遊んだZ80マイコンでI2Cを実現するには、外部にI2C用のICを繋ぐかソフトウェアでI2Cを実現する必要があるらしい。

当時、プログラミング言語はアセンブリ言語を使っていたが、もうすっかり忘れてしまった。もう一度、Z80のアセンブリ言語を学習し直すか?

いや、違うような気がする。

ハードウェア

I2Cで遊ぶマイコンを選定する。I2Cが実装されている最近のマイコンを使いたい。

Z80で遊んだ頃から約30年が経過し、マイコン市場は大きく変わっている。最近のマイコンを調べてみると、2021年1月に発表されたRP2040というマイコンが目に止まった。Z80と演算ビット数、クロック周波数を比べてみると、電卓と一昔前のパソコンほどの差がある。

  • TMPZ84C013A-6(Z80互換):8ビット、6MHz

  • RP2040(Cortex-M0+ デュアルコア):32ビット、133 MHz

そしてサイズが非常に小さくなっている。

RP2040 小さい!

RP2040-Tiny開発キット

スイッチサイエンスさんでRP2040の開発キットを見つけた。

本体基板とアダプタ基板が別になっていて、ソフトウェア開発後はアダプタ基板を切り離して本体基板だけで動作する。本体基板のサイズが普通切手より小さなところに魅せらせた。

普通切手よりも小さい

ソフトウェア

RP2040のプログラミング言語は、C/C++、MicroPython、Arduinoの3種類から選べるようだ。アセンブリ言語も使えるはずだが、マイコンが異なればアセンブリ言語も異なる。今の自分の目的はRP2040のアセンブリ言語の習得ではなく、I2Cで遊ぶことなのだから簡単に習得できるプログラミング言語を選択したい。

MicroPython

最近のIT業界のプログラミング言語のトレンドはPythonなので、Pythonのマイコン版であるMicroPythonを使うことにした。

まとめ

I2Cで遊ぶためのハードウェアとソフトウェアを選定した。約30年前にマイコンで遊んだ経験があるが、その頃と時代は大きく変わった。現在の最新ツールを使ってワクワク感を楽しみたい。

この記事が気に入ったらサポートをしてみませんか?