UART-I2Cブリッジの概要関連するファイルはzipでまとめられています→UART-I2C.zip
レスコンボードからのUART通信を受けてI2Cバスを操作するブリッジです。
パソコンとシリアルケーブル(ストレート)で接続することで、レスコンボードを介さずに動作させることも可能です。
各部の説明回路回路図はBSch3Vで製図しました。ファイルはUART-I2C.ce3です。部品コネクタ類は共立エレショップで、そのほかの部品は秋月電子通商で購入できます。
制作方法ファームウェアファームウェアはAVR Studio 4+WinAVRの環境で製作しました。
UART-I2C.hexをATmega88に書き込んでください。
プログラムは内臓クロックによる8MHz動作を想定しているので、ATmega88のヒューズのCLKDIV8ビットをアンプログラムド(1)にしてください。
基板の製作基板のパターンはMinimal Board Editorで製作しました。
感光基板で製作する場合、印刷に必要なレイヤーは、PTH、SOL、DRLの3つです。
基板の大きさは50mm×75mmで、複数枚並べると、サンハヤトの感光基板にちょうど収まるようになっています。
操作方法送信(マルチ)複数のコマンドを連ねて送信する方式です。通常はこちらを使用します。
送信(シングル)マルチのコマンド実行中に割り込んで命令を実行します。ブリッジが停止してしまった場合などに使用します。
返信命令を送られ、実行した際にブリッジが返す信号です。
コマンドコマンドとして使用できる信号です。送信のみ2バイトで1コマンドとなります。
スタートビットを送信したとき
0x08 スタート・コンディションが送られた
0x10 リピーテッド・スタート・コンディションが送られた
ストップビットを送信したとき
0xF8 I2Cは停止している
SLA+Wを送ったとき
0x18 ACKを受け取った
0x20 NOT ACKを受け取った(スレーブが存在しないかもしれない)
SLA+Rを送ったとき
0x40 ACKを受け取った
0x48 NOT ACKを受け取った(スレーブが存在しないかもしれない)
データ・バイトを送ったとき
0x28 ACKを受け取った(次のデータを要求している)
0x30 NOT ACKを受けとった(最後のデータを送信した)
受信+NACKのとき
0x58 NOT ACKを返した(最後のデータを受信した)
受信+ACKのとき
0x50 ACKを返した(次のデータがあるので受信する準備を)
その他
0x52 ブリッジ起動(リセットがかかった)
0x54 エラー(タイムアウト、動作仕様外等)
上記以外のものが出た場合、I2Cでエラーが発生した可能性が高い。
詳しくはAVRマイコン・リファレンス・ブック 204pを参照
エラーが発生した場合、直前までに用意された返信に加え何バイト目の命令でエラーが発生したかというコードを返信する。 その他プログラム(旧仕様):UARTtoI2C3.zip
更新履歴2010/05/20 通信速度を38400に設定
2010/07/01 電源基板の実装に際し、エラー発生時にリセットをかける動作を停止。そのほかもろもろ |
UART-I2Cブリッジ
Selection | File type icon | File name | Description | Size | Revision | Time | User |
---|---|---|---|---|---|---|---|
ċ
|
ダウンロード |
Baudrateを設定できる | 403KB | v. 9 | 2010/05/12 9:55 | Robo Kirarin | |
ċ
|
ダウンロード |
Baudrateを設定できる | 383KB | v. 7 | 2010/05/12 9:54 | Robo Kirarin | |
ċ
|
ダウンロード |
118KB | v. 9 | 2010/07/02 1:28 | Robo Kirarin | ||
ċ
|
ダウンロード |
14KB | v. 10 | 2009/04/24 3:40 | Robo Kirarin | ||
ċ
|
ダウンロード |
26KB | v. 12 | 2009/06/01 1:39 | Robo Kirarin | ||
ċ
|
ダウンロード |
26KB | v. 10 | 2009/06/26 23:36 | Robo Kirarin | ||
ċ
|
ダウンロード |
4KB | v. 9 | 2009/05/29 1:07 | Robo Kirarin |