Freescale S08 とは

9S08(略して68HCS08またはS08)は、元々モトローラが製造した8ビットマイクロコントローラ(μC)ファミリであり、後にフリースケールセミコンダクターによって製造され、現在モトローラ6800マイクロプロセッサに由来するNXPによって製造されています。これはCISCマイクロコントローラです。 9S08デバイスは、より高性能であり、通常、エージングする68HC05マイクロコントローラよりも安価であり、ほとんどすべてのタイプの組み込みシステムに使用されます。 MMUを含む大規模なメンバーは、最大128KBのページフラッシュと8KBのRAMを提供します。使用されるページングスキームでは理論上最大で4MBのフラッシュが可能です。
MMUを装備したバリエーションには、2つのCPU命令(CALLとRTC)が用意されています。これらの命令は、JSRとRTSの代わりに使用され、ページメモリに配置されたサブルーチンを処理するため、ページ間のサブルーチン呼び出しが可能です。 1回のアトミック操作では、CALLが保存され、RTCはPCだけでなく、1つの余分なアドレスバイトであるPPAGE(プログラムページ)バイトも復元します。この余分なバイトのために、また、スタックのバランスを保つために、RTCで終わるサブルーチンは、同じメモリページに存在していても、常にCALLで呼び出さなければなりません。
内部的には、9S08命令セットは6805と上位互換性があり、スタックインデックスアドレスモードが追加されています。 (SPレジスタを使用する命令には、オペコードの先頭にバイト0x9Eが付いています)。これは、単一の8ビットアキュムレータ、A、1つの8ビットインデックスレジスタ、X、または1つの16ビットインデックスレジスタ、HX(HおよびXレジスタの組み合わせから形成される)、条件コードレジスタ、16ビットスタックポインタ、およびプログラムカウンタを含む。 Hレジスタを持たない6805との互換性のために、HXレジスタの最上位バイトHはリセット中にクリアされ、HはISR(割り込みサービスルーチン)を入力するとき自動的に積み重ねられない唯一のレジスタです。いくつかの命令は、HおよびXレジスタを組み合わせた16ビットHXレジスタとして扱います。 6805とは異なり、スタックは適切な命令を使用してメモリのどこにでも配置できます。
9S08ファミリのプログラミングまたはデバッグの標準的な方法は、標準の6ピンBDMインタフェース(マイクロコントローラとの通信には1本のピンのみ使用)です。
さまざまな周辺機器が、異なるメンバーおよび/またはパッケージで利用可能です。 SCI、SPI、8/10/12ビットA / D、(C)PWM、インプットキャプチャ、アウトプットコンペアはほとんどのメンバに共通ですが、外部バスは使用できません。一部のメンバーにはCANコントローラが内蔵されています。