ページへ戻る

− Links

 印刷 

BTC068 ATmega128マイコンボード のバックアップソース(No.8) :: Besttechnology

knowledge:BTC068 ATmega128マイコンボード のバックアップソース(No.8)

« Prev[4]  Next »[5]
TITLE:BTC068 ATmega128マイコンボードマニュアル
#norelated
#contents
[[ショップページへ>http://www.besttechnology.co.jp/modules/onlineshop/index.php?fct=photo&p=15]]

**概要 [#s1de0442]
Atmel社製ATmega128を搭載したマイコンボードです。

**基本仕様 [#SPEC]
|商品番号 |BTC068 |
|PCBリビジョン |E019C (2層) |
|CPU |[[Atmel ATmega128:http://www.atmel.com/dyn/products/product_card.asp?part_id=2018]] |
|クロック |システムクロック 16MHz |
|動作温度 |0~+70℃ |
|動作電圧 |DC4.5~5.5V (絶対最大定格 DC6V) |
|消費電流 |最大45mA |
|寸法 |W30×D39mm (±0.5mm) |
|コネクタ等 |30ピン外部端子×2, RS232C通信用3ピンヘッダ×1, リセットボタン×1, モード切替スイッチ×1 |
|付属品 |2列ピンヘッダ  |
|環境配慮 |RoHS準拠,鉛フリー半田 |

***外観 [#mf44ecda]
|  top                         | bottom                       |
| #ref(ATmega128_TOP.png,30%) | #ref(ATmega128_BOTTOM.png,30%) |

***回路図 [#o297fb19]
#ref(E019C.pdf)
-ロットによりSW1は未実装(今後は未実装を標準とする)

***端子配置・外形 [#a032b6a2]
#ref(ATmega128_LAYOUT.png,100%)

***コネクタ・端子・スイッチ等 [#o9d64ab4]
****CN1 [#i4b2cb33]
-2.54mmピッチ2列 15ピン
-推奨ピンヘッダ:ヒロセ電機 HIF3H-30PB-2.54DSA
-推奨レセプタクル:ヒロセ電機 HIF3H-30DA-2.54DSA
| No. | 端子名称 | No. | 端子名称 |
| 1 | VCC | 2 | GND |
| 3 | PA0/AD0 | 4 | PA1/AD1 |
| 5 | PA2/AD2 | 6 | PA3/AD3 |
| 7 | PA4/AD4 | 8 | PA5/AD5 |
| 9 | PA6/AD6 | 10 | PA7/AD7 |
| 11 | PG2/ALE | 12 | PC7/A15 |
| 13 | PC6/A14 | 14 | PC5/A13 |
| 15 | PC4/A12 | 16 | PC3/A11 |
| 17 | PC2/A10 | 18 | PC1/A9 |
| 19 | PC0/A8 | 20 | PG1/RD |
| 21 | PG0/WR | 22 | PD7/T2 |
| 23 | PD6/T1 | 24 | PD5/XCK1 |
| 25 | PD4/ICP1 | 26 | PD3/TXD1/INT3 |
| 27 | PD2/RXD1/INT2 | 28 | PD1/SDA/INT1 |
| 29 | PD0/SCL/INT0 | 30 | GND |

****CN2 [#n1e87094]
-2.54mmピッチ2列 15ピン
-推奨ピンヘッダ:ヒロセ電機 HIF3H-30PB-2.54DSA
-推奨レセプタクル:ヒロセ電機 HIF3H-30DA-2.54DSA
-No.12(RXD0), No.13(TXD0)はRS232Cレベル変換ICに割当済
-No.27(PB7)はモニタLEDに割当済
-No.29(PG4)はモード切替スイッチに割当済
| No. | 端子名 | No. | 端子名 |
| 1 | PF7/ADC7/TDI | 2 | PF6/ADC6/TDO |
| 3 | PF5/ADC5/TMS | 4 | PF4/ADC4/TCK |
| 5 | PF3/ADC3 | 6 | PF2/ADC2 |
| 7 | PF1/ADC1 | 8 | PF0/ADC0 |
| 9 | AVREF | 10 | GND |
| 11 | AVCC | 12 | PE0/PDI/RXD0 |
| 13 | PE1/PDO/TXD0 | 14 | PE2/XCK0/AIN0 |
| 15 | PE3/OC3A/AIN1 | 16 | PE4/OC3B/INT4 |
| 17 | PE5/OC3C/INT5 | 18 | PE6/T3/INT6 |
| 19 | PE7/ICP3/INT7 | 20 | PB0/SS |
| 21 | PB1/SCK | 22 | PB2/MOSI |
| 23 | PB3/MISO | 24 | PB4/OC0 |
| 25 | PB5/OC1A | 26 | PB6/OC1B |
| 27 | PB7/OC2/OC1C | 28 | PG3/TOSC2 |
| 29 | PG4/TOSC1 | 30 | RESET |

****CN3 [#n5d68cfb]
-2mmピッチ 3ピン ヒロセ電機 A4B-03PA-2DSA(71)
-推奨圧着ソケット:ヒロセ電機 A4B-03S-2C
-PE0(RXD0)とPE1(TXD0)端子をRS232Cレベルに変換
-JP1にてRS232C回路とATmega128のPD0/RXD端子を接続及び切断可能(デフォルトで半田ジャンパ済)
| No. | 端子名 | I/O |
| 1 | TX (RS232C←PA10) | O |
| 2 | GND | - |
| 3 | RX (RS232C→PA9) | I |

****JP1 [#s6aca6fa]
-RS232Cレベル変換のレシーバイネーブル制御(マイコンのPE0端子に接続)
-オープン:レシーバディスエーブル, ショート:レシーバイネーブル
-出荷時ショート
****JP2 [#z98ae993]
-外部SRAM機能のイネーブル制御(マイコンのPG1端子に接続)
-オープン:外部SRAMディスエーブル, ショート:外部SRAMイネーブル
-出荷時オープン

****JP3 [#gb1f3458]
-モニタLED機能のイネーブル制御(マイコンのPB7端子に接続)
-オープン:モニタLEDディスエーブル, ショート:モニタLEDイネーブル
-出荷時ショート

****D1(LED) [#nabe0994]
-マイコンボードに電源を印可すると点灯
****D2(LED) [#o92e9aef]
-PB7端子にシンク接続
-ブートローダの状態モニタ用

****SW1(スライドスイッチ) [#k21a67a8]
-WRITEとあるシルク側に切り替えることでマイコンのPG4(TOSC1)端子とGNDを短絡
-[[ブートローダV1.2>AVR Bootloader]]以降から本スイッチによるモード切り替えを取り止め

****PB1(プッシュボタン) [#bf3cf117]
-押下でマイコンのリセット端子をGNDへ短絡


**各機能の詳細 [#be3482a1]
***電源 [#n838854c]
CN1-1(VCC)端子とCN1-2(GND)間に安定したDC5Vを供給します。

***RS232C(CN3) [#wf24ffca]
#ref(E032B_RS232C.png)
CN3にはマイコンのDBGU端子をRS232Cレベルに変換された信号が接続されます。主にプログラムの転送やデバッグに使用します。~
接続するホストに応じて以下の通信ケーブルないしI/Fがオプションで使用できます。
-PCにCOMポートがある場合~
[[BTE060 RS232C通信ケーブル]]
-PCにCOMポートが無く、USBポートがある場合~
[[BTE075 USB-RS232Cケーブル]]~
[[BTE060 RS232C通信ケーブル]] + [[BTE061D USBシリアル変換ケーブル]]
***スライドスイッチ(SW1) [#DETAILS_SW1]
****ブートローダ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にはマイコンのNRST端子が接続されています。押下されるとNRST端子がGNDに接続されマイコンがリセットされます。~
**開発環境 [#m5b2998e]
***GCC Developer Lite [#v3a411be]
GCC Developer Liteの詳細については[[こちら>GCC Developer Lite]]。~
フルインストールないしATmega128で使用を選択する事で必要なコンポーネントが自動的にインストールされます。~
使用されるコンポーネントを簡単に示します。
-''[[GCC Developer Lite>GCC Developer Lite#GCCDevL]]''
~ソースプログラムを編集するためのテキストエディタとその他のツールを起動するためのランチャ機能を有する。
-''[[SIMPLE TERM>GCC Developer Lite#STERM]]''
~汎用シリアルターミナル。簡易的なTLENETクライアントとしても機能する。~
USB等で提供されるCOMポートの動的な検出と、COMポートを使用する弊社ツールとの排他制御機能を持つ。
-''AVRGCC''
~AVRシリーズ向けC/C++言語向けのコンパイラ。出来る限り最新のパッチを適用しているため、時に互換性を失う。

-''ターゲットファイル''
~マイコンの内蔵ペリフェラルを定義したヘッダファイルやUARTを簡便に使うためのAPI、シリーズ毎に異なるメモリマップを定義したリンカスクリプトファイル、スタートアップルーチンを含む。基本的にコンパイル済みライブラリとしてソースとリンクして使用する。

****ターゲットファイル [#ra426846]
GCC Developer Liteでは本マイコン用の設定を複数備えています。~
#ref(GDL_CompileOption_TargetList.png)
以下に本マイコンボードに対応した設定リストの一覧とその設定における機能の違いを紹介します。
-''ATmega128''~
~ビルドすると[[ブートローダ>AVR_BL]]にてマイコンのフラッシュROMへ転送するための.bin(バイナリ)ファイルが作られる。~
外部SRAMは使用しない。~
ビルドが成功すると、STERM.exe(SIMPLE TERM)の起動を促される。
-''ATmega128(need ExtRAM)''~
~ビルドすると[[ブートローダ>AVR_BL]]にてマイコンのフラッシュROMへ転送するための.bin(バイナリ)ファイルが作られる。~
外部SRAMを使用する。~
ビルドが成功すると、STERM.exe(SIMPLE TERM)の起動を促される。

****SIMPLE TERMとブートローダ [#e05be651]
マイコンのフラッシュROMには出荷時に弊社オリジナルの[[ブートローダ>AVR Bootloader]]が書き込まれています。~
本ブートローダはISPやJTAGといったI/Fを使用せずとも、COMポートを使用してマイコンのプログラム書き換えや操作を行う事が出来ます。転送方法などの詳細は[[こちら>AVR Bootloader]]。~
ブートローダを使用して動作するプログラムが構成できる設定リストは以下の通りで、これ以外の設定リストで構成されたプログラムをブートローダで転送しても正常動作しません。~
-ATmega128
-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」)キーを押しっぱなしにする。
+マイコンボードをリセットする。
+ブートローダのメッセージが表示された後、'!'キーを離すとコマンドモードに遷移する。

先の設定リストでソースプログラムをコンパイルし成功すると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%)

本機能により、手動で間違ったファイルを選択して転送してしまったり、ブートローダがコマンドモードでない状態で転送をしてしまうといったミスを軽減する事ができます。

***ATmega128用ライブラリ [#h96777bd]
[[GCC Developer Lite>GCC Developer Lite]]では1つのソースプログラムのみを対象とするため、機能別にソースを分割して編集やコンパイルするといった使い方は出来ません(完全にできないという訳でもありません)。だからと言って全ての機能を一つのソースに記述する事は、プログラムの見通しが悪くなりバグの温床になりかねません。~
そこで、複数のソースに分割する事無くある程度のソースプログラムサイズでコーディングするために、頻繁に使用されるであろう一部の機能が専用のライブラリとして提供されます。~
GCC Developer Liteを標準的な環境のPCへインストールすると、「C:\Program Files\BestTech\GCC Developer Lite\TARGET\ATmega128」フォルダに必要なファイルがコピーされます。必要に応じて本フォルダを参照できますし、ユーザがソースを修正しライブラリを再構築する事も可能です。
-''スタートアップルーチン''
~C言語で作成したプログラムを実行させるために、アセンブラないしC言語で記述された必要最低限の初期化処理プログラムです。~
-''リンカスクリプトファイル''
~実行条件に応じたメモリの割り当てを記述したファイルです。コンパイル時にリンカが参照し、コードの最終的な配置が決定されます。~
'''atmega128.x'''~
'''atmega128extram.x'''
-''UART API''
~作成したプログラムの動作を確認を行う際に、マイコンのシリアルポートを使用する事を推奨しています。マイコンと文字によるコミュニケーション機能を用意する事で、レジスタの値やプログラムの進捗の把握、さらにはマイコンに対してPCから指令を与えるといった使い方が出来ます。~
本マイコンには複数のシリアルポートが備わっており、制御方法も多種多様なため、それに応じてライブラリとして提供する通信用APIも多くなっています。
-''ライブラリファイル''
~各APIをコンパイルし、一つのライブラリファイルにアーカイブして提供します。~
'''makelib.bat''' (APIをコンパイルし、アーカイブするバッチ)~
'''libm128.a''' (makelib.batで作成されるライブラリファイル)~

**サンプルプログラム [#j8d0f0c6]

« Prev[4]  Next »[5]