(2013/12/02 写真・添付データ復活)
MP3プレイヤーの操作部には、PSoCのCapsenseを使うつもりでいます。Capsense部は基板を分けてPSoCとタッチパッドのみのパターンにしておき、メインコントローラとはI2Cで通信することにしてあります。プレイヤーに関してはまだ時間がかかるので後日レポートするとして、今日はそのI2Cテスト用にUSB-I2Cブリッジを製作したので紹介します。
USB-I2Cブリッジとは要するに、USB経由でパソコンと繋ぎ、PCからI2C機器とやりとりするためのアダプタです。手持ちの部品で何とかならないかなと思っていたらありました。
・i2c-tiny-usbプロジェクト (http://www.harbaum.org/till/i2c_tiny_usb/)
前に作ったHIDaspxも利用している、AVR-USBを用いたI2Cブリッジです。ATtiny45でUSB-I2Cブリッジを作ってしまおうというものです。すばらしいですね。
ただ欠点が。上記プロジェクトのハードウェアはクロック外付けのため、ピン数の都合上 RESET# ピン(Pin1)をI/Oとして使っちゃってます。それでファームのプログラムにHVSP (高電圧シリアルプログラミング)が必要になってしまい、ライタとしてSTK500とかAVRDRAGONとかがいるんです。どちらも持ってないので困った困った。ところが今は内部RCクロックを使ってAVR-USBを動かしてしまう例があるのです。それが EasyLogger (http://www.obdev.at/products/avrusb/easylogger.html) です。
で、組み合わせてみたのが今回作った内蔵オシレータタイプUSB-I2Cブリッジというわけです。
usbi2c-20090401.zip
上のzipには、回路図/ボード図PDF/Eagleデータ/ファームウェアソース&バイナリ/テスト用コンソール&バイナリが入っています。オープンソース・オープンハードウェアプロジェクトですが、Eagleデータは商用利用への転用を禁止します。
回路は非常に単純な構成となりました。i2c-tiny-usbの回路からクロックを外し、I2Cの出力ピンを変更した程度です。
USBのコネクタが逆なのは、作り始めてからピンの順番(1→4)を逆で設計していたことに気がついたからです^^; 手持ちで68Ωが無かったので75Ωにしたり、結構アバウトです。なにより、使ったマイコンがATtiny45-20PUではなく、ATtiny45V-10PUです。ファームは16.5MHzで動かすのでオーバークロックになりますが、実際やってみたらちゃんと動いたのでそれで良し、ということで。汎用の操作コンソールツールを作って(tool/usbi2c.exe)、試しにEEPROM (AT24C256)の読み書きをやってみました。
I2CはSCL、SDAラインをプルアップする必要があります。ブリッジ側ではプルアップを入れていない(3.3Vのターゲットを繋ぐ場合への考慮)ので、ターゲット側で10kΩプルアップを入れました。
なお、usbi2c.exeのコマンド構文は
(Write) <SLA>:<DATA0> <DATA1> ... <DATA n>
(Write&Read) <SLA>:<DATA0> <DATA1> ... <DATA n>,<LEN>
(Quit) q
※<SLA>...Slave address (8~119) in hexadecimal
If omitted, previous SLA will be used
※<DATAn>...Write data byte in hexadecimal
※<LEN>...Read length in decimal
Examples with 24C256 (SLA:0x50)
* Read 8 bytes from address 0x0000
> 50:00 00,8
* Write 3 bytes ("ABC") to address 0x0120
> 50:01 20 41 42 43
です。(なんか<pre>~</pre>の中で日本語を使いたくなくなるのは私だけ?)
EEPROMの読み書きは問題なくできたので、ちゃんと通信出来ているようです。今度デジタルオシロの有るところに持って行って、通信波形を確認したいですね。というか家にデジタルオシロ欲しい。あぁ、AVRDRAGONも欲しい...。
AVR-USBはやっぱり素晴らしいですね。今後もいろいろ作っていきたいです。内蔵オシレータも面白いですが、tiny2313や12MHz水晶を大量に買い込んでおきたいですね。
こんにちは、
ATtiny45を使ったUSB-I2Cブリッジについて少しお教えいただけませんか?
内容はコマンド類の変更、
ベンダーIDプロジェクト、IDの変更です。
オリジナルの、アナデバのエバリューションにはEZUSBが使われていて、
疑似シリアル(I2C)でコマンドデータの送受信をするだけのようです。
今回トラ技はフリスケールMC9S08JS8CWJですから、Tn45に変更も出来るかと思った次第です。
(変換部プログラムが入りきれるか心配ですが)
トラ技2010/01/P128に
有りました、
「ゲイン/位相/インピーダンス/周波数特性測定装置」を作ろうとしました。
キーデバイスのAD5933はアナログデバイスからサンプルで送ってもらい(無料)
MPUを手持ちも関係で「MC9S08JS8CWJ → MC9S08JS16CWJ」 に変更いたしました。
しかしフリスケールのデバイスドライバがwin2000では動作せずファーミュエアを書き込むことが出来ませんでした。
それでは宜しく
こんにちは。古い記事に対して恐縮です。
この記事のTiny45を使ったUSB I2Cブリッジを是非製作してみたいのですが、
回路図とzipファイルの復活をお願いできないでしょうか。
どうぞよろしくお願いしします。
> tak様
ありがとうございます。
写真も無く、データも消滅しているこんな記事に注目して頂いてこちらこそ恐縮です…。
この記事のデータを復活させましたので、ご利用ください。
kimushu様、さっそく対応頂きまして本当にありがとうございます!!
さっそく作って活用しようとおもいます。
素晴らしい記事をありがとうございました!