組み込みソフトウェア開発の第一歩を踏み出そうH8で学ぶマイコン開発入門(1)(2/4 ページ)

» 2006年09月12日 00時00分 公開

シングルチップ(ワンチップ)マイコンの機能

 一般的にシングルチップ(ワンチップ)マイコンには、以下の機能が内蔵されています。

内蔵メモリ

 内蔵メモリの容量はマイコンによって異なりますが、数百Kbytes程度のROMやRAMがチップ内部に内蔵されています。内蔵ROM/RAMの利点は、

  • チップ内部にあるのでアクセススピードが速い
  • チップ外部の部品点数が少なくて済む
  • チップ外部にノイズを出さない

などが挙げられます。内蔵RAMはユーザー側で書き込みや消去が容易にできますが、内蔵ROM(マスクROMタイプ)は、ユーザーが用意したプログラムを半導体メーカーの製造工程でROMに書き込んでもらう必要があるため、ソフトウェアの改定が難しいという欠点があります。

 ただし最近では、フラッシュタイプの内蔵ROMが増えてきました。これにより、半導体メーカーが保証する回数分、ユーザー側でオンボードあるいは市販のフラッシュメモリライタによる書き込みや消去などが可能となり、内蔵ROMの欠点が解消されています。

I/Oポート

 チップ外部の周辺機器とやりとりを行うためのI/Oポートがマイコンに内蔵されています。I/Oポートに割り当てられた端子は、アドレスやデータバスと兼用(マルチプレクス)されている場合が多いため、マイコンに内蔵されたレジスタを操作することで、該当する端子をポートとして使うか、アドレス/データバスとして使うかを決定します。

 例えば、ある端子からデータを入力したい場合は、以下の機能を実行するプログラムを書きます。

  1. ポートI/Oレジスタの特定ビットを操作して、該当する端子を汎用ポートに設定
  2. ポートI/Oレジスタの特定ビットを操作して、該当する端子を入力側に設定
  3. ポートデータを格納したレジスタから入力データをリード

動作モード

 モード端子の状態を変更することで、マイコンの動作モードを決定できます。例えば、プログラムが内蔵メモリ内に収まらない場合、外部メモリにプログラムを格納することができます。一般的に、図2〜4に示した3つのモードが利用可能です。

拡張モード 図2 拡張モード。内蔵ROM/RAMとターゲット基板上の外部ROM/RAMの両方を使用するモード

ROMレスモード 図3 ROMレスモード。内蔵ROM/RAMを使用せず、ターゲット基板上の外部ROM/RAMのみ使用するモード

シングルチップモード 図4 シングルチップモード。内蔵ROM/RAMのみ使用するモード

周辺I/O機能

 シングルチップマイコンには、以下に示すさまざまな周辺I/O機能が内蔵されています。

  • 各種外部メモリインターフェイス:SRAM、DRAM、SDRAMなど
  • タイマコントローラ
  • AD/DAコンバータ
  • DMAコントローラ
  • 割り込みコントローラ

 これらの機能を使うことで、ハードウェア設計が容易になるだけではなく、ソフトウェア開発も効率よく行うことができます。各機能の詳細は、次回以降のプログラミング編で具体的に解説します。

低消費電力モード

 携帯電話やPDAなどのモバイル機器には、低消費電力の機能が必須です。基板に実装されている部品の消費電力を抑える技術と同時に、マイコン自体にも低消費電力を実現するための機能が用意されています。マイコンによって手法は異なりますが、本連載で使用するH8マイコンには、以下に示す低消費電力モードが用意されています。

・外部クロックを停止または可変
・マイコンに内蔵されたスリープモードを使用
スタンバイコントロールレジスタ=0のときにSLEEP命令実行
→ CPU:停止、内蔵周辺I/O:動作、クロック:動作
・マイコンに内蔵されたスタンバイモードを使用
スタンバイコントロールレジスタ=1のときにSLEEP命令実行
→ CPU:停止、内蔵周辺I/O:停止、クロック:停止
・外部端子(スタンバイ端子)の状態を変更
・内部クロックの逓倍率を落とす

Copyright © ITmedia, Inc. All Rights Reserved.