フォト
2017年3月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
無料ブログはココログ

« ATtiny13AでUART-I2Cブリッジの製作 - まずその準備3 | トップページ | LPC810始めました »

2015年3月29日 (日)

ATtiny13AでUART-I2Cブリッジを試作したが微妙

前回の続きです。
取りあえず、ATtiny13AにUART-I2Cブリッジを実装しました。

I2C接続LCDキャラクタ表示器にTeraTermでI2CコマンドをATtiny13Aに送ると

01

一応、ちゃんとコマンドを認識して文字が表示出来ました。

Dscn3699

ただし、非常に微妙です。

問題点等
・シリアル送信時に1バイト毎に2msecウェイトをかけないと
  受信データを取りこぼしてしまいます。
  メモリが足らないのでバッファリングやエラー処理が実装できません。
  2つの通信を同時に扱うのにSRAM 64バイトはちょっと辛かったです。

・I2Cがちょっと遅い。シリアルで115200出ない。
  なんか異常に遅いです。

まあ、今回は命令文を構想が練れたので良いとしましょう。
コマンドの形式前回からちょっと変更しました。

シリアル通信からI2C制御コマンドは次の通りです。
@a[C]    I2Cアドレス送信(スタートビットも送信,スレーブからack読み取りも行う)
@w[C]   1バイト送信(スレーブからack読み取りも行う)
@r[A]    1バイト受信(スレーブにack送信も行う)
@e        通信終了(ストップビット送信)

多分、これでI2C接続デバイスのの多くが制御ができると思います。
マクロ命令(上記の命令を組み合わせている)
@c[addr][cmd]   コマンド送信
@d[addr][data]   1バイトデータ送信 

さて、どうしましょうかね。
ATtiny13Aでこれ以上頑張っても、ちょっと無理そうです。
次はLPC810で実装しようと思います。

関連記事
LPC810を使ったUART-I2Cブリッジの改良版が出来ました (16/07/21)
LPC810を使ったUART-I2Cブリッジの機能拡張の検討中 (16/07/13)
UART-I2Cブリッジの使い方 - リアルタイムクロックの調査 (15/05/17)
Wiiヌンチャクの動作確認しました (15/05/17)
LPC810を使ったUART-I2Cブリッジがやっと出来ました (15/04/15)
ATtiny13AでUART-I2Cブリッジを試作したが微妙 (15/03/29) [この記事です]
ATtiny13AでUART-I2Cブリッジの製作 - まずその準備3 (15/03/26)
ATtiny13AでUART-I2Cブリッジの製作 - まずその準備2 (15/03/25)
ATtiny13AでUART-I2Cブリッジの製作 - まずその準備 (15/03/24)

公開・ダウンロードサイト
GitHub - LPC810 UART-I2Cブリッジモジュール

« ATtiny13AでUART-I2Cブリッジの製作 - まずその準備3 | トップページ | LPC810始めました »

arduino」カテゴリの記事

ATtiny13A」カテゴリの記事

AVR」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/571408/61352939

この記事へのトラックバック一覧です: ATtiny13AでUART-I2Cブリッジを試作したが微妙:

« ATtiny13AでUART-I2Cブリッジの製作 - まずその準備3 | トップページ | LPC810始めました »