2020年8月
            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          

サイト内検索

最近のトラックバック

無料ブログはココログ

« オートファジーの話ならNHKサイエンスゼロがわかりやすいですよ | トップページ | 月がとってもきれいでした »

2016/10/30

トラ技2016年11月号の付録基板を組み立ててみた

トランジスタ技術2016年11月号の付録基板を組み立ててみた。

Tr1611piccaso

 距離センサーと気温気圧湿度センサーは手持ちがあった。アンプ部分は実験用に作った外付け回路を使いまわすから組み立て不要。
 なんで、部品キットは買わずに済ませようと思った。<-これが間違いだったのかも。

 R,Cは部品箱をかき回して集めた。PIC16F1509と2N7000はRSコンポーネンツで見つけて発注。

 残ったのがI2Cインターフェースの液晶モジュール。

 ググると、なんとAmazonで見つかる。Amazonで売ってる、ということに驚く。もう、文字通り、何でもありだわAmazon。
 それも似たようなモジュールがぞろぞろと出てくるのに驚く。さらに値段もバラバラなのに驚く。

 記事で使っているのに近そうな物に当りをつけて発注したのがこれ。
EasyWordMall IIC / I2C / TWI 1602 LCD モジュール ブルー スクリーン IIC/ I2C Arduino用

 御推察の通り、こういったモジュールの出処は中国。
 当然安い。ほかの部品とまとめ買いしたので送料もかからない。
 こうゆうことだと国内の小売りもメーカーも太刀打ちできない。

 但し、データシートの類は一切ついてこない。ブツだけがエアキャップに包まれて郵便物扱いでやって来る。
 メーカー名もはっきりしないので、ネットサーフィン(死語?)というか、それっぽいところを探り探りしてデータをダウンロードする。
 が、得られたデータシートもその製品のものは見つからず、使われているコントローラのものだけだったり、中国語で書かれていて訳が分かんなかったりする。

 さらに、配送に時間がかかる。しっかり2週間、ええ、待ちますとも、子供の頃なんかは部品発注しても届くのはひと月先だったもんな...。
 注文したのをチョット忘れかけた頃合いで、それでもキチンと届くのだからから大したもんだ。

 幸い記事と同等のもの(らしい...)で寸法もあってる。
 PIC16F1509にファームを書き込んでRaspberryPiその他もろもろ実装して、起動したのですが...

   LCDに文字が出ない。


 ということで、ここからが本題ですが、結論から言えば液晶モジュールのI2Cのアドレスが違っていることがあるらしい、ということです。

 トラ技のサポートページからソフトウエア一式"TR1611P.zip"をダウンロードして解凍。
"第2特集第2章(2次試作)\PICスパコン拡張ボード[センサ版]"の中の"CQClock¥lcd1602_lib.c"を見ると

void lcd_out(unsigned char code, unsigned char flag)
{
    char data;
    data = ((code & 0xF0) | flag) | 0x08;   // +RS
    SendI2C(0x7E, data);                    // +BL
    SendI2C(0x7E, (data | 0x04));           // +BL+EN
    SendI2C(0x7E, (data & 0xFB));           // +BL-EN
    __delay_us(30);                         // 遅延
}

 I2Cのアドレスデータは0x7Eとなっている。但しアドレス値は7~1bit(最下位ビットはR/Wフラグ)なので実際の値としては0x3F。
 ところがネット上の他の使用例を調べるとアドレス値は0x27になっている。

Lcd1602a

Lcd1602b

 ここで使っているI2C液晶モジュールは秋月電子通商等でもおなじみのパラレルインターフェースの液晶モジュールに、I2C->パラレル変換ICである"PCF8574"を実装した回路基板を抱き合わせたもののようである。

 ややこしいのは同等品として"PCF8574A"という型番もあって、それぞれアドレス値が異なるということ(機能は同じ)。

 PCF8574   : 0x20~0x27
  PCF8574A : 0x38~0x3F
 (下位3bitは外部端子A2-A0で決まる)

 両方使えば最大16個まで接続できますよ、ということらしいのだけど、単に上位品、機能改良版かと思い込んでしまいそう。こうゆうの、製品化するときは怖いよねぇ。

 トラ技の記事で扱われたモジュールは、"PCF8574A"を使っていたのか?

 ひょっとして出回っているモジュールには"PCF8574"を使ったものと"PCF8574A"を使ったものとが混在しているのでは?
 しかも外部端子A2-A0の設定もよく判らない。全部PULLUPしてあるかPULLODWNしてあるかどっちかだろうけど、検索した画像では同じような基板なのにアドレス設定用のジャンパがあったりなかったりする。

 結局、やって来たモジュールが0x20,0x2F,0x38,0x3Fのどのアドレスかは運次第、だったりして。

 カオスじゃ。
 ビバ、ハロウィーン~!! トリック オア トリート!!ってか


 以下、その他の気づいた点もまとめて。

1.上述の通り、PIC16F1509に書き込むファームウエアはトラ技のサポートページの"TR1611P.zip"の中の
"第2特集第2章(2次試作)\PICスパコン拡張ボード[センサ版]"の中の"CQClock"をI2Cのアドレスを修正した上でコンパイル->焼き直しする必要がありそうです。

2.コンパイル、焼き込みにはMAPLAB X IDEとPICKIT3または相当品が必要。トラ技付録基板はPICKIT3に直結できるICSP端子があるけれど、5V系と3.3V系が混在するので、焼きこみは別途ブレッドボード等で行った方が無難そう。

3.PICKIT3に書き込むファームウェアのソースは上記の通り。一方、RaspberryPi上で実行するPythonのスクリプトは
  "第2特集第2章(1次試作)\ラズパイ\work\talk1.py"
 と、それぞれ別のフォルダにあるので注意。

4.そもそもPIC16F1509に書き込むファームウェアのhexファイルは"TR1611P.zip"の中の
  "第2特集第2章(2次試作)\PICスパコン拡張ボード[センサ版]\CQClock20160926.hex"
 らしいのだけれど、これはトラ技記事にある名称"Raspberry Speech"と異なっていて分かりにくい。

以上、自分で部品集める方の参考になれば。

« オートファジーの話ならNHKサイエンスゼロがわかりやすいですよ | トップページ | 月がとってもきれいでした »

パソコン・インターネット」カテゴリの記事

学問・資格」カテゴリの記事

日記・コラム・つぶやき」カテゴリの記事

書籍・雑誌」カテゴリの記事

趣味」カテゴリの記事

linux」カテゴリの記事

エレクトロニクス」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

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

トラックバック


この記事へのトラックバック一覧です: トラ技2016年11月号の付録基板を組み立ててみた:

« オートファジーの話ならNHKサイエンスゼロがわかりやすいですよ | トップページ | 月がとってもきれいでした »

アフィリエイト

リンク

リンク3

  • livecam

写真:生目

  • 10号墳

    宮崎市北西部に位置する生目古墳群の写真を集めました。 なおcocologでは1MB以上のファイルがダウンロードできませんので生データが必要な下記のリンクへどうぞ。
            ikime0704