マイコン・メモ
マイコンRX621/RX62Nの使い方
 ホームページ  トップページ  前ページ  次ページ
 

5.ハードウェアの設定

5-1.システムコントロールの設定

まず、システムコントロールレジスタ0および1で、内蔵ROMとRAMを使うかどうか設定します。通常は両方とも使用すると思うので、次のように記述します。

  SYSTEM.SYSCR0.WORD = 0x5A01;    /* ←外部バスを使わない場合 */
  SYSTEM.SYSCR0.WORD = 0x5A03;    /* ←外部バスを使う場合 */
  SYSTEM.SYSCR1.WORD = 0x0001;

ROMEとRAMEは初期状態で“1”なので、外部バスを使わない場合は初期状態のままで問題ありません。なお、ROMEは“0”を書き込むと、リセットする以外に“1”に戻せないので注意が必要です。

5-2.システムクロックの設定

次に、システムクロックコントロールレジスタで各部のクロックを設定します。
設定するクロックは次の3点です。
  ICK=システムクロック(CPU,DMACA,DTC,ETHERC,EDMAC,ROM,RAM の動作クロック)
  BCK=外部バスクロック(外部バスコントローラ,EXDMAC の動作クロック)
  PCK=周辺モジュールクロック

例えばEXTAL=12MHzのとき、ICK=96MHz,BCK=48MHz,PCK=48MHz、かつSDCLKとBCLK端子出力を禁止とするには、次のように設定します。

  SYSTEM.SYSCR.LONG = 0x00C10100;

このとき、システムクロック ICKは、外部バスクロックBCKおよび周辺モジュールクロックPCK以上の周波数とならなければいけません。

  備考:これらの初期設定は、新規プロジェクトを作成するとき生成されるファイルhwsetup.c内にある、関数HardwareSetupに記述します。

5-3.I/Oポートの設定

I/Oポートはマイコンのパッケージにより異なる部分があるので、使用できるポートとビット構成をマニュアルで確認しておく必要があります。
ここでは、100ピンLQFPパッケージのポート5を、下図のように設定する場合を例に説明します。

下記は、ポート5の初期化例です。

  PORT5.DR.BYTE = 0x00; /* 初期出力データをセット */
  PORT5.DDR.BYTE = 0x20; /* “0”を書き込んだビットが入力、“1”を書き込んだビットが出力になります */
  PORT5.ICR.BYTE = 0x1F; /* b4~b0の入力バッファを有効にします */
  value = PORT5.PORT.BYTE; /* 入力ポートを読み込む場合はPORTレジスタを読み込みます */

H8/3694FでPCRと呼ばれていた出力ポートを設定するレジスタは、DDR(Data Direction Register)と呼ばれています。また、同名のDDRを持つH8マイコンとも異なり、RXマイコンのDDRは読み出し可能になっています。従って、ANDやORなどの論理演算あるいはビット操作命令でも設定できます。
もう一つH8マイコンと異なる点として、ICR(Inputbuffer Control Register)というレジスタがあります。入力ポートにしたいビットは、DDRの対象ビットに“0”を書き込んだだけでは入力ポートとして使用できず、ICRで入力バッファを有効にしなければなりません。この設定は、I/Oポートに限らず周辺モジュールの入力として使う場合も必要です。


ホームページ  トップページ  前ページ  次ページ

■■■ 注 意 ■■■
1.ここに掲載された内容(写真,図,表などを含む)の、全てまたは一部を無断で使用しないでください。
2.ここで紹介した手法(構造や仕組み,回路,プログラムなどを含む)を使用したことにより、問題や不利益が発生したとしても一切関知しません。
3.ここで紹介したプログラム例は、正常なコンパイルおよび正常な動作を保証するものではありません。
Copyright © 2012-2017 S.Suzuki, All rights reserved.