【特徴と変更点】
PIC16F87xシリーズはPIC16F84のフラッシュメモリの特徴を活かしたシリーズで、
型番からも推定されるように、従来のPIC16C7xシリーズの構成を継承しています。
しかし、単なる継承だけでなく、かなりの機能アップが図られており、以下のような
特徴を有しています。
1.PIC16C73/74/76/77とピン互換である。
従来から使われて来たシリーズとPIC16F873/874/876/877が型番で対応
します。
2.プログラムメモリをフラッシュメモリ化
我々アマチュア工作にはもっとも恩恵が大で、何回でもすぐ上書きで書き直しが
出来、しかも価格も紫外線消去タイプの1/3近くの価格であることは喜ばしい
ことです。
しかも、このプログラムメモリはプログラムで自分自身を書き換えることが出来る
ので、例えばリモートダウンロード機能などで、遠方からプログラムのバージョンアップ
などが可能となります。
但し、書き込み速度は、1ワード当たり数msecを必要とするので要注意。
3.5Vの低電圧プログラミングが可能となった。
従来の13Vによる書き込み方法に加え、コンフィギュレーション設定により、5Vで
プログラミングが可能となりました。
これにより、いよいよICSP(In-Circuit Serial Programming)のメリットが活かせます。
但し、5Vモードを選択すると、ポートのRB3ピンが汎用入出力ピンとしては使えなく
なり、プログラミング用の専用ピンとなってしまいます。
4.インサーキットデバッグ機能が追加された。
しかし、この機能は今のところ公開されていないので、専用のツール以外では
使うことは出来ません。
5.A/D変換の分解能が10ビットにアップ
従来8ビット分解能であったA/D変換が10ビットにアップした。従って1024段階の
計測が可能になって、応用範囲が広くなった。
さらにReferenceも、最高電圧を決めるVref+ に加え、最低電圧を決めるVref-が
追加されたので、0V以上のオフセットが可能となった。
6.ブラウンアウトリセット機能追加
電源電圧監視により電圧低下でリセットがかけられるようになった。
7.コンフィギュレーションビットの内容が変更された。
低電圧プログラミングモードの追加、ブラウンアウトリセットの追加
プロテクションの指定方法の変更
8.EEPROMデータメモリが追加された。
従来の7xシリーズには無かったメモリです。
【使い方の注意】
PIC16F87xシリーズを使う時に、従来の7xシリーズとは異なる点で注意が必要なことを
整理しました。
1.入出力ピンのデフォルトモードがアナログ入力モード
PICのポートAとEのモードがデフォルトではアナログ入力モードになっているので、
単にTRISレジスタで入出力のモードを指定しただけでは、ディジタル入出力ピンと
しては使えない。
これをディジタル入出力にするには、下記指定が必要。
・ポートA,とEを全部ディジタル入出力モードしてにする。
例 BSF STATUS,RP0
MOVLW 07H ;全てディジタルモードにする
MOVWF ADCON1
BCF STATUS,RP0
CLF ADCON0 ;A/D未使用にする
2.コンフィギュレーションの低電圧プログラミングをOFFにする
従来と同じプログラミング方法で進める時には、コンフィギュレーションビットの中の
LVPビットを「0」に設定する。
そうしないとポートのRB3が入出力ピンとしてつかえなくなります。
3.コンフィギュレーションのデバッグをOFFにする。
これもコンフィギュレーションビットの中の「DEBUG」ビットを「1」にしないと (2002/2)
ポートRB6とRB7が汎用の入出力ピンとして使えなくなります。
4.A/D変換が10ビットになってA/D変換の待ち時間が長くなった。
チャンネルして後、A/D変換を開始するまでのアクイジションタイムと、A/D変換
そのものに必要な変換時間いずれも長くなりました。
(注 クロックは20MHzで最高速度のA/D変換の時)
ビット数 8ビット 10ビット アクイジションタイム 12μsec 20μsec A/D変換時間 15.2μsec 19.2μsec