PIC16F19155を使ってみる(その2)

PIC16F19155を使ってみるの2回目です。
前回は、Lチカをやってみるところまででした。
alasixosaka.hatenablog.com

PICはたかがLチカですが、設定がいろいろあって結構労力を使います。前回は何故かRA5端子ではうまく動かずRA0に繋ぎ変えると無事にLチカが動作しました。
今回はRTCCを使ってみます。さっきも書いたように、PICは設定が面倒なので、最近のMPLAB XIDEでは、この労力を減らしてくれるようになっています。
まず、最もめんどくさいコンフィグレーションビットの設定ですが、production->Set Configration Bitsというコマンドを選んで、右下に出てくる各コンフィグレーションビットの設定を選択し、画面下のGenerate Source Code to Outputというボタンを押してやるとコンフィグレーションビットの設定コマンドを出力してくれるので、そいつをコピペしてやると簡単にできるようになします。

MCCを使ってみる

もっと色々な設定ができるものとして、MCCというのがあります。使い方はこちらに詳しいので、参考にしました。
zattouka.net
MCCを使うと、ピンの設定(デジタルかアナログか、入力か出力か)、各種ペリフェラルの設定、オシレータの設定、タイマーの設定などを簡単にできます。
その分、設定コマンドがライブラリのようになってしまうのでブラックボックス化してプログラムがわかりにくくなるという欠点があります。一長一短ですが、簡単にテストをしてみたいというときは重宝します。
今回は、RTCCを設定して動かしてみました。
PICの16F1シリーズでRTCCを動かしている記事を見つけられなかったので、こちらの記事を参考にしました。
zattouka.net
machoto2.g2.xrea.com

配線です。

RTCCテスト用の配線

前回から、RTCC用にクリスタル(32.768kHz)とコンデンサ(22pF)×2個を追加。そして、RA2端子に抵抗(330Ω)とLEDを繋いでいます。こちらは、RTCCの出力確認用です。
プログラムは基本は前回のLチカと変えていません。RA0に繋いだLEDが1秒間隔で点滅します。もう一方のLEDはRA2に繋いでいますが、こちらは、PPSを使ってRTCCからの出力をRA2から出るようにしました。
RTCCのアラーム設定は10秒間隔でアラームが出るようにしてみました。消費電力の関係から電子ペーパーでは1秒間隔で更新するのが難しそうと思っていますので10秒間隔で動かすことを想定しています。参考サイトによると、アラームを10秒間隔にした場合、RTCC出力は10秒間1、次の10秒間0を繰り返すことになっていますが、やってみると、0.5秒間隔で0と1を繰り返すようになっていました。

データシートは良く読まないとだめ

ザーッとデータシートを読んだ限りでは、PIC16F19155と参考サイトのPIC18F26J50のRTCCの所に大きな差がなかったので、同じことが起こるだろうと思っていたのですが、データシートをよく読むと、PIC16F19155では、SECONDSというのが直接RTCCピンにつながっていました。

PIC16F19155のデータシートRTCCの部分

なので、1秒間隔でLEDが点滅するのは動作として正しいということです。
しかし、アラームが正しく10秒間隔で実行されているかはこのままでは確認できません。
次回は、その辺を割り込みを使って確認してみたいと思います。