18.SH2(7144F)マイコンボード


2006/05/26 【電子回路編TOPに戻る】

以前にアルファプロジェクトのSH2マイコンボードなどをご紹介したことがありますが、今回ご紹介するのは雑誌の付録に付いてきたSH2マイコンボードです。CQ出版社「インターフェイス2006年6月号」に付録のSH2−7144Fを搭載した小型マイコンボードです。ピンヘッダやコネクタなど若干の部品は個別に準備しなければいけないとは言え、ベンダーから発売されているSH2マイコンボードから比べると1、490円はタダみたいなものです。シンプルな構成で非常に小型ですし、ボードの裏には追加でRAMが実装できるようになっています。ちょうど小型のSH2マイコンボードがほしいと思っていた力弥にとっては渡りに船。本屋さんに置いてあった3冊を全部ゲットしました。(^^; 統合ソフト開発環境としてルネサスのHEW4試用版も付いています。以前ほど利用制限も厳しくなさそうなので、ホビー用途の簡単なプログラムを組む分にはとりあえず十分でしょう。

インターフェイス」では、今後このボードを使った組み込みマイコンの特集を継続していく様子です。追加リピート基板の有償による供給体制も準備するようなので、この機会に是非入手して見ては如何でしょうか。

 


18−1.SH2-7144Fワンチップマイコンの概要

以下にSH2-7144Fの機能概要をご紹介します。基本的には1世代前の7044Fの上位互換で、電源電圧が5Vから3.3Vになり、最大動作クロックが28.7MHzから50MHzになっています。細かな機能について書き出すとキリがありませんので、ハードウエアマニュアルに記載されている内容から更に要約してみます。

項 目 仕 様
CPU

内部32ビット構成

RISCタイプの命令セット(5段パイプライン)

C言語志向の命令セット

命令実行時間 基本命令は1命令/1ステート
(40M動作時 1ステートは25ns)

割り込みコントローラ

(INTC)

外部割込み端子x11(NMI,UBC,H-UDI,IRQ0〜7)
内部割込み要因x51要因

16レベルの優先順位設定が可能

クロック発信器

(CPG/PLL)

クロック発信器内蔵(最大システムクロック50MHz/周辺クロック40MHz)

内部PLLにより、外部入力クロックの逓倍(x1,x2,x4)が可能

外部入力クロックの周波数は4〜12.5MHz

データトランスファ
コントローラ
(DTC)
一つの起動要因で複数データの連続転送が可能(チェイン転送)
アドレス空間は32BIT指定。任意チャンネル数の転送可能。
転送単位をバイト/ワード/ロングワードに設定可能。

バスステート

コントローラ

(BSC)

外部のメモリアクセスをサポート SRAM/ROMをダイレクト接続可能

外部アドレス空間を4エリアに分割し、各々にバス動作を設定可能

データバスは8BIT、16BITまたは32BITから選択可能

ダイレクト

メモリアクセス

(DMAC)

外部デバイス、外部メモリ間のデータ転送をCPUを介さず高速で実現
DMACx4チャンネル

データバスは8BIT、16BITまたは32BITから選択可能

マルチファンクション

タイマーユニット

(MTU)

16ビットタイマー5チャンネルをベースに、最大16種類の波形出力またはパルスの入出力処理が可能

16本のアウトプットコンペア兼インプットキャプチャレジスタ

パルス出力モード ワンショット/トグル/PWM/相補PWM/リセット同期PWM

最大12チャンネルのPWM出力可能

コンペアマッチタイマ

x2チャンネル

(CMT)

16ビットフリーランニングカウンタ(周辺クロック/8,32,128,512)

各チャンネルごとに1個のコンペアジレスタ

コンペアマッチで割り込み要求を発生

ウォッチドックタイマ

(WDT)

WDT x1チャンネル

ウォッチドックタイマ/インターバルタイマの切り替えが可能

カウンタオーバーフロー時、内部リセット、外部信号、割り込み発生

シリアル

インターフェイス

(SCI)

SCI x4チャンネル

調歩同期/クロック同期を選択可能 全二重通信が可能

専用のボーレートジェネレータ内蔵

マルチプロセッサ間通信機能
スマートカード(ICカード)インターフェイスをサポート

Cインターフェイス
(IIC)
デバイス間シリアル通信のICを1チャンネルサポート

A/D変換器

 

A/D x8チャンネル、分解能10ビット(2個の独立したA/Dモジュール)

外部トリガによる起動も可能

同時に2チャンネルサンプリング可能

I/Oポート

入出力ポート74本 入力ポート8本 の計82本 

I/Oポートは、他の機能の端子と兼用

内蔵メモリ

フラッシュメモリ 256KB

RAM       8KB

デバッガ対応機能 UBC(ユーザーブレークコントローラ)
H-UDI(ユーザーデバッグインターフェイス)
AUD(アドバンスユーザーデバッガ)

以前ご紹介しているSH2-7045Fの後継機種としてはSH2-7145Fがあります。ピン数も7144F112本に対して、7145F144本と一回り大き目です。興味のある方は紐解いて見て下さい。

【先頭に戻る】


18−2.SH2−7144Fマイコンボードの外観

 

部品面 半田面

基板の寸法は56mm x 53mm です。

部品面の中心に搭載されている大きなLSIがSH2-7144Fです。3.3Vレギュレータ、発振用水晶、リセットIC、RS232Cドライバなどの最低限のデバイスが搭載されていますが、それ以外は上下の40pinピンヘッダから外部接続用の端子が出されているシンプルな構成です。半田面には512KバイトのRAMの追加実装用のパターンが走っていますが、まだ実装していない状態です。 動作確認用のLEDが1個だけ部品面に付いていて、PE15のPIO端子に接続されています。

部品面左側のピンヘッダはJTAGデバッグ用のコネクタで、右側の茶色のコネクタがRS232Cシリアルコネクタです。Dサブ9ピンコネクタは大きくてガサバるため、3ピンのピンヘッダ型コネクタとしています。KONDO KHR-1の純正シリアルケーブルがそのまま接続できます。

【先頭に戻る】


18−3.SH2−7144Fマイコンボードの回路図

ここをクリックすると、マイコンボードの回路図(PDFファイル)がダウンロードできます。CQ出版社さんの許可を得ていないので多分怒られますが、とりあえず載せちゃいます。CQ出版社さんすみません。

尚、本マイコンボードおよび回路図の不具合や改善内容などについては、インターフェイスのホームページに公開されています。読者からの指摘書き込みや、公式なサポートおよび正誤情報なども公開されていますので、ご確認下さい。

ここでは、KONDO KHR-1の純正シリアルケーブルを利用するための配線だけ、ご案内致します。



上図左がKONDO KHR-1純正のシリアルケーブルです。RxDDTRの間を2.2Kオームの抵抗で接続していますが、力弥自身はこのような接続は始めて見ました。上図右が今回のSH2-7144Fマイコンボード上のパターンによる等価のシリアルケーブル配線ですので、このようなシリアルケーブルを自作されても問題ありません。力弥は通常、DTRとDSR、RTSとCTSをそれぞれショートさせて擬似的なハンドシェーク接続としています。いずれにしても、3ピンのうち、マイコンボード側から見ればTxD,RxD,GNDの順番にピン配列が並べばよいことになります。

 

ところで、マイコンボードのDsubコネクタのピン配列は
 2 : TxD
 3 : RxD
 4 : DTR
 5 : GND
とならんでいるため、3ピン分を並べるには4:DTRが邪魔です。 しかし4:DTRは8:CTSと擬似ハンドシェイクのためにパターン上でショートされているだけなので、5:GNDと接続してしまって、4:DTRをGND端子にしてしまいます。これにより、3ピン分を並べることができます。その様子が上の写真の右側です。

【先頭に戻る】


18−4.SH2−7144Fマイコンボードのピンファンクション

以下のようなコネクタ用のパターンが付いており、I/O関連を外部に取り出すことができます。

ヘッダJ1 (*は負論理)

No.

ピンファンクション

No.

ピンファンクション
1 PC0/A0 2 PC1/A1
3 PC2/A2 4 PC3/A3
5 PC4/A4 6 PC5/A5
7 PC6/A6 8 PC7/A7
9 PC8/A8 10 PC9/A9
11 PC10/A10 12 PC11/A11
13 PC12/A12 14 PC13/A13
15 PC14/A14 16 PC15/A15
17 PB0/A16 18 PB1/A17
19 PB6/*IRQ4/A18/*BACK 20 PB7/*IRQ5/A19/*BREQ
21 PB8/*IRQ6/A20/*WAIT 22 PB9/*IRQ7/A21/*ADTRG
23 PD0/D0 24 PD1/D1
25 PD2/D2 26 PD3/D3
27 PD4/D4 28 PD5/D5
29 PD6/D6 30 PD7/D7
31 PD8/D8/AUDATA0 32 PD9/D9/AUDATA1
33 PD10/D10/AUDATA2 34 PD11/D11/AUDATA3
35 PD12/D12/*AUDRST 36 PD13/D13/AUDMD
37 PD14/D14/AUDCK 38 PD15/D15/*AUDSYNC
39 PA10/*CS0 40 PA11*CS1

 

ヘッダJ2 (*は負論理)

No.

ピンファンクション

No.

ピンファンクション
1 PF0/AN0 2 PF1AN1
3 PF2/AN2 4 PF3/AN3
5 PF4/AN4 6 PF5/AN5
7 PF6/AN6 8 PF7/AN7
9 PE5/TIOC1B/TXD3 10 PE6/TIOC2A/SCK3
11 PE7/TIOC2B/RXD2 12 PE8/TIOC3A/SCK2
13 PE9/TIOC3B/SCK3 14 PE10/TIOC3C/TXD2
15 PE11/TIOC3D/RXD3 16 PE12/TIOC4A/TXD3
17 PE13/TIOC4B/*MRES 18 PE14/TIOC4C/DACK0
19 PE15/TIOC4D/DACK1/*IRQOUT 20 *RES
21 PA12/*WRL 22 PA13/*WRH
23 PA14/*RD 24 PA2/SCK0/*DREQ0/*IRQ0
25 PA5/SCK1/*DREQ1/*IRQ1 26 PA8/TCLKC/*IRQ2
27 PA9/TCLKD/*IRQ3 28 PA15/CK
29 PB2/*IRQ0/*POE0/SCL0 30 PB3/IRQ1/*POE1/SDA0
31 PB4/*IRQ2/*POE2/*CS6 32 PB5/*IRQ3/*POE3/*CS7
33 PA6/TCLKA/*CS2 34 PA7/TCLKB/*CS3
35 *WDTOVF 36 PA1/TXD0
37 PA0/RXD0 38 電源入力3.6V〜6.0V
39 Vcc 3.3V出力 40 GND

 

ヘッダJ3 (*は負論理)

No.

ピンファンクション

No.

ピンファンクション
1 PE4/TCK 2 PE1/*TRST
3 PE3/TDO 4 *ASEBRKAK
5 PE0/TMS 6 PE2/TDI
7 *RES 8
9 GND 10 GND
11 Vcc 3.3V出力 12 GND
13 GND 14 GND

【先頭に戻る】


18−5.とりあえず動かすマザーボード

さて、マイコンボードの内容が大体分かってきたら、とりあえず動かしてみましょう。このマイコンボードは出荷時のチェックのために、アナログ入力のA/D変換結果をシリアル出力し続けるデータロガー機能と、PE15ポートに接続されたLEDを点滅させるプログラムが焼き込まれています。これはボード上のJP1(書き込みモード設定ピン)をオープンにした状態で電源を入れれば、勝手に動作を開始します。

先ずは電源を入れないと話にならないので、以下のようにあり合わせのユニバーサル基板で電源を供給することにします。

 

左上の写真がとりあえず電源だけ供給できるマザーボードの部品面。右上がその裏です。DC+5V電源を受けるためのコネクタを付け、赤と青の線でマイコンボードに電源を供給しているだけのものです。ユニバーサルのハンダ面が微妙に汚いのは、あり合せのジャンクから持ってきたためです。(^^;;

 

で、上の写真がマイコンボードを実装してみたところです。周囲に多少のスペースがあるので、外部とのI/Fコネクタを設けたりするのに丁度良い大きさです。今後実験の度に部品を追加していくことにしましょう。で、DC+5Vを掛けて見たところ、勝手にLEDの点滅が開始されました。ついでにPCとシリアルケーブルで接続し、ハイパーターミナルを起動したところ、8チャンネル分のA/D変換結果が順次送信されてくることも確認できました。ただし、上のマザーボードではA/D入力端子はオープンのままですので、電圧不定で変換値も不定となっています。

【先頭に戻る】


18−6.CMTを使ったテストプログラム7144test1.c

インターフェイスの記事の中にも簡単なLED点滅のためのテストプログラムが紹介されていますが、ここではCMTコンペアマッチタイマを使った指定時間ごとのLED点滅プログラムを動かしてみましょう。 ツールとしてはルネサスの統合開発ツールHEW4を利用しますが、これもインターフェイスの付録CD-ROMの中に収録されています。今回のテストプログラムは以前SH2_7045Fのプログラミング事例としてご紹介したものとほぼ同じですので、詳しくは211.CMTで時間つぶし(SH2-7045F)の記事をご参照下さい。 テストプログラムはここをクリックするとダウンロードできます。7144test1.C

/**********************************************************
7144test1.c                                      2006.05.26
                                                     RIKIYA
SH2_7144F

CMT0を使って1mS単位の時間稼ぎ関数wait()を作る。
/*********************************************************/
#include "iodefine.h"

void main(void);
void wait(unsigned short);

/* メイン関数********************************************/
void main(void){

     MST.CR2.BIT._CMT = 0;      // CMTスタンバイ解除
     PFC.PEIORL.BIT.B15 = 1;    // PE15 OUTPUT MODE

     CMT0.CMCSR.BIT.CKS = 0;    // CMT0 CLOCK 24MHz/8
     CMT0.CMCOR = 3000;         // 1mS/0.3333uS = 3000
     CMT.CMSTR.BIT.STR0 = 0;    // CMT0 COUNT STOP

     while(1){
          PE.DRL.BIT.B15 ^= 1;  // PE15 on/off
          wait(500);            // 500mS待機
     }
}

/* CMT時間稼ぎ********************************************
引数のmsecには、1/1000秒単位で待機時間を指定する。
unsigned short型、0xffff(65535)まで。
**********************************************************/
void wait(unsigned short msec){

unsigned short i;

     CMT.CMSTR.BIT.STR0 = 1;      // CMT0 COUNT START
     for(i=0;i<msec;i++){
          do{                     // CMCNT = CMCORまで待つ(1ms)
          }while(CMT0.CMCSR.BIT.CMF == 0);
          CMT0.CMCSR.BIT.CMF = 0; // コンペアフラグをリセット
     }
     CMT.CMSTR.BIT.STR0 = 0;      // CMT0 COUNT STOP
     return;
}

今回は内容のご説明は省略しますが、注意点を2点だけ。

■1.ヘッダファイル

HEW4でソフト開発する場合、I/Oのヘッダファイルは iodefine.h となりますので、インクルードの指定は #include "iodefine.h" とします。
HEW4を使うとすぐに分かりますが、上記のプログラムを動かすための関連ファイル類は全てプロジェクトという概念で束ねられ、全てが簡単に表示を切り替えられて、お互いに編集や参照がし易くなっています。なので、I/Oのヘッダファイルも参照しやすくてグッドです。

■2.スタンバイ機能の解除操作

インターフェイスの記事の中でも注意事項として明記されていますが、7044Fや7045Fの時にはなかった内蔵周辺機能のスタンバイ機能というのがあります。CPUリセット立ち上がり後には周辺機能はスタンバイ状態になっているため、プログラム上からスタンバイを解除してあげないとそれらの機能は動作しません。具体的にはモジュールスタンバイコントロールレジスタ1,2 (MSTCR1,2)というレジスタの、対応するBITをにすることでスタンバイ状態を解除します。対象となる内蔵周辺機能は以下の通りとなります。

今回はCMT0を利用しますので、CMTのスタンバイを解除しなければならず、そのために MST.CR2.BIT._CMT = 0; を記述しています。

立ち上げ時スタンバイ状態となる機能
内蔵RAM
内蔵ROM
データトランスファコントローラ DTC
ダイレクトメモリアクセスコントローラ DMAC
I2Cバスコントローラ IIC
シリアルインターフェイス3 SCI3
シリアルインターフェイス2 SCI2
シリアルインターフェイス1 SCI1
シリアルインターフェイス0 SCI0
マルチファンクションタイマ MTU
コンペアマッチタイマ CMT
A/D変換1 A/D1
A/D変換2 A/D2
アドバンストユーザーデバッガ AUD
ユーザーデバッグインターフェイス H-UDI
ユーザーブレークコントローラ UBC

というわけで、雑誌の付録とは言え単なる実地勉強の道具としてだけではなく、私たちホビーユーズでの実際の利用にも適したマイコンボードだと思います。今後しばらくは、このSH2−7144Fマイコンボードを中心にして行きたいと思います。もう一つ嬉しいのが、ルネサスのHEW4の利用制限が少なくなって、実際の開発環境として利用できるようになってきたことです。以前のHEW3の時には1ヶ月程度の試用期間が過ぎたら全て利用できなくなったり、KPIT-GNUバージョンのHEW3を使ってみても良く分からなかったりしたもので、結局HEWから遠ざかってしまっていました。今後、インターフェイスの特集の継続により、SH2マイコンの利用術について、より勉強のチャンスが増えることを期待しましょう。(^o^ 

【電子回路編TOPに戻る】


【表紙に戻る】