1231819 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

不思議な物ショップ

不思議な物ショップ

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

Freepage List

Comments

白鷹3@ Re[1]:Echo Show 5 その2 通話ができない(11/29) nackさんへ ほんと、早く対応してほしいも…
nack@ Re:Echo Show 5 その2 通話ができない(11/29) 自分も同じような状況です。昨日は追加で…
Daizo@ Re[1]:3Dプリンタのスライサ自動化(08/24) 白鷹3さん >スライス設定の煩わしさがな…
白鷹3@ Re:3Dプリンタのスライサ自動化(08/24) スライス設定の煩わしさがなくなるのは楽…
Daizo@ 3Dプリンタのスライサ自動化 初めまして、3Dプリンタクラウドプラット…

Keyword Search

▼キーワード検索

Category

Recent Posts

Archives

Free Space

私の工房(類似品を含む)
3Dプリンタ「CUBIS」
切削RP「MDX-20」
フライスマシン旋盤
ミニルーター
プロクソン製です。安物は役に立たず、こちらに買い換えました。
バンドソー
2017.05.16
XML
カテゴリ:カテゴリ未分類
TWE-Liteで、LCD(AQM0802A)に表示することに成功しました。

苦労した!

I2C通信が、初めて。
TWE-Liteも、初めて。
AQM0802Aも、初めて。

ということで、大変でした。


TWE-Liteに、出荷時に入っている標準アプリで、子機に表示するなら、下記のURLの情報を見れば、簡単にできます。

https://mono-wireless.com/jp/products/MoNoStick/control-I2C.html


自作のアプリで、表示する場合は、ライブラリに含まれるbSMBusWriteなどを使って、プログラムを組み立てることになります。

一番、はまったのが、スレーブアドレスの指定方法でした。
AQM0802Aの取扱説明書には、0x7C(0111 110 0)と書かれていますが、bSMBusWriteには、0x3E(011 1110)を指定する必要がありました。

0111 110 0 は、上位7ビットが、スレーブアドレスで、下位1ビットが、R/Wを指定するビットです。

AQM0802Aの取扱説明書では、これを、8ビットで表現しています。
TWE-Liteでは、上位7ビットと、下位1ビットを分けて扱います。
この違いに気付くのに、時間が掛かりました。

bSMBusWriteの内部で呼び出されているvAHI_SiMasterWriteSlaveAddrには、第二引数に、R/Wを与えるようになっています。


次に、悩んだのが、データの送信。
先のURLの情報と、本の「TWE-Liteではじめるカンタン電子工作」では、LCDの種類の違いもあり、記述が異なります。
また、そもそも、標準アプリのI2Cデータの扱いに関して、SDKとは異なりました。
プログラムの移植を気にして、混乱したのですが、結局、AQM0802Aの取扱説明書を見ながら、この通りにデータを送信するように心がけることで解決しました。

データを書き込む部分は、このような感じになりました。


LCD_ADDRESSは、0x3E

data[0] = 0x69;  // 'i'を表示させる
bSMBusWrite(LCD_ADDRESS, 0x80 | 0x40, 1, data);

0x80は、最終データを意味し、
0x40は、送信データがコマンドではなく、データであることを意味します。


これで、表示されました。
しかし、そうなると、先のURLに従うと、どうして表示されるのか、疑問が残りました。

参考までに、6Pの電池を、マイコンの電源として使っています。
開発中に、マイコンにプログラムが書き込めなかったり、起動させると異常な動作をして悩みました。
これは、電池切れのためでした。





お気に入りの記事を「いいね!」で応援しよう

Last updated  2017.05.16 11:20:43
コメント(0) | コメントを書く



© Rakuten Group, Inc.
X