HCS08の概要
【8 ビットHCS08 中央演算処理装置(CPU)】
- コア周波数20MHz HCS08コアCPU(中央演算処理装置)を内蔵しています。
- HC08の命令にBGND命令を追加した命令セットです。
- バックグラウンド・デバッグ・システムを装備しているのでインサーキットデバックが可能です。
- インサーキット・デバッグ(ICD)中に一つのブレークポイントの設定が可能なブレークポイント機能
- (オンチップ・デバッグ・モジュールではさらに2 つのブレークポイントを設定可能)
- 2個のコンパレータと9 個のトリガ・モードを持つデバッグ・モジュールを内蔵しています。
- FIFOはフロー変更アドレスとイベント専用データの格納用として8段階の深度があり、ブレークポイントはタグ設定と強制実行に対応します。
- 最大32 個の割込み/ リセット・ソースをサポートします。
【メモリ・オプション】
- 動作電圧および動作温度の全範囲でのFLASH のリード/ プログラム/ 消去が可能です。
【低電力モード】
- ウェイト・モードと3種類のストップ・モードを内蔵しています。
- クロック周波数を下げたり、停止させて消費電力を抑えます。
- 割り込みにより復帰する事が可能です。
【クロック・ソース・オプション】
- ICS/ICG - 内部クロック・ソース・モジュールを内蔵しています。
- 内部または外部の基準クロックで制御する周波数ロック・ループ(FLL) を内蔵しています。
- 0.2%の分解能で内部基準クロックのトリミングにより、電圧および温度範囲全体で2%の発振精度です。
- CPUコアはバス周波数の2倍のクロック周波数で動作します。
- 選択が可能な水晶発振子/ セラミック共振回路で動作する低電力オシレータ。
- 外部クロック・ソース入力に対応。
【システムの保護】
- COP(コンピュータ動作保証) ウォッチドッグ・リセットに専用の内部クロック・ソース又はバス・クロックを使用
- 低電圧の検出時にリセットまたは割込みを実行
- 不正オペコードの検出時にリセットを実行
- 不正アドレスの検出時にリセットを実行
- FLASHのブロック保護
【ペリフェラル】
- ADC - 10/12 ビットのアナログ/ デジタル・コンバータ 。
- 自動比較機能、非同期クロック・ソース、温度センサ、内部バンドギャップ基準チャネルを内蔵。
- RTI カウンタによるハードウェア・トリガが可能。
- ACMP - 内部基準値との比較機能(オプション)付きアナログ・コンパレータ・モジュール。
- オプションでTPM モジュールへの出力に指定可能。
- SCI - シリアル通信インタフェース・モジュール 。
- 13 ビット・ブレークが可能(オプション)。
- SPI - シリアル・ペリフェラル・インタフェース・モジュール
- IIC - インター・インテグレーテッド・サーキットバス・モジュール
- TPM - 複数チャネルのタイマ/ パルス幅モジュレータ。
- 各チャネルをインプット・キャプチャ、アウトプット・コンペア、およびバッファ付きエッジ・アライン/ センター・アラインPWM の機能に使用可能。
- MTIM - 8 ビット・プリスケーラ付き8 ビット・モジュロ・タイマ・モジュール
- KBI - 8 キーボード割込みモジュール。エッジ・モードまたはエッジ/ レベル・モードと極性をソフトウェアにより選択可能。
【入力/ 出力】
- 汎用入力/ 出力(I/O) ピン。出力はそれぞれ10~25 mA、パッケージで最大60mA~120mA
- 入力ポート・ピンは、ソフトウェアによるプルアップの設定が可能
- 出力ポート・ピンは、ソフトウェアによるスルー・レート制御およびドライブ強度の設定が可能
- RESET およびIRQ ピンの内部プルアップによりユーザ・システム・コストを削減
【開発サポート】
- シングルワイヤのバックグラウンド・デバッグ・インタフェース(OSBDM使用可能)
- リアルタイム・バス・キャプチャ付きオンチップ・インサーキット・エミュレーション(ICE)
【パッケージ・オプション】
- 16ピンPDIP(プラスチック・デュアル・インライン・パッケージ) - MC9S08QG8 のみ
- 16ピンQFN(クワッド・フラット・ノーリード)パッケージ
- 16ピンTSSOP(シン・シリンク・スモール・アウトライン・パッケージ)
- 8ピンDFN(デュアル・フラット・ノーリード)パッケージ
- 8ピンPDIP - MC9S08QG4 のみ
- 8ピン・ナローボディSOIC(スモール・アウトライン・インテグレーテッド・サーキット)パッケージ
【各レジスタの指定方法】
HCS08マイコンをCodeWarrior で記述するとIO_MAP.hというヘッダファイルがリンクされます。
このヘッダファイルには下記のように指定したマイコンのペリフェラルに必要なレジスタが構造体として記述されています。
下記の例はMC9S08SH8のヘッダファイルの一部(PORTAデータレジスタ)です。
ポートAに8ビットデータを出力する場合はPTAD = 0xFF;と記述します。
ポートAの0ビット目だけをLowにする時はPTAD_PTAD0 = 0;と記述します。
マイコンに必要な全てのレジスタが定義されているので、他のレジスタについてもIO_MAP.hを確認して利用する事が出来ます。
/**************** registers I/O map ****************/
/*** PTAD - Port A Data Register; 0x00000000 ***/
typedef union {
byte Byte;
struct {
byte PTAD0 :1; /* Port A Data Register Bit 0 */
byte PTAD1 :1; /* Port A Data Register Bit 1 */
byte PTAD2 :1; /* Port A Data Register Bit 2 */
byte PTAD3 :1; /* Port A Data Register Bit 3 */
byte PTAD4 :1; /* Port A Data Register Bit 4 */
byte PTAD5 :1; /* Port A Data Register Bit 5 */
byte :1;
byte :1;
} Bits;
struct {
byte grpPTAD :6;
byte :1;
byte :1;
} MergedBits;
} PTADSTR;
extern volatile PTADSTR _PTAD @0x00000000;
#define PTAD _PTAD.Byte
#define PTAD_PTAD0 _PTAD.Bits.PTAD0
#define PTAD_PTAD1 _PTAD.Bits.PTAD1
#define PTAD_PTAD2 _PTAD.Bits.PTAD2
#define PTAD_PTAD3 _PTAD.Bits.PTAD3
#define PTAD_PTAD4 _PTAD.Bits.PTAD4
#define PTAD_PTAD5 _PTAD.Bits.PTAD5
#define PTAD_PTAD _PTAD.MergedBits.grpPTAD
#define PTAD_PTAD0_MASK 0x01
#define PTAD_PTAD1_MASK 0x02
#define PTAD_PTAD2_MASK 0x04
#define PTAD_PTAD3_MASK 0x08
#define PTAD_PTAD4_MASK 0x10
#define PTAD_PTAD5_MASK 0x20
#define PTAD_PTAD_MASK 0x3F
#define PTAD_PTAD_BITNUM 0x00


