Sahara's WebLog

日記のような、備忘録のような、うらみつらみのような、自慢のような…。

PIC32MX470F512H + SSD1306(GM009605)

SSD1306を制御ICに使う低価格、小型、白色OLEDで遊んでいる。
PIC24でも動いた(「PIC24FJ64GB002 + SSD1306(GM009605)」)ので、PIC32でも試してみる。

開発環境
MPLAB X(v3.45)
MPLAB Code Configurator(v3.36)
XC32(v1.44)

大きめのブレッドボードに空きが無かったので、変換基板にハンダ付けしてあるPIC32MX470F512Hを使った。
これだと基板上で基本的な配線が済んでいるので、大きなブレッドボードが必要ない。



時間稼ぎのDelayを「PIC32MXでdelayを作る。」に書いたコードに変更しただけで、他は全くそのままで動いた。

と言いたいところだが、PBCLKを12MHzより大きくするとなぜかI2Cが動かなくなってしまった。
理由は良く分からないが、調べてもいない。
SYSCLKは96MHzの設定で動くので、メモリーまわりの処理は速いと思う。
でもまあ、そもそも速度を求めるならSPI接続のモジュールを使う方がいいだろう。

追記
MCCでふと気づいたことがある。
System Moduleでクロックを変更してPBCLKを変更する。
すぐにTIMER2とかを見てみる。
Clock SourceはPBCLKになっているのにInput Frequencyが上で設定した値になってない。
つまり、変更がすぐに反映されない。
一度Externalとかに変更してからPBCLKに戻せば新しいクロック数が反映される。
この調子で、I2Cとかの設定でも変更が反映されない場合があって、それが上に書いたようにI2Cが動かなくなったりする原因かもしれない。

参考
Arduino NanoでGM009605の動作テストをする
PIC24FJ64GB002 + SSD1306(GM009605)
ESP8266 + SSD1306(GM009605)

このエントリーをはてなブックマークに追加

Posted under: PIC32MX470F512H


コメントを残す

メールアドレスが公開されることはありません。

Time limit is exhausted. Please reload CAPTCHA.