1: 2009-06-19 (金) 17:41:56 sho | 現: 2022-02-13 (日) 11:55:45 takaboo | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | TITLE:BTC065 H8/3687Fマイコンボードマニュアル | + | TITLE:H8/3687Fマイコンボードマニュアル |
#norelated | #norelated | ||
#contents | #contents | ||
+ | [[ショップページへ>http://www.besttechnology.co.jp/modules/onlineshop/index.php?fct=photo&p=13]] | ||
+ | |||
**概要 [#s16a7902] | **概要 [#s16a7902] | ||
- | H8/3687Fマイコンボードはルネサステクノロジ製16bit RISC CPU H8/3687Fを搭載した超小型マイコンボードです。小さいながらタイマやA/Dコンバータを内蔵しており、プログラム開発言語にC言語を使用できるマイコンです。 | + | H8/3687Fマイコンボードは、ルネサスエレクトロニクス製16bit RISC CPU H8/3687Fを搭載した超小型マイコンボードです。小さいながらタイマやA/Dコンバータを内蔵しており、プログラム開発言語にC言語を使用できるマイコンです。 |
**基本仕様 [#w30864ee] | **基本仕様 [#w30864ee] | ||
|商品番号 |BTC065 | | |商品番号 |BTC065 | | ||
- | |PCBリビジョン |E010C | | + | |PCBリビジョン |E010D (2層) | |
- | |CPU |[[Renesas HD64F3687FP:http://japan.renesas.com/fmwk.jsp?cnt=h83687_h83687n_root.jsp&fp=/products/mpumcu/h8_family/h8300h_tiny_series/h83687_h83687n_group/]] | | + | |CPU |[[Renesas HD64F3687FP:https://www.renesas.com/ja-jp/products/microcontrollers-microprocessors/h8/h8300h-tiny/h83687-h83687n/device/HD64F3687FPV.html]] | |
- | |クロック |システムクロック 20MHz サブクロック 32.768kHz | | + | |クロック |システムクロック 20MHz&br;サブクロック 32.768kHz | |
- | |通信機能 |EIA232レベル変換装備 (DBGUのみ) | | + | |
|動作温度 |0~+40℃ | | |動作温度 |0~+40℃ | | ||
|動作電圧 |DC4.5~5.5V (絶対最大定格 DC6V) 最低動作電圧 DC3.0V (動作を保証するものではない) | | |動作電圧 |DC4.5~5.5V (絶対最大定格 DC6V) 最低動作電圧 DC3.0V (動作を保証するものではない) | | ||
|消費電流 |35mA (MAX) | | |消費電流 |35mA (MAX) | | ||
|寸法 |W29×D41mm (参考) | | |寸法 |W29×D41mm (参考) | | ||
- | |コネクタ等 |モード切替スイッチ×1、30ピン端子×2、通信用3ピンヘッダ (BTC063 RS232C通信ケーブル専用)、基板裏面にSOICタイプのシリアルEEPROM(X24C256相当相当)装備(ジャンパにてIICバス切り離し可)、リセットボタン×1| | + | |コネクタ等 |モード切替スイッチ×1、30ピン端子×2、RS232C通信用ピンヘッダ×1、基板裏面にSOICタイプのシリアルEEPROM(X24C256相当)装備(ジャンパにてIICバス切り離し可)、リセットIC装備、リセットボタン×1 | |
|環境配慮 |RoHS準拠, 鉛フリー半田 | | |環境配慮 |RoHS準拠, 鉛フリー半田 | | ||
***外観 [#u4586525] | ***外観 [#u4586525] | ||
| top | bottom | | | top | bottom | | ||
- | | #ref(H8_3687F_TOP.png,50%) | #ref(H8_3687F_BOTTOM.png,50%) | | + | | #ref(H8_3687F_TOP.png,30%) | #ref(H8_3687F_BOTTOM.png,30%) | |
***回路図 [#tca9e513] | ***回路図 [#tca9e513] | ||
- | #ref(E032B.pdf) | + | #ref(E010D_SCH.pdf) |
+ | -ロットによりU2の型番が異なる | ||
+ | -U1のNMI及びP85端子はボード上でVCCへプルアップされる | ||
***端子配置・外形 [#secf52ed] | ***端子配置・外形 [#secf52ed] | ||
#ref(H8_3687F_LAYOUT.png,100%) | #ref(H8_3687F_LAYOUT.png,100%) | ||
Line 36: | Line 40: | ||
| 7 | P23 | 8 | P70/SCK3_2 | | | 7 | P23 | 8 | P70/SCK3_2 | | ||
| 9 | P71/RXD_2 | 10 | P72/TXD_2 | | | 9 | P71/RXD_2 | 10 | P72/TXD_2 | | ||
- | | 11 | P71/RXD_2 | 12 | P15/IRQ1 | | + | | 11 | P14/IRQ0 | 12 | P15/IRQ1 | |
| 13 | P16/IRQ2 | 14 | P17/IRQ3 | | | 13 | P16/IRQ2 | 14 | P17/IRQ3 | | ||
| 15 | P33 | 16 | P32 | | | 15 | P33 | 16 | P32 | | ||
Line 69: | Line 73: | ||
****CN3 [#d30bf305] | ****CN3 [#d30bf305] | ||
- | -RS232C通信ケーブル接続用 | + | -2mmピッチ 3ピン |
- | -JP1にてRS232C回路とP21/RXD端子を接続及び切断可能(デフォルトで半田ジャンパ済) | + | -マイコンのP21(RXD)とP22(TXD)端子をRS232Cレベルに変換 |
+ | -JP1にてRS232Cレベル変換ICとマイコンのP21(RXD)端子を接続及び切断可能(デフォルトで半田ジャンパ済) | ||
| No. | 端子名 | I/O | | | No. | 端子名 | I/O | | ||
- | | 1 | TX (RS232Cレベル) | O | | + | | 1 | TX (RS232C←P22) | O | |
| 2 | GND | - | | | 2 | GND | - | | ||
- | | 3 | RX RX (RS232Cレベル) | I | | + | | 3 | RX (RS232C→P21) | I | |
****JP1 [#hbf22267] | ****JP1 [#hbf22267] | ||
- | -RS232Cレベル変換のレシーバイネーブル制御(マイコンのP21端子に接続) | + | -RS232Cレベル変換ICの受信(U1のP21端子とU3のROUT端子間) |
- | -オープン:レシーバディスエーブル, ショート:レシーバイネーブルーブル | + | |
-出荷時ショート | -出荷時ショート | ||
+ | |||
****JP2, JP3 [#v4ee5e91] | ****JP2, JP3 [#v4ee5e91] | ||
- | -シリアルEEPROMのIIC接続制御(マイコンのP57,P56端子に接続) | + | -シリアルEEPROM IC(U4)とのIICバス接続(U1のP56,P57端子とU4のSDA,SCL間) |
-オープン:EEPROM使用不可, ショート:EEPROM使用可 | -オープン:EEPROM使用不可, ショート:EEPROM使用可 | ||
- | -出荷時:オープン | + | -出荷時オープン |
+ | |||
+ | ****D1(LED) [#v4e8230c] | ||
+ | -マイコンボードに電源を印加すると点灯 | ||
****SW1(スライドスイッチ) [#m72c70e1] | ****SW1(スライドスイッチ) [#m72c70e1] | ||
- | -WRITEとあるシルク側に切り替えることでマイコンのNMI端子とGNDを短絡 | + | -WRITEとあるシルク側に切り替えることでU1のNMI端子とGNDを短絡 |
+ | -RUNとあるシルク側に切り替えることでU1のNMI端子はVCCへプルアップ | ||
****PB1(プッシュボタン) [#ja8e1c84] | ****PB1(プッシュボタン) [#ja8e1c84] | ||
- | -押下でシステムリセットIC(U2)からCPUへリセット発行 | + | -システムリセットIC(U2)のM/R端子とVCC間に接続 |
+ | -押下:U2のVOUT端子からLOW出力, 解放:U2のVOUT端子はHIGH-Z | ||
**各機能の詳細 [#zca6f4af] | **各機能の詳細 [#zca6f4af] | ||
***電源 [#v90af883] | ***電源 [#v90af883] | ||
- | CN2-29にDC5Vを供給します~ | + | CN2-29(VCC),CN1-27(AVCC)とCN2-30(GND)間に安定したDC5Vを供給します。 |
- | 動作電圧がMAX3313の仕様を満足しない、20MHzという動作クロックがH8/3687Fの仕様から外れる、といった点を除けば本マイコンボードは3.3Vでも動作します。 | + | |
- | チップメーカの動作保証があるわけでも弊社の推奨でもありませんが、最近の3Vロジックへの移管傾向やバッテリ駆動システムといった環境を鑑みて、弊社にて独自に動作確認する上での最低電圧として3.3Vを考慮している事を意味します。 | + | |
***RS232C(CN3) [#yd7fd1cd] | ***RS232C(CN3) [#yd7fd1cd] | ||
#ref(E032B_RS232C.png,50%) | #ref(E032B_RS232C.png,50%) | ||
- | CN3にはマイコンのDBGU端子をRS232Cレベルに変換した信号が接続されます。主にPCのCOMポートと接続し、プログラムの転送やデバッグに使用します。~ | + | CN3にはマイコンのSCIのTXD,RXD端子をRS232Cレベルに変換した信号が接続されます。主にPCのCOMポートと接続し、プログラムの転送やデバッグに使用します。~ |
接続するホストに応じて以下の通信ケーブルないしI/Fがオプションで使用できます。 | 接続するホストに応じて以下の通信ケーブルないしI/Fがオプションで使用できます。 | ||
-PCにCOMポートがある場合 | -PCにCOMポートがある場合 | ||
Line 106: | Line 116: | ||
***スライドスイッチ(SW1) [#xabf7ab8] | ***スライドスイッチ(SW1) [#xabf7ab8] | ||
- | ****ブートモード(WRITE) [#t924542b] | + | ****ブートモード(WRITE) [#BOOTMODE] |
- | 電源供給前もしくはリセット中にマイコンボードの「モード切替スイッチ」がWRITE側になっている状態で、電源供給もしくはリセットリリース後ではH8/3687Fマイコンはブートモードになります。 | + | 電源供給前もしくはリセット中にSW1がWRITE側(マイコンのNMI端子がLOW)かつマイコンのP85端子がHIGHの状態で、電源供給もしくはリセット解除されると、マイコンはブートモードになります。このモードはマイコンの内蔵フラッシュROMへプログラムを書き込む際に選択します。書込みにはFLASH WRITERを使用します。 |
- | この状態はマイコンの内蔵フラッシュROMへプログラムを書き込む際に設定します。書込みにはPC用の専用プログラムであるフラッシュライタ(FW.EXE)を使用して下さい。 | + | |
- | ****ユーザモード(RUN) [#oec65a25] | + | ****ユーザモード(RUN) [#USERMODE] |
- | 電源供給前もしくはリセット中にマイコンボードの「モード切替スイッチ」がRUN側になっている状態で、電源供給もしくはリセットリリース後ではH8/3687Fマイコンはユーザモードになります。 | + | 電源供給前もしくはリセット中にSW1がRUN側(マイコンのNMI端子がHIGH)で、電源供給もしくはリセット解除されるとマイコンはユーザモードになります。このモードはマイコンの内蔵フラッシュROMへ書き込まれたプログラムを実行する際に選択します。 |
- | この状態はブートモードで内蔵フラッシュROMへ書き込まれたプログラムが動作し、モード切替スイッチはNMIの入力信号として機能します。 | + | |
+ | なお、プログラムが実行されている際にSW1をWRITE側にすると、マイコンにNMIが発行されます。 | ||
+ | |||
+ | |CENTER:BGCOLOR(red):||c | ||
+ | | :idea:|マイコンのP85端子及びNMI端子がマイコンボードの外部に設けられた回路によって端子の信号レベルが想定した論理以外に設定されていると、マイコンは意図したモードに遷移しません。| | ||
- | ***プッシュスイッチ(PB1) [#kb7c13c9] | + | ***プッシュスイッチ(PB1) [#o4de8c5b] |
- | PB1にはマイコンのNRST端子が接続されています。押下されるとNRST端子がGNDに接続されマイコンがリセットされます。~ | + | PB1はリセットIC(U2)のマニュアルリセット端子に接続されています。押下されるとリセットICはマイコンのRES端子をLOWにし、放すと規定時間経過後HIGH-Z状態になり装備されたプルアップ抵抗でマイコンのRES端子はHIGHになります。 |
**開発環境 [#l1a0e3ca] | **開発環境 [#l1a0e3ca] | ||
***GCC Developer Lite [#re5b9ac2] | ***GCC Developer Lite [#re5b9ac2] | ||
GCC Developer Liteの詳細については[[こちら>GCC Developer Lite]]。~ | GCC Developer Liteの詳細については[[こちら>GCC Developer Lite]]。~ | ||
- | フルインストールないしH8/3687Fで使用を選択する事で必要なコンポーネントが自動的にインストールされます。~ | + | 「基本パック」と「H8パック」をダウンロードしてインストールしてください。なおH8パックインストールの際に表示されるコンポーネントの選択画面では「H8/3687Fでのみ使用」を選択してください。 |
+ | #ref(H8Pac3687F.png) | ||
H8/3687Fで使用される主要なコンポーネントを簡単に示します。 | H8/3687Fで使用される主要なコンポーネントを簡単に示します。 | ||
-''[[GCC Developer Lite>GCC Developer Lite#GCCDevL]]'' | -''[[GCC Developer Lite>GCC Developer Lite#GCCDevL]]'' | ||
~ソースプログラムを編集するためのテキストエディタとその他のツールを起動するためのランチャ機能を有する。 | ~ソースプログラムを編集するためのテキストエディタとその他のツールを起動するためのランチャ機能を有する。 | ||
-''[[FLASH WRITER>GCC Developer Lite#FW]]'' | -''[[FLASH WRITER>GCC Developer Lite#FW]]'' | ||
- | ~ターゲットのフラッシュROM等へコンパイルされたプログラムをSAM-BAないしCOMポート経由で書き込む。~ | + | ~ターゲットのフラッシュROM等へコンパイルされたプログラムをCOMポート経由で書き込む。~ |
USB等で提供されるCOMポートの動的な検出と、COMポートを使用する弊社ツールとの排他制御機能を持つ。 | USB等で提供されるCOMポートの動的な検出と、COMポートを使用する弊社ツールとの排他制御機能を持つ。 | ||
+ | -''[[FLASHSimple>GCC Developer Lite#FLASHSimple]]'' | ||
+ | ~ターゲットのフラッシュROM等へコンパイルされたプログラムをCOMポート経由で書き込む。~ | ||
+ | ここでは詳説しない。 | ||
-''[[SIMPLE TERM>GCC Developer Lite#STERM]]'' | -''[[SIMPLE TERM>GCC Developer Lite#STERM]]'' | ||
- | ~汎用シリアルターミナル。簡易的なTLENETクライアントとしても機能する。~ | + | ~汎用シリアルターミナル。簡易的なTELNETクライアントとしても機能する。~ |
USB等で提供されるCOMポートの動的な検出と、COMポートを使用する弊社ツールとの排他制御機能を持つ。 | USB等で提供されるCOMポートの動的な検出と、COMポートを使用する弊社ツールとの排他制御機能を持つ。 | ||
-''ターゲットファイル'' | -''ターゲットファイル'' | ||
- | ~マイコンの内蔵ペリフェラルを定義したヘッダファイルやUARTを簡便に使うためのAPI、GDBにてデバッグする際に使用する初期化ファイル、シリーズ毎に異なるメモリマップを定義したリンカスクリプトファイル、スタートアップルーチンを含む。基本的にコンパイル済みライブラリとしてソースとリンクして使用する。 | + | ~マイコンの内蔵ペリフェラルを定義したヘッダファイルやSCIを簡便に使うためのAPI、シリーズ毎に異なるメモリマップを定義したリンカスクリプトファイル、スタートアップルーチンを含む。基本的にコンパイル済みライブラリとしてソースとリンクして使用する。 |
****ターゲットファイル [#s8f6e2c8] | ****ターゲットファイル [#s8f6e2c8] | ||
- | [[GCC Developer Lite>GCC Developer Lite]]では本マイコン用の設定を複数備えています。~ | + | [[GCC Developer Lite>GCC Developer Lite]]では複数のターゲット向けの設定を備えています。 |
- | 例えば、H8コアの学習・組み込み向けCコンパイラの習熟・マイコン内蔵ペリフェラルの機能を熟知するといった段階ではJTAGを使ってSRAM上でデバッグし、printfデバッグ、最終的に製品等としてリリースして完成させる時はフラッシュROMに、といった段階を踏む場合でも[[GCC Developer Lite>GCC Developer Lite]]のコンパイルオプションの設定リストから選択し直すだけで設定が完了します。~ | + | |
#ref(GDL_CompileOption_TargetList.png) | #ref(GDL_CompileOption_TargetList.png) | ||
- | 以下本マイコンボードに対応した設定リストの一覧です。 | + | 以下は本マイコンボードに対応した設定リストです。 |
-''H8/3687 (Flash)'' | -''H8/3687 (Flash)'' | ||
+ | ~ビルドするとマイコンのフラッシュROMで動作させるための.motファイルが作られる。~ | ||
+ | ビルドが成功すると、ブートモードでフラッシュROMに書き込むためにFW.exe(FLASH WRITER)の起動を促される。 | ||
+ | ****FLASH WRITER [#nd734a83] | ||
+ | 様々なマイコンに対応した転送ツールです。 | ||
+ | #ref(fw_3664.png,100%) | ||
+ | 以下の設定を行い、[[ブートモード>#BOOTMODE]]のマイコンボードとPCをRS232Cケーブルで接続してExecuteボタンを押すと書き込み処理を開始します。 | ||
+ | -CPU TYPE:''3664'' | ||
+ | -PORT:使用するPCのCOMポート | ||
+ | -BaudRate[bps]:19200bps以下 | ||
+ | -TimeOut[ms]:1000ms以上 | ||
- | ****FLASH WRITER [#sb54d892] | + | 書き込みを開始すると、自動的に以下の順に処理が行われます。いずれのタイミングにおいてもプログレスバーによる進捗状況が表示されます。 |
- | 様々なマイコンに対応した転送ツールです。~ | + | +マイコンボードとPCのボーレートを合わせる (TimeOutで指定した時間で時間切れ) |
- | Windowsの[スタート]ボタン→「プログラム(P)」→「GCC Developer Lite」→「フラッシュライタ」をクリックし、フラッシュライタを起動します。~ | + | +ブートプログラムの転送 |
- | 起動したら、左上のICの形をしたアイコンをクリックします。ドロップダウンメニューが開きますので、「FW環境設定(O)」をクリックします。ウィンドウサイズが大きくなり、諸々の設定が行う部分が現れますので、「CPU TYPE」とある部分を「3664」に変更します。また、もしライタボードが接続されているPCのポートが「COM1」でなければ、「PORT」を実際に使用するポートに変更します。その他の部分はデフォルトのままで構いません。なお、次回フラッシュライタを起動したときでも、前回設定された内容が残りますので、一度設定しておけば再度設定する必要はありません。~ | + | +ユーザプログラムの転送 |
- | ボタンを押すと、転送するファイルを選択するダイアログボックスが現れるので、任意のコンパイル済みファイル(拡張子が.binのファイル)を選択し、「開く(O)」ボタンを押します。~ | + | |
- | モード切り替えスイッチをWRITE側にしてブートモードに設定し、RS232CケーブルでマイコンボードとPCを接続します。準備ができたらマイコンボードに電源を供給し、フラッシュライタの「かきこみ」ボタンを押します。正しく準備ができていれば、マイコンボードへプログラムの転送が開始されます。進捗はプログレスバーにて表示されます。~ | + | |
- | 正常に終了した旨のダイアログが表示されたら書込みは成功しています。マイコンボードに供給している電源を切ります。電源を切ったらライタボードの「モード切替スイッチ」を「RUN」側にし再び電源を入れるとプログラムが実行されます。~ | + | |
- | FLASH WRITERを使用して動作するプログラムが構成できる設定リストは以下の通りで、これ以外の設定リストで構成さAれたプログラムをFLASH WRITERで転送しても動作しません。 | + | |
- | -''H8/3687 (Flash)''~ | + | |
**H8/3687F用ライブラリ [#lb227da1] | **H8/3687F用ライブラリ [#lb227da1] | ||
Line 154: | Line 176: | ||
そこで、複数のソースに分割する事無くある程度のソースプログラムサイズでコーディングするために、頻繁に使用されるであろう一部の機能が専用のライブラリとして提供されます。~ | そこで、複数のソースに分割する事無くある程度のソースプログラムサイズでコーディングするために、頻繁に使用されるであろう一部の機能が専用のライブラリとして提供されます。~ | ||
GCC Developer Liteを標準的な環境のPCへインストールすると、「C:\Program Files\BestTech\GCC Developer Lite\TARGET\3687F」フォルダに必要なファイルがコピーされます。必要に応じて本フォルダを参照できますし、ユーザがソースを修正しライブラリを再構築する事も可能です。 | GCC Developer Liteを標準的な環境のPCへインストールすると、「C:\Program Files\BestTech\GCC Developer Lite\TARGET\3687F」フォルダに必要なファイルがコピーされます。必要に応じて本フォルダを参照できますし、ユーザがソースを修正しライブラリを再構築する事も可能です。 | ||
+ | -''スタートアップルーチン'' | ||
+ | ~C言語で作成したプログラムを実行させるために、アセンブラないしC言語で記述された必要最低限の初期化処理プログラムです。~ | ||
+ | '''h8crt0.s''' (スタートアップルーチン本体のソースファイル)~ | ||
-''リンカスクリプトファイル'' | -''リンカスクリプトファイル'' | ||
~実行条件に応じたメモリの割り当てを記述したファイルです。コンパイル時にリンカが参照し、コードの最終的な配置が決定されます。~ | ~実行条件に応じたメモリの割り当てを記述したファイルです。コンパイル時にリンカが参照し、コードの最終的な配置が決定されます。~ | ||
'''h8rom.x'''~ | '''h8rom.x'''~ | ||
- | '''h8rom_.x'''~ | ||
-''内蔵ペリフェラルのレジスタ名定義ヘッダファイル'' | -''内蔵ペリフェラルのレジスタ名定義ヘッダファイル'' | ||
~マイコンに内蔵された各種ペリフェラルが持つレジスタは、決められたメモリ上のアドレスに配置されています。それらレジスタをアドレスではなくレジスタ毎に決められた名称を使い、変数のようにアクセスするためのマクロ定義が記述されています。~ | ~マイコンに内蔵された各種ペリフェラルが持つレジスタは、決められたメモリ上のアドレスに配置されています。それらレジスタをアドレスではなくレジスタ毎に決められた名称を使い、変数のようにアクセスするためのマクロ定義が記述されています。~ | ||
'''3687.h''' (レジスタのマクロ定義)~ | '''3687.h''' (レジスタのマクロ定義)~ | ||
+ | -''SCI API'' | ||
+ | ~作成したプログラムの動作を確認を行う際に、マイコンのシリアルポートを使用する事を推奨しています。マイコンと文字によるコミュニケーション機能を用意する事で、レジスタの値やプログラムの進捗の把握、さらにはマイコンに対してPCから指令を与えるといった使い方が出来ます。~ | ||
+ | 本マイコンには複数のシリアルポートが備わっており、制御方法も多種多様なため、それに応じてライブラリとして提供する通信用APIも多くなっています。~ | ||
+ | '''sci~.c''' (SCIを割り込みで使用するAPIのソース群)~ | ||
+ | -''EEPROM API'' | ||
+ | ~IICバスに接続されたEEPROMへアクセスするAPIです。~ | ||
+ | '''eeprom.c''' (APIのソースファイル) | ||
-''ライブラリファイル'' | -''ライブラリファイル'' | ||
- | ~各APIとremap.cをコンパイルし、一つのライブラリファイルにアーカイブして提供します。~ | + | ~各APIをコンパイルし、一つのライブラリファイルにアーカイブして提供します。~ |
- | '''makelib.bat''' (APIをH8モードでコンパイルし、アーカイブするバッチ)~ | + | '''makelib.bat''' (APIをコンパイルし、アーカイブするバッチ)~ |
- | '''makelib_thumb.bat''' (APIをTHUMBモードでコンパイルし、アーカイブするバッチ)~ | + | |
'''libadd3687.a''' (makelib.batで作成されるライブラリファイル)~ | '''libadd3687.a''' (makelib.batで作成されるライブラリファイル)~ | ||
- | '''libadd3687_thumb.a''' (makelib_thumb.batで作成されるライブラリファイル) | ||
**サンプルプログラム [#q33f8fda] | **サンプルプログラム [#q33f8fda] | ||
+ | [[こちら>http://www.besttechnology.co.jp/download/3687FSMPL.ZIP]]からダウンロード出来ます。 |