I2Cを始めてみる

PIC

前回の続き。

整理すると、東京辺境の環境では、こういうデバイス構成になっている。
PIC18F47Q10が載っているDM164136 — マスター
PIC16F18446が載っているDM164137 — スレーブ

なので、まずはハードウェアを配線した。これ。

次にやることは、PIC18F47Q10が載っているDM164136用のプロジェクトを作り、それをマスターにすることだ。具体的には、319ページの「5-2-8 MCCによる例題のI2Cマスタ側のプログラム製作」をやってみる。

本の通りに設定し、Generateしようと思ったら・・・Warningが出た。これ。


なんだこれ??SDA1をRC4にするとダメなのか?一応データシートを見ると、こんなふう。

何が言いたいのかよくわからない。

なので、安易に・・・

SDA1をRC2にしたら、Warningが消えて通った。(^^♪ 
忘れないようにハードウェアの配線を変更せねば!

あと、こんなふうに、318ページに書いてあるlcd8x2_lib.h, lcd8x2_lib.cをダウンロードしてコピーしてプロジェクトにアサインすれば、321ページにあるリスト5-2-4は別に手で入れる必要は無いということでいいのかな??

ならば、この状態でコンパイル・書き込みをしてみる。すると、通った!
けど、何も起こらないよ(^^♪

で、コメントの文字化けはいいとして、321ページには、「コントラストの制御部は実際に表示させて調整する必要があります」と書いてあるのだが、たぶんここだな?で、これをどうしろとwww(^^♪
どの数値をどうすればコントラストが上がるとか、そういう記載が一切ないというすごい本だwww
こういうのは、是非やめてほしい

仕方ないので検索すると、こちらのサイト様がいつも参考になる。

#define CONTRAST 0x28 // for 3.3V

//——– 初期化
void LCD_int(void){
__delay_ms(100);
LCD_cmd(0x38); // 8bit 2行 表示命令モード
LCD_cmd(0x39); // 8bit 2行 拡張命令モード
LCD_cmd(0x14); // OSC BIAS 設定1/5
// コントラスト設定
LCD_cmd(0x70 + (CONTRAST & 0x0F));
LCD_cmd(0x5C + (CONTRAST >> 4));
LCD_cmd(0x6B); // Ffollwer
__delay_ms(100);
__delay_ms(100);
LCD_cmd(0x38); // 表示命令モード
LCD_cmd(0x0C); // Display On
LCD_cmd(0x01); // Clear Display
}

みたいなのを加えればいいのか??—やってみたら、コンパイルが通らなくなったので、元に戻した。

で、lcd8x2_lib.hにこういうのを発見。多分これだ。

この数値30を、10から90の範囲で変えてみた・・・けれど、何も起こらず。(^^)/

でもそれはごもっともで、オリジナルのままだと、CONTRASTが一回も参照されてないので何も起こるわけがない。なので、いいとこどり?をしてこういうふうにしてみた。

今度は、コンパイルが通って書き込みも成功!で、数値を10から90まで変える。
その結果・・・何も起こらず。(^^)/

よし。ならば、基本に立ち返って、これを再確認。どうみても半田が盛ってあるように見えるのだが、それを疑って、2か所とも半田ごてで自分で半田を盛ってみる。何事も自分でやるのが非常に重要だからな。その結果、

なんと、こういう結果に!・・・でも、この状態のまま変化が無いのは変わらず。
ハードウェア的には直ったけど、ソフト的には動かないままな感じ。今回は両方ダメだったという例。
世の中何があるかわからないですよねwww(^^♪

※追記2024.3.26
秋月のLCDモジュールのマニュアルを眺めてみた。これ。

ここで気になったことをやってみる。
1. 初期設定例の通りにやってみる。コントラストも、ここにあるような定数に戻す。
2. 使い方の5にあるような、リセット端子。今まではフローティングでやってた。なので、ちゃんとVDDに吊ってみる。
その結果、

ついに動いた!今回の原因は、リセット端子をVDDに吊らずにフローティングにしていたことだった。ただ、新しいPIC本の315ページの図5-2-12のAQM0802のところの回路図。明らかにRSTはフローティングになってる。今回も結局、秋月電子に救われた!という結末。重ね重ね秋月はすばらしい!!

なんというか、今回の原因は全てハードウェア絡みだった!!これも想定外。いやー、いろいろ勉強になりますね。とにかく、疑わしいことは全部潰してみるのが基本ですね。振り返れば当たり前なものの、つい大丈夫だろう・・・という過信が災難を招くということ。人生訓にもなりますね。
やはり、自作は奥が深い!(^^♪

コメント

  1. JI1BXM より:

    I2Cで通信できるようになると、これ作りたくなりますよ~。
    FMラジオぉ。^O^)””
    最近の自作品のうち、通電時間が一番長いものになってしまいました。^-^)

    https://ameblo.jp/chacha-oyaji2/entry-12831584855.html

    • atatan9437 より:

      なるほど。

      まあここの環境だと電波はろくに入らないのでNGですけど。それ以前にPICが実用になるのにどれくらいかかるのかwwwという。早速この本のI2Cは見限りましたし(^^♪

タイトルとURLをコピーしました