PIC 18F14K50のマイコンの勉強
PIC 18F14K50のマイコンの勉強を少ししました。PIC18F14K50_Datasheet_JP.pdfという日本語のデータシートがあるので、全然わからないものでも、理解できるだろうと思っています。私は、その昔、勉強したZ80の知識があるので、それと比較して理解して行きたいと思います。Z80は、ちょっと古すぎますが、PICは8ビットマイコンですから、大丈夫でしょう。
メモリ構成:
プログラムメモリ、データRAM、データEEPROM の3種類のメモリがあるようです。PICマイコンは、データとプログラムは、完全独立している構成を取っているとのこと。このあたりは、普通のPCのインテル・アーキテクチャと違うようですね。
プログラムメモリは、16KBあるということで、0~3FFFhまでのアドレス空間を持っています。
PIC18F14K50は、16ビットマイコンということで、8Kワード分の命令を格納できるということです。
最下位のアドレス部には、1つのリセットベクタと2つの割り込みベクタがあります。リセットベクタのアドレスは0000h、割り込みベクタのアドレスは0008h と0018hにあるということです。
プログラムカウンタは、21ビットあるということで、2Mバイトのアドレス空間を持つようですが、実際には、16KB分しか実装されていませんので、14ビットしか使いませんね。
リターンアドレススタックは、31個プログラムメモリとは別に持っているということ。この辺は、Z80 とは違いますね。スタックオーバーフローや、アンダーフローは、注意が必要ですが、アンダーフローが発生した時は、リセットベクタへ分岐するとの記載があり、プログラムエラーが発生した時に暴走を阻止できるようになっていると理解できます。
PIC18Fは、4クロックでPC(プログラムカウンタ)がインクリメントされるという動作をするということで、1ワード分の命令を4クロックで実行する形となります。命令のフェッチ、デコード、実行、もう1命令サイクルの4サイクルのパイプライン動作ということです。
命令は、2バイトもしくは、4バイトで構成され、PCは、2バイトずつインクリメントされるということのようです。
データメモリは、SRAMで構成されており、12ビットのアドレス空間を持てるということです。下図のように、256バイトのバンクが16個あるというような構成になっているということです。![]()
PIC18Fでは、768バイト実装されています。実際には、000h~1FFhの512バイトが汎用メモリとして使え、200h~2FFhがUSB用のデュアルアクセスRAMとなっているようです。これで、合計768バイト。
その他、F53h~FFFhにSFR(Special Function Register)と呼ばれる特殊用途のメモリがあるようです。
最後にデータEEPOMです。256バイトあります。これは、先のプログラムメモリやデータメモリとは独立しているとのこと。長期保存が必要なデータをSRAM(電源Offで消えてしまう)で構成されるデータメモリとは、別に持てるということのようです。
まあ、こんなところで、勉強は終わりにしましょう。

この記事へのコメント