FA用無線機器 組み込み機器 ハードウェア・ソフトウェア開発 設計製作 - 静岡県浜松市 
ビーコン 浜松市中区広沢
M16C/30P 評価ボード 概要、ハードウェア
HOME 製品情報 受託開発 資料室 お問い合わせ

M16C/30P評価ボード TOP

概要

ルネサステクノロジの16bitマイコンであるM16C/30Pを使ってマイコンシステムを構築しました。
M16C/30Pでバラックボードを製作

ルネサステクノロジのM16C/30Pサイトより引用

M16C/30Pの概要

M16C/30PはM16C/60 CPUコアで、1Mバイトのアドレス空間を備えています。最大動作周波数は16MHzです。マスクROM版、ワンタイムフラッシュ版、フラッシュメモリ版、ROMレス版を用意しており、内蔵フラッシュメモリは単一電源で書き換え可能です。


特長:

  • 16ビット多機能タイマ(タイマA、B):6チャネル
  • UART/クロック同期形シリアルインタフェース:3チャネル
  • 10ビットA/Dコンバータ:18チャネル
  • DMAC:2チャネル
  • CRC演算回路
  • ウォッチドッグタイマ
  • クロック発生回路:メインクロック発振回路、サブクロック発振回路
  • 入出力ポート:87本
  • 外部割り込み入力:10本
  • データフラッシュ:4KB(フラッシュメモリ版のみ)

今回搭載したM16C/30Pは
FlashROM内蔵の M30302FCPGP です。
 * 内蔵FlashROM 128KByte
 * 内蔵RAM 5Kbyte
これらのメモリはE8/E8aデバッガで使う時に内部にファームウェアやワークRAMを必要とするため、全部は使えません。

  • 私がこのマイコンに注目したのは以下のポイントです。
  • 外部バス拡張ができる
  • DMACを装備
  • 安価
  • E8/E8aが使える
  • HEW評価版が使える(64Kbyte制限あり)
  • 電源電圧 3.0V〜5.0V(10MHzのときには2.7V〜5.0V)
  • 入手が容易


外部バス拡張ができることと、DMACを装備しているので、パラレルIFのADコンバータを接続して、高速データ転送をするなどの使い道ができます。また、FPGA+マイコンの構成でマイコンの処理が比較的軽い場合にはこのマイコンを使うとシステムを安価に構築できます。

H8TINYや/R8Cシリーズなどの安価なマイコンは外部にバスが出ていないことが多いのですが、M16C/30Pは安価にもかかわらず外部バス拡張ができて、なおかつデバッガを用いた開発ができるマイコンなのです。逆に外部バスを使わない場合には R8CやM16Tinyを採用した方が良いでしょう。外部バスが出ているマイコンは H8/300Hシリーズ、H8/2000シリーズなどがメジャーですが、アドレス空間が1Mbyteに収まり、処理速度の要求を満たしていれば、安価なデバッカが使えるM16C/30Pは有力な選択肢となります。

設計上の注意点

M16C/30Pのハードウェア設計にあたり、注意事項と感じた点を挙げます。

・速度以外のバス仕様の混在ができない。
M16C/30PはCS0からCS3まで4種類のチップセレクト信号が出ていますが、ウェイトを除くすべての仕様が同じでなければならない。たとえばバス幅8BitのRAMとバス幅16bitのFlashROMの混在はできません。
実際のハードウェア設計においては ADCとかDACなどのバス仕様に合わせて、メモリ類バスを16Bitバスにするか8Bitバスにするか決めることになります。


・C言語によるソフトウェア開発においては near/farの使い分けが必要
M16Cでは 0x000000〜0x00ffffまでの64Kbyte空間をアクセスするアドレッシングモードを指定するときには nearを、それ以上の空間はfarを用います。

・CSごとのメモリマッピングが変則的
CS0,CS1,CS2,CS3のメモリ範囲がバラバラです。CS3全域とCS2の一部はnear領域なので高速アクセス可能。他はfar領域。

ハードウェアについて

今回は開発したマイコンシステムでは以下のような仕様となります。

  • クロック 14.7456MHz
  • 拡張バスは8Bit
  • 外部RAM CS1空間 32Kbyte
  • 外部FlashROM CS0空間 512Kbyte
  • SCI0とSCI2はRS232Cインターフェース
  • 外部からの電源 は6V〜12V ACアダプタ使用
  • 内部の電源電圧は+5V
  • E8/E8aデバッガ端子装備
  • 電圧低下検知(リセットICの閾値) 4.8V

M16C/30Pのクロックは最高16MHzですが、一般的なRS232Cの通信速度にぴったり合うように14.7456MHzとしました。
UARTの通信速度を115.2kbpsに設定しても通信速度に誤差が出ません。
このクロックだと外部バスのリードライトサイクルは135nSecということで、SRAM/FlashROMのウェイトは不要です。
TXD2端子はオープンドレインモードしかサポートしないので、UARTで使う場合はプルアップが必要。

部品は入手性を考慮して一般的なものを選定しました。RSコンポーネンツ、マルツ電波、秋月通商などで調達できます。


改造のポイント

・電源電圧の変更

般的なFPGAを接続する場合、電源を3.3Vにします。電源電圧が3.3VであればFPGAと直接接続できるので、部品点数が少なくて済みます。

 ・リセットICの検知電圧を変更

 ・ST232CD,SRAMは電源電圧が5Vの仕様なので3.3Vの部品を選定する。

・バス幅の変更

16Bit幅にする場合には M16C/30PのBYTE端子を GNDに接続します。

・クロックの変更

消費電力を抑えることができます。

・マイコンの変更

今回採用したM16C/30Pの型番はM30302FCPGP (FROM 128Kb/RAM 5Kb)ですが、M30302FAPGP (FROM 96Kb/RAM 5Kb)または M30302FEPGP(FROM 192Kb/RAM 6Kb)にそのまま置き換えできます。

メモリマップ

全体のメモリマップ

FlashROMのメモリマップ

M16C/30PのCS0は変則的なメモリ配置となっているためにFlashROMのセクタが0から始まっていませんが、全域アクセスできます。