PIC18 情報
  ハイエンドマイコンPIC18Fシリーズ
  PIC18Fマイコンの特長
  PIC16Fとの比較
  入手できるフラッシュPIC18Fのデバイス
  PIC18Fの開発環境
 
ハイエンドマイコン PIC18Fシリーズ
ここでは、ハイエンドマイコンPIC18Fシリーズを紹介します。
PIC18Fマイコンの登場が1999年でPIC18Fマイコンのフラッシュシリーズが登場したのが2001年あたりです。
PICI8FマイコンはPIC16マイコンの欠点を使いやすく改善したデバイスで、大変安定したアーキテクチャを持っています。
PICマイコンシリーズの18Fハイエンドデバイスは命令幅が16bitの幅をもつシリーズで、PICの上位ランクに属している。基本構造はミッドレンジのPIC16Fと同じであるが、ミッドレンジで使いにくかった部分を修正するような方向で設計されている。メモリももちろん増強され、ページ切り替え無しに機能レジスタをアクセスできるといった特長を持っている。タイマ0とWDTの関係、タイマの不足、テーブルの問題、スタックの量など、改善された場所はいくつもある。つまり18FマイコンはPIC16Fを使いやすく改良したマイコンと思って間違いない。
PIC18はパワフルな機能を生かしてUSBやイーサネット、CANなどの特殊なインタフェースを搭載するデバイスもあり幅広い応用が可能になっている。
PIC18FJシリーズ、PIC18FKシリーズは3.3V動作の新しいシリーズで、消費電力が少なく価格も安い。PIC18FKシリーズは2007年より充実するデバイスで、PIC18FJより電源部が使いやすくなっているのでこちらの方がお勧め。 これらのデバイスはPIC24Fより価格が安くなり、PIC18のメリットが出てくるだろう。 機能的にはPIC18シリーズと同様。5VI/Oとのインタフェースには注意が必要、出力ドライブも低いが、このあたりはKシリーズで改善されている。PIC18FJシリーズ、PIC18FKシリーズは3.3V動作の新しいシリーズで、消費電力が少なく価格も安い。PIC18FKシリーズは2007年より充実するデバイスで、PIC18FJより電源部が使いやすくなっているのでこちらの方がお勧め。 これらのデバイスはPIC24Fより価格が安くなり、PIC18のメリットが出てくるだろう。 機能的にはPIC18シリーズと同様。5VI/Oとのインタフェースには注意が必要、出力ドライブも低いが、このあたりはKシリーズで改善されている。
PIC16Fで苦労し、同じ苦労をしたくないと思っている方・・・16Fのノウハウがそのまま使えます。
16F877で満足している方・・・18Fを使うと過去の自分が小さく見えます。
16F877で基板を作ってしまった方・・・悩むことはありません。ピン配列同じです。
18Fが難しいと思っている方・・・実は16Fの方が難しい。
16Fがややっこしいと思っている方・・・もちろん18Fがおすすめ。
18FはCコンパイラで書くと思っている方・・・18Fの方がアセンブラが書きやすい。75命令もある。
18Fは高いのではと思っている方・・・お値段同じ。1個買いは高いけど100個買えば877とほぼ同じ。
PIC16F84が使いやすいと思ってる方・・・そのまま使った方がいいかな?
PIC18F マイコンの特長
○2MBのプログラムメモリ
○4KBのワークメモリ
○1命令最大10MHz 40MHzクロック
○16bitの命令幅
○命令数75命令
○8bit乗算命令
○2系統優先付き割り込み
○タイマ0、1、2、3の4本搭載
○10bit分解能A/Dコンバータ
○31レベルのスタックメモリ
○高速ポートアクセス
○16Fとピンコンパチブル
○ポインタのFSRは3本
○プログラムメモリにもポインタ用意
●PIC18F フラッシュマイコンシリーズ
PIC16Fとの比較
●メモリ構造の違い
メモリ構造は全く違うものの、その違いを意識することなく使える。BSRレジスタでバンクが管理され、256バイトメモリ空間を16バンク切り替えする。機能レジスタは16Fの0xx番台よりF8x番台に移動した。ユーザは0番地から使用できる。BSRを使用したアクセス方法と、アクセスバンクアドレッシングが加わり、アクセスバンクを使用すると256メモリ空間で機能レジスタをアクセス可能。
●プログラムメモリ
16bit幅のプログラムメモリはODD/EVENの考え方が入ってきた。プログラム幅は同時に命令の大きさを示し、2bit拡張されて75命令と16Fの2倍になった。アクセス用のポインタが用意され、読み出し時はテーブルアクセスが可能になり、書込時はプログラムの書き込みをブロック単位で実行できる。
●スタックメモリ
スタックは、31レベルに拡大。サブルーチンが30回も飛べるので、構造化プログラミングが可能になった。これは大変な進歩である。
●メインクロック
クロック源にPLL回路を内蔵し、10MHzのクリスタルの装着で40MHzクロックを発生できる。これにより1命令10MHzとなり、従来の16Fの2倍速で動作する。
●ポインタ機能
FSRを使用したポインタが3本に拡張され、ブロック転送やリングバッファ処理なども書きやすくなった。さらに、ポストインクリメント、プリデクリメントの操作も可能。もちろんバンク切り替え無しに全メモリが自由にアクセスできる。
●割り込み
割り込みは2種類で、優先順位がついた。外部割り込みは3系統ある。
●周辺機能
周辺機能はあまり変わっていないため、かえって混乱がない。タイマ0がWDTと分離し、プリスケーラが自由に使えるようになった。これは大変便利。さらにタイマ0は16bitタイマとしても使用できる。また、16bitのタイマ3が加わった。
●プログラムの移植
16Fのプログラムを18Fに移動することはあまり問題ない。命令も同一のものは残っている。ただ、RRF,RLFがRRCF,RLCFに名称を変えている。命令の追加は多少必要である。しかし、18Fの能力を生かすためには新たに書き直した方がいいことは言うまでもない。
PIC18Fの開発環境
18Fのエミュレータはまだ充分整備されてはいないが、MPLAB ICD 3が用意されこれで結構用が足りてしまう。 MPLAB ICD同様RB6、7を取られてしまうのが欠点。MPLAB ICD 3は丸形のケースに収納されド派手な色がつけられている。 安価なのはPICKIT3、HID接続のためドライバいらずで使いやすいが、転送速度や信頼性の点でポイントが下がってしまう。 CコンパイラはC18コンパイラを無償で活用できる。もちろんMPLAB環境で全て利用できる。
PageTop
もどる