yoshiyuki's blog

Arduino/Teensy/Raspberry pi pico を利用した I2C, SPI 通信アプリを紹介します

Teensy で I2C

元々、Arduino を使った USB-I2C 変換ツールとアプリを作って公開していましたが、今度は Teensy 4.0 を使って同じことができるファームウェアを作成しました。Windows/Android アプリは Arduino 用と同じものが使用できます。

入手方法

Amazon や スイッチサイエンスなどで購入できます。こちらの記事をご参照ください。
ysin1128.hatenablog.com

Arduino版との違い

  • USBコネクタが Micro-B (Arduino版 は Mini-B)

スマホでお馴染みの Micro-B で接続できます。ものすごく便利です。

  • I2C, SPI 他の信号の High Level が 3.3 V (Arduino版 は 5 V)

レベルシフタで 3.3 V に変換する手間が無くなります。ただし、逆に 5 V では使用できません。外部から 5 V の信号を印加すると耐圧超過で壊れます。

  • SPI コマンドのワード幅が 32-bit (Arduino版 は 8-bit)

アプリは 8-bit でも動作するようにしていますが、例えば 0x10 (0001_0000) を伝送しようとしても実際に伝送されるのは 0x10000000 (0001_0000_0000_0000_0000_0000_0000_0000) になります。

  • GPIO コマンドの信号幅の単位がマイクロ秒 (Arduino版はミリ秒)

GPIO コマンドにおいて信号幅に 00 01 を入力した場合、Arduino版では 1 ms を意味していましたが、Teensy 4.0 では 1 us を意味します。ただし、 1 us では短すぎて処理が間に合わないようで、実用できそうなのは 10 us 程度からとなります。

  • Clock 出力コマンドの最大周波数が 50 MHz (Arduino版は 8 MHz)
  • UART 通信対応
  • Logic Data Logger 使用可能

ファームウェア

ファームウェア (HEXファイル) は ACTRL に同梱しています。

セットアップ

Teensy へのファームウェアの書き込みには Teensy Loader Program (teensy.exe) が必要です。
teensy.exe は下記のサイトからダウンロードしてください。
Teensy Loader app for Windows 7 and Vista

1. teensy.exe を立ち上げる

2. PC に Teensy 4.0 を接続する

3. Teensy 4.0 上のプッシュボタンを押す
Teensy 4.0 が Program mode に遷移すると teensy.exe の表示が変わります。また、Teensy 4.0 上でも赤い LED が点灯します。

4. teensy.exe のメニューバーから File -> Open HEX File を開いてファームウェア (sketch_t4ctrl_Rxx.hex) を選択する

5. teensy.exe のメニューバーから Operation -> Program を選択する
Teensy 4.0 にファームウェアが書き込まれます。

6. teensy.exe のメニューバーから Operation -> Reboot を選択する
Teensy 4.0 が再起動して書き込んだファームウェアで動作を開始します。Teensy 4.0 を PC から抜き差ししても再起動させることができます。

各ピンの役割


アプリと使い方

Arduino版と同じアプリで同じように使用できますが、前述の Arduino版との違いに注意してください。
Windows アプリでは Startボタンをクリックする前に Config タブの変更が必要です。Keyword にはデバイスマネージャにおける Teensy 4.0 の認識名、または、その一部を書き込んでください。私の場合は「Teensy USB Serial (COM7)」という名前で認識されていたので「Teensy」を Keyword にしました。「USB Serial」や「COM7」を Keyword にすることも可能です。Arduino System Clock Frequency には 100 を記入してください。


ysin1128.hatenablog.com
ysin1128.hatenablog.com
ysin1128.hatenablog.com