1: 2009-06-19 (金) 16:18:24 sho | 現: 2015-11-18 (水) 16:27:56 takaboo | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | TITLE:BTC068 ATmega128マイコンボードマニュアル | + | TITLE:ATmega128マイコンボードマニュアル |
+ | #norelated | ||
+ | #contents | ||
+ | [[ショップページへ>http://www.besttechnology.co.jp/modules/onlineshop/index.php?fct=photo&p=15]] | ||
**概要 [#s1de0442] | **概要 [#s1de0442] | ||
- | ATmega128マイコンボードはAtmel ATmega128マイコンを搭載したマイコンボードです。 | + | Atmel社製ATmega128を搭載したマイコンボードです。 |
- | **基本仕様 [#v60e7a86] | + | |
+ | **基本仕様 [#SPEC] | ||
|商品番号 |BTC068 | | |商品番号 |BTC068 | | ||
- | |リビジョン |E019C | | + | |PCBリビジョン |E019B2 (2層) | |
- | |CPU |[[Atmel ATmega128:http://www.atmel.com/dyn/products/product_card.asp?part_id=2018]] | | + | |CPU |[[Atmel ATmega128:http://www.atmel.com/ja/jp/devices/ATMEGA128.aspx]] | |
|クロック |システムクロック 16MHz | | |クロック |システムクロック 16MHz | | ||
|動作温度 |0~+70℃ | | |動作温度 |0~+70℃ | | ||
Line 11: | Line 16: | ||
|消費電流 |最大45mA | | |消費電流 |最大45mA | | ||
|寸法 |W30×D39mm (±0.5mm) | | |寸法 |W30×D39mm (±0.5mm) | | ||
- | |コネクタ等 |30ピン外部端子×2, 通信用3ピンヘッダ (BTE063 RS232C通信ケーブル専用), リセットボタン×1, モード切替スイッチ×1 | | + | |コネクタ等 |30ピン外部端子×2, RS232C通信用3ピンヘッダ×1, リセットボタン×1, モード切替スイッチ×1 | |
- | |付属品 |2列ピンヘッダ (CN1,CN2にはコネクタが半田付けされていません。お使いの環境に合わせて適宜装備してください) | | + | |付属品 |2列ピンヘッダ | |
|環境配慮 |RoHS準拠,鉛フリー半田 | | |環境配慮 |RoHS準拠,鉛フリー半田 | | ||
- | **外観 [#mf44ecda] | + | |
+ | ***外観 [#mf44ecda] | ||
| top | bottom | | | top | bottom | | ||
- | | #ref(ATmega128_TOP.png,50%) | #ref(ATmega128_BOTTOM.png,50%) | | + | | #ref(ATmega128_TOP.png,30%) | #ref(ATmega128_BOTTOM.png,30%) | |
- | **回路図 [#o297fb19] | + | |
- | #ref(E019C.pdf) | + | ***回路図 [#o297fb19] |
- | CN1-3,4(VCC)端子からDC5Vを供給します。 | + | #ref(E019B2.pdf) |
- | **端子配置・外形 [#a032b6a2] | + | -ロットによりSW1は未実装(今後は未実装を標準とする) |
+ | |||
+ | ***端子配置・外形 [#a032b6a2] | ||
#ref(ATmega128_LAYOUT.png,100%) | #ref(ATmega128_LAYOUT.png,100%) | ||
- | ***CN1 [#i4b2cb33] | + | |
+ | ***コネクタ・端子・スイッチ等 [#o9d64ab4] | ||
+ | ****CN1 [#i4b2cb33] | ||
-2.54mmピッチ2列 15ピン | -2.54mmピッチ2列 15ピン | ||
-推奨ピンヘッダ:ヒロセ電機 HIF3H-30PB-2.54DSA | -推奨ピンヘッダ:ヒロセ電機 HIF3H-30PB-2.54DSA | ||
Line 42: | Line 52: | ||
| 27 | PD2/RXD1/INT2 | 28 | PD1/SDA/INT1 | | | 27 | PD2/RXD1/INT2 | 28 | PD1/SDA/INT1 | | ||
| 29 | PD0/SCL/INT0 | 30 | GND | | | 29 | PD0/SCL/INT0 | 30 | GND | | ||
- | ***CN2 [#n1e87094] | + | |
+ | ****CN2 [#n1e87094] | ||
-2.54mmピッチ2列 15ピン | -2.54mmピッチ2列 15ピン | ||
-推奨ピンヘッダ:ヒロセ電機 HIF3H-30PB-2.54DSA | -推奨ピンヘッダ:ヒロセ電機 HIF3H-30PB-2.54DSA | ||
Line 66: | Line 77: | ||
| 29 | PG4/TOSC1 | 30 | RESET | | | 29 | PG4/TOSC1 | 30 | RESET | | ||
- | ***CN3 [#n5d68cfb] | + | ****CN3 [#n5d68cfb] |
- | -RS232C通信ケーブル接続用 | + | -2mmピッチ 3ピン ヒロセ電機 A4B-03PA-2DSA(71) |
+ | -推奨圧着ソケット:ヒロセ電機 A4B-03S-2C | ||
+ | -PE0(RXD0)とPE1(TXD0)端子をRS232Cレベルに変換 | ||
-JP1にてRS232C回路とATmega128のPD0/RXD端子を接続及び切断可能(デフォルトで半田ジャンパ済) | -JP1にてRS232C回路とATmega128のPD0/RXD端子を接続及び切断可能(デフォルトで半田ジャンパ済) | ||
| No. | 端子名 | I/O | | | No. | 端子名 | I/O | | ||
- | | 1 | TX (EIA232←PA10) | O | | + | | 1 | TX (RS232C←PA10) | O | |
| 2 | GND | - | | | 2 | GND | - | | ||
- | | 3 | RX (EIA232→PA9) | I | | + | | 3 | RX (RS232C→PA9) | I | |
- | ***JP1 [#s6aca6fa] | + | |
+ | ****JP1 [#s6aca6fa] | ||
-RS232Cレベル変換のレシーバイネーブル制御(マイコンのPE0端子に接続) | -RS232Cレベル変換のレシーバイネーブル制御(マイコンのPE0端子に接続) | ||
-オープン:レシーバディスエーブル, ショート:レシーバイネーブル | -オープン:レシーバディスエーブル, ショート:レシーバイネーブル | ||
-出荷時ショート | -出荷時ショート | ||
- | ***JP2 [#z98ae993] | + | |
- | -外部SRAM機能のイネーブル制御(マイコンのPG1端子に接続) | + | ※ジャンパのランド間にある配線パターンにて接続されているため、オープン状態にするにはパターンをカッター等をカットして使用の事 |
+ | |||
+ | ****JP2 [#z98ae993] | ||
+ | -外部SRAM機能のイネーブル制御(マイコンのPC7端子に接続) | ||
-オープン:外部SRAMディスエーブル, ショート:外部SRAMイネーブル | -オープン:外部SRAMディスエーブル, ショート:外部SRAMイネーブル | ||
- | -出荷時:オープン | + | -出荷時ショート |
- | ***JP3 [#gb1f3458] | + | |
+ | ※ジャンパのランド間にある配線パターンにて接続されているため、オープン状態にするにはパターンをカッター等をカットして使用の事 | ||
+ | |||
+ | ****JP3 [#gb1f3458] | ||
-モニタLED機能のイネーブル制御(マイコンのPB7端子に接続) | -モニタLED機能のイネーブル制御(マイコンのPB7端子に接続) | ||
-オープン:モニタLEDディスエーブル, ショート:モニタLEDイネーブル | -オープン:モニタLEDディスエーブル, ショート:モニタLEDイネーブル | ||
- | -出荷時:ショート | + | -出荷時ショート |
- | ***D1(LED) [#nabe0994] | + | |
- | -マイコンボードに電源を印可すると点灯 | + | ※ジャンパのランド間にある配線パターンにて接続されているため、オープン状態にするにはパターンをカッター等をカットして使用の事 |
- | ***D2(LED) [#o92e9aef] | + | |
- | -モニタLEDとして利用可 | + | ****D1(LED) [#nabe0994] |
- | ***SW1(スライドスイッチ) [#k21a67a8] | + | -マイコンボードに電源を印加すると点灯 |
+ | |||
+ | ****D2(LED) [#o92e9aef] | ||
+ | -PB7端子にシンク接続 | ||
+ | -ブートローダの状態モニタ用 | ||
+ | |||
+ | ****SW1(スライドスイッチ) [#k21a67a8] | ||
-WRITEとあるシルク側に切り替えることでマイコンのPG4(TOSC1)端子とGNDを短絡 | -WRITEとあるシルク側に切り替えることでマイコンのPG4(TOSC1)端子とGNDを短絡 | ||
- | ***PB1(プッシュボタン) [#bf3cf117] | + | -[[ブートローダV1.2>AVR Bootloader]]以降から本スイッチによるモード切り替えを取り止め |
+ | -以後未実装に移行 | ||
+ | |||
+ | ****PB1(プッシュボタン) [#bf3cf117] | ||
-押下でマイコンのリセット端子をGNDへ短絡 | -押下でマイコンのリセット端子をGNDへ短絡 | ||
Line 97: | Line 126: | ||
**各機能の詳細 [#be3482a1] | **各機能の詳細 [#be3482a1] | ||
***電源 [#n838854c] | ***電源 [#n838854c] | ||
- | CN1-1(VCC)端子からDC5Vを供給します。 | + | CN1-1(VCC)端子とCN1-2(GND)間に安定したDC5Vを供給します。 |
***RS232C(CN3) [#wf24ffca] | ***RS232C(CN3) [#wf24ffca] | ||
#ref(E032B_RS232C.png) | #ref(E032B_RS232C.png) | ||
Line 107: | Line 137: | ||
[[BTE075 USB-RS232Cケーブル]]~ | [[BTE075 USB-RS232Cケーブル]]~ | ||
[[BTE060 RS232C通信ケーブル]] + [[BTE061D USBシリアル変換ケーブル]] | [[BTE060 RS232C通信ケーブル]] + [[BTE061D USBシリアル変換ケーブル]] | ||
- | ***スライドスイッチ(SW1) [#e1a54974] | + | ***スライドスイッチ(SW1) [#DETAILS_SW1] |
- | Write側で起動するとブートローダモードに入り、反対側で起動するとプログラムが実行されます。 | + | ****ブートローダV1.2以降(V1.2ラベル添付版) [#hf6929e7] |
+ | 数少ないリソースをブートローダのためにリザーブされる事を嫌い、本スイッチによるブートローダのモード切り替えを廃止しています。動作モードの切り替えは[[最新版ブートローダの解説>AVR Bootloader]]に従います。~ | ||
+ | プログラムの転送にはSIMPLE TERMを使用します。 | ||
+ | ****ブートローダV1.0~V1.1(黄色シール添付版はV1.0) [#m77f7c54] | ||
+ | Write側にしてリセットスタートするとブートローダモードに入り、その反対側ではユーザプログラムが実行されます。~ | ||
+ | プログラムの転送にはSIMPLE TERMを使用します。 | ||
+ | ****stk500ブートローダ(無印) [#v29c010e] | ||
+ | Write側にしてリセットスタートするとブートローダモードに入り、その反対側ではユーザプログラムが実行されます。~ | ||
+ | プログラムの転送にはFLASH WRITERを使用します。 | ||
+ | |||
+ | |CENTER:BGCOLOR(red):||c | ||
+ | | :idea:|本ドキュメントではV1.2を前提として記述します。マイコンボードが旧バージョンのブートローダを搭載している場合はISPライタを使って最新版に書き換えるか、製品に添付されていたドキュメントを参照します。| | ||
***プッシュスイッチ(PB1) [#x2f71047] | ***プッシュスイッチ(PB1) [#x2f71047] | ||
PB1にはマイコンのNRST端子が接続されています。押下されるとNRST端子がGNDに接続されマイコンがリセットされます。~ | PB1にはマイコンのNRST端子が接続されています。押下されるとNRST端子がGNDに接続されマイコンがリセットされます。~ | ||
**開発環境 [#m5b2998e] | **開発環境 [#m5b2998e] | ||
***GCC Developer Lite [#v3a411be] | ***GCC Developer Lite [#v3a411be] | ||
- | GCC Developer Liteの詳細については[[こちら:http://besttechnology.co.jp/xoops/html/modules/knowledge/?GCC%20Developer%20Lite]]。~ | + | GCC Developer Liteの詳細については[[こちら>GCC Developer Lite]]。~ |
- | フルインストールないしATmegaで使用を選択する事で必要なコンポーネントが自動的にインストールされます。~ | + | フルインストールないしATmega128で使用を選択する事で必要なコンポーネントが自動的にインストールされます。~ |
+ | 使用されるコンポーネントを簡単に示します。 | ||
+ | -''[[GCC Developer Lite>GCC Developer Lite#GCCDevL]]'' | ||
+ | ~ソースプログラムを編集するためのテキストエディタとその他のツールを起動するためのランチャ機能を有する。 | ||
+ | -''[[SIMPLE TERM>GCC Developer Lite#STERM]]'' | ||
+ | ~汎用シリアルターミナル。簡易的なTELNETクライアントとしても機能する。~ | ||
+ | USB等で提供されるCOMポートの動的な検出と、COMポートを使用する弊社ツールとの排他制御機能を持つ。 | ||
+ | -''AVRGCC'' | ||
+ | ~AVRシリーズ向けC/C++言語向けのコンパイラ。出来る限り最新のパッチを適用しているため、時に互換性を失う。 | ||
+ | |||
+ | -''ターゲットファイル'' | ||
+ | ~マイコンの内蔵ペリフェラルを定義したヘッダファイルやUARTを簡便に使うためのAPI、シリーズ毎に異なるメモリマップを定義したリンカスクリプトファイル、スタートアップルーチンを含む。基本的にコンパイル済みライブラリとしてソースとリンクして使用する。 | ||
****ターゲットファイル [#ra426846] | ****ターゲットファイル [#ra426846] | ||
GCC Developer Liteでは本マイコン用の設定を複数備えています。~ | GCC Developer Liteでは本マイコン用の設定を複数備えています。~ | ||
#ref(GDL_CompileOption_TargetList.png) | #ref(GDL_CompileOption_TargetList.png) | ||
以下に本マイコンボードに対応した設定リストの一覧とその設定における機能の違いを紹介します。 | 以下に本マイコンボードに対応した設定リストの一覧とその設定における機能の違いを紹介します。 | ||
- | -ATmega128~ | + | -''ATmega128''~ |
- | -ATmega128(need ExtRAM)~ | + | ~ビルドすると[[ブートローダ>AVR_BL]]にてマイコンのフラッシュROMへ転送するための.bin(バイナリ)ファイルが作られる。~ |
- | ****[[ブートローダ>AVR Bootloader]] [#e05be651] | + | 外部SRAMは使用しない。~ |
+ | ビルドが成功すると、STERM.exe(SIMPLE TERM)の起動を促される。 | ||
+ | -''ATmega128(need ExtRAM)''~ | ||
+ | ~ビルドすると[[ブートローダ>AVR_BL]]にてマイコンのフラッシュROMへ転送するための.bin(バイナリ)ファイルが作られる。~ | ||
+ | 外部SRAMを使用する。~ | ||
+ | ビルドが成功すると、STERM.exe(SIMPLE TERM)の起動を促される。 | ||
+ | |||
+ | ****SIMPLE TERMとブートローダ [#e05be651] | ||
マイコンのフラッシュROMには出荷時に弊社オリジナルの[[ブートローダ>AVR Bootloader]]が書き込まれています。~ | マイコンのフラッシュROMには出荷時に弊社オリジナルの[[ブートローダ>AVR Bootloader]]が書き込まれています。~ | ||
- | 本[[ブートローダ>AVR Bootloader]]はJTAGやその他の特殊なI/Fを使用せずとも、COMポートを使用してマイコンのプログラム書き換えや操作を行う事が出来ます。 | + | 本ブートローダはISPやJTAGといったI/Fを使用せずとも、COMポートを使用してマイコンのプログラム書き換えや操作を行う事が出来ます。転送方法などの詳細は[[こちら>AVR Bootloader]]。~ |
- | 転送方法など詳細は[[こちら:http://besttechnology.co.jp/xoops/html/modules/knowledge/?AT91SAM7S%2FX%20Bootloader]]。~ | + | ブートローダを使用して動作するプログラムが構成できる設定リストは以下の通りで、これ以外の設定リストで構成されたプログラムをブートローダで転送しても正常動作しません。~ |
- | [[ブートローダ>AVR Bootloader]]を使用して動作するプログラムが構成できる設定リストは以下の通りです。 | + | -ATmega128 |
- | -ATmega128~ | + | -ATmega128(need ExtRAM) |
- | -ATmega128(need ExtRAM)~ | + | |
+ | マイコンボードは出荷時にUART0をコンソールとして構成されたブートローダが書き込まれており、PCとマイコンボードをRS232Cケーブルで接続する必要があります。 SIMPLE TERMから該当するCOMポートを選択(COMポート番号はPCの環境によって適宜選択)しオープンするとブートローダの各種コマンドが使用可能となります。その他の設定は以下の通りです。 | ||
+ | |||
+ | Baudrate:115200 | ||
+ | Databits:8 | ||
+ | Stopbits:1 | ||
+ | Parity:Non | ||
+ | Flow Control:Non | ||
+ | Protocol:Xmodem | ||
+ | |||
+ | #ref(AVR_BL_COM.png,100%) | ||
+ | 既にユーザプログラムが書き込まれているマイコンボードは、電源を投入するとユーザプログラムが即時実行されます。ユーザプログラムが書き込まれたマイコンでブートローダのコマンドモードを使用するには以下の手順を踏みます。 | ||
+ | |||
+ | +SIMPLE TERMのターミナルウィンドウ上で'!'(「SHIFT」+「1」)キーを押しっぱなしにする。 | ||
+ | +マイコンボードをリセットする。 | ||
+ | +ブートローダのメッセージが表示された後、'!'キーを離すとコマンドモードに遷移する。 | ||
+ | ---- | ||
+ | 先の[[設定リスト>#ra426846]]でソースプログラムをコンパイルし成功するとSTERM.exe(SIMPLE TERM)の起動を促されます。「OK」を押してSIMPLE TERMを起動すると、特殊な設定が追加されてSIMPLE TERMが起動します。 | ||
+ | |||
+ | -既にSIMPLE TERMが実行中であれば2重に起動しない。 | ||
+ | -コンパイル済み.binファイルの情報が渡る(ステータスバーにて確認可)。 | ||
+ | -ユーザプログラムを転送する際の手順を記述したスクリプトファイルが使用できる様になる。 | ||
+ | |||
+ | #ref(sterm_script.png,100%) | ||
+ | |||
+ | 「スクリプト実行[STERM ATMEGA]」をクリックした後10秒以内にマイコンボードをリーブートすると、コマンドモードへの遷移や転送するファイルの選択を手動で行う事無く転送にかかる処理が全て自動的に行われます。 | ||
+ | |||
+ | #ref(sterm_script2.png,100%) | ||
+ | |||
+ | 本機能により、手動で間違ったファイルを選択して転送してしまったり、ブートローダがコマンドモードでない状態で転送をしてしまうといったミスを軽減する事ができます。 | ||
- | これ以外の設定リストで構成されたプログラムを[[ブートローダ>AVR Bootloader]]で転送しても正常動作しません。~ | ||
- | 転送に使用できるPCのソフトウェアはSTERM.exe(SIMPLE TERM)のみとなります。 | ||
***ATmega128用ライブラリ [#h96777bd] | ***ATmega128用ライブラリ [#h96777bd] | ||
[[GCC Developer Lite>GCC Developer Lite]]では1つのソースプログラムのみを対象とするため、機能別にソースを分割して編集やコンパイルするといった使い方は出来ません(完全にできないという訳でもありません)。だからと言って全ての機能を一つのソースに記述する事は、プログラムの見通しが悪くなりバグの温床になりかねません。~ | [[GCC Developer Lite>GCC Developer Lite]]では1つのソースプログラムのみを対象とするため、機能別にソースを分割して編集やコンパイルするといった使い方は出来ません(完全にできないという訳でもありません)。だからと言って全ての機能を一つのソースに記述する事は、プログラムの見通しが悪くなりバグの温床になりかねません。~ | ||
そこで、複数のソースに分割する事無くある程度のソースプログラムサイズでコーディングするために、頻繁に使用されるであろう一部の機能が専用のライブラリとして提供されます。~ | そこで、複数のソースに分割する事無くある程度のソースプログラムサイズでコーディングするために、頻繁に使用されるであろう一部の機能が専用のライブラリとして提供されます。~ | ||
- | GCC Developer Liteを標準的な環境のPCへインストールすると、「C:\Program Files\BestTech\GCC Developer Lite\TARGET\SAM7S」フォルダに必要なファイルがコピーされます。必要に応じて本フォルダを参照できますし、ユーザがソースを修正しライブラリを再構築する事も可能です。 | + | GCC Developer Liteを標準的な環境のPCへインストールすると、「C:\Program Files\BestTech\GCC Developer Lite\TARGET\ATmega128」フォルダに必要なファイルがコピーされます。必要に応じて本フォルダを参照できますし、ユーザがソースを修正しライブラリを再構築する事も可能です。 |
-''スタートアップルーチン'' | -''スタートアップルーチン'' | ||
~C言語で作成したプログラムを実行させるために、アセンブラないしC言語で記述された必要最低限の初期化処理プログラムです。~ | ~C言語で作成したプログラムを実行させるために、アセンブラないしC言語で記述された必要最低限の初期化処理プログラムです。~ | ||
- | |||
-''リンカスクリプトファイル'' | -''リンカスクリプトファイル'' | ||
~実行条件に応じたメモリの割り当てを記述したファイルです。コンパイル時にリンカが参照し、コードの最終的な配置が決定されます。~ | ~実行条件に応じたメモリの割り当てを記述したファイルです。コンパイル時にリンカが参照し、コードの最終的な配置が決定されます。~ | ||
- | '''atmega32.x'''~ | + | '''atmega128.x'''~ |
- | -''内蔵ペリフェラルのレジスタ名定義ヘッダファイル'' | + | '''atmega128extram.x''' |
- | ~マイコンに内蔵された各種ペリフェラルが持つレジスタは、決められたメモリ上のアドレスに配置されています。それらレジスタをアドレスではなくレジスタ毎に決められた名称を使い、変数のようにアクセスするためのマクロ定義が記述されています。~ | + | |
-''UART API'' | -''UART API'' | ||
~作成したプログラムの動作を確認を行う際に、マイコンのシリアルポートを使用する事を推奨しています。マイコンと文字によるコミュニケーション機能を用意する事で、レジスタの値やプログラムの進捗の把握、さらにはマイコンに対してPCから指令を与えるといった使い方が出来ます。~ | ~作成したプログラムの動作を確認を行う際に、マイコンのシリアルポートを使用する事を推奨しています。マイコンと文字によるコミュニケーション機能を用意する事で、レジスタの値やプログラムの進捗の把握、さらにはマイコンに対してPCから指令を与えるといった使い方が出来ます。~ | ||
- | 本マイコンには複数のシリアルポートが備わっており、制御方法も多種多様なため、それに応じてライブラリとして提供する通信用APIも多くなっています。~ | + | 本マイコンには複数のシリアルポートが備わっており、制御方法も多種多様なため、それに応じてライブラリとして提供する通信用APIも多くなっています。 |
- | + | ||
- | -''PIO初期化API'' | + | |
- | ~煩雑なPIOの初期化を簡便に行うためのAPIです。Atmel社の提供するサンプルコードと互換性を持っています。~ | + | |
- | + | ||
- | -''IRQ/FIQ制御API'' | + | |
- | ~IRQとFIQの各割り込みを制御するには、コンパイラに依存するコードが必要です。簡便のためAPIとして提供します。~ | + | |
-''ライブラリファイル'' | -''ライブラリファイル'' | ||
- | ~各APIとremap.cをコンパイルし、一つのライブラリファイルにアーカイブして提供します。~ | + | ~各APIをコンパイルし、一つのライブラリファイルにアーカイブして提供します。~ |
- | '''makelib.bat''' (APIをARMモードでコンパイルし、アーカイブするバッチ)~ | + | '''makelib.bat''' (APIをコンパイルし、アーカイブするバッチ)~ |
'''libm128.a''' (makelib.batで作成されるライブラリファイル)~ | '''libm128.a''' (makelib.batで作成されるライブラリファイル)~ | ||
+ | |||
**サンプルプログラム [#j8d0f0c6] | **サンプルプログラム [#j8d0f0c6] | ||
+ | [[http://www.besttechnology.co.jp/download/ATMEGA128SMPL.ZIP]] |