TITLE:ATmega128Aマイコンボードマニュアル #norelated #contents [[ショップページへ>http://www.besttechnology.co.jp/modules/onlineshop/index.php?fct=photo&p=156]] **概要 [#p51e8a6d] Microchip社(旧Atmel社)製ATmega128Aを搭載したマイコンボードです。 USBポートを使用してプログラムの書き換えやデバッグをサポートし、USBバスパワーによる運用も可能です。~ なお、CN1とCN2のピンアサインは[[BTC068]]と互換性を有します。 **基本仕様 [#SPEC] |商品番号 |BTC068B | |PCBリビジョン |E019C (2層) | |CPU |[[Microchip ATmega128A:https://www.microchip.com/en-us/product/ATmega128A]] | |クロック |システムクロック 16MHz | |動作温度 |-20~+70℃ | |動作電圧 |DC4.5~5.5V (絶対最大定格 DC6V) | |消費電流 |最大45mA | |寸法 |W29.2×D39.4mm (±0.5mm) | |コネクタ等 |30ピン外部端子×2, microUSB×1, リセットボタン×1 | |付属品 |ピンヘッダ | |環境配慮 |RoHS準拠, 鉛フリー半田 | ***外観 [#x21f7309] | top | bottom |h | #ref(E019C_TOP.png,30%) | #ref(E019C_BOTTOM.png,30%) | | [[3D pdf>http://www.besttechnology.co.jp/download/3D/E019C_3D.pdf]] |<| ***回路図 [#jeb20016] #ref(E019C.pdf) ※U3(SRAM)は未実装 ***端子配置・外形 [#ra1bb538] #ref(E019C.png,100%) ***コネクタ・端子・スイッチ等 [#p025daeb] ****CN1 [#hbea0fe6] -2.54mmピッチ2列 15ピン -ランド穴径 0.9mm -推奨ピンヘッダ:[[ヒロセ電機 HIF3H-30PB-2.54DSA>http://www.hirose.co.jp/catalogj_hp/j61800010.pdf]] -推奨レセプタクル:[[ヒロセ電機 HIF3H-30DA-2.54DSA>http://www.hirose.co.jp/catalogj_hp/j61800010.pdf]] | 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 [#mf80a0ec] -2.54mmピッチ2列 15ピン -ランド穴径 0.9mm -推奨ピンヘッダ:[[ヒロセ電機 HIF3H-30PB-2.54DSA>http://www.hirose.co.jp/catalogj_hp/j61800010.pdf]] -推奨レセプタクル:[[ヒロセ電機 HIF3H-30DA-2.54DSA>http://www.hirose.co.jp/catalogj_hp/j61800010.pdf]] -No.12(RXD0), No.13(TXD0)はUSBシリアル変換ICに接続 -No.27(PB7)はD2に接続 -No.30(RESET)は1kでプルアップかつPB1に接続 | 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 [#x7c95d8f] -USB-MicroBレセプタクル -FTDI社製USBシリアル変換ICへ接続し、マイコンとのシリアル通信の仲介 -USBバスパワーをボード上の電源として供給(約500mAの電流制限と電流逆流防止回路付) ****CN4 [#s6250ba3] -AVR-ISP用ランド -1.27mmピッチ5ピン -ランド穴径 0.7mm -推奨ヘッダ:[[MAC8 XBシリーズ>http://www.mac8sdk.co.jp/mac8/parts/XXX/xh.html]] | No. | 端子名 | | 1 | PE1(MISO) | | 2 | VCC | | 3 | PB1(SCK) | | 4 | PE0(MOSI) | | 5 | RESET | | 6 | GND | ****D1(LED) [#za85f25e] -色:赤 -電源が供給されると点灯 ****D2(LED) [#q892ce45] -色:緑 -PB7端子にシンク接続 -主にブートローダの状態モニタ用 ****PB1 [#z074535c] -押下でマイコンのRESET端子をGNDへ短絡 -ブートローダによってリセット直後の状態検出を行っているため、RESET端子にコンデンサ等によって別途遅延回路を設けてはならない。 **各機能の詳細 [#md73fdbd] ***電源 [#l4e1962e] --USB BUS Power~ CN3にUSBケーブルを接続するとPCから約5Vの電源(バスパワー)が供給され、ボード内に供給されます。~ CN1-3,4(VCC)端子とCN1-1,2(GND)端子間からは5Vが出力されます。 #ref(buspower.png) --Self Power~ CN1-3,4(VCC)端子とCN1-1,2(GND)間に安定した5Vの外部電源を接続します。~ CN1に外部電源からの電圧を供給した状態でUSBケーブルを接続すると、両電源がボード内で衝突することになります。ボード内に電流制限付きの整流回路が挿入されているため、通常は外部電源の電流がUSBポートを介してPCへ逆流することはありません。しかし外部電源の電圧がバスパワーの電圧より低くなると、その電位差をバスパワーがまかなおうとします。その際の電流が最大500mAを超える場合は、ボード外部へのバスパワー供給をあきらめ、本ボードへの電源供給ラインに整流回路を設けます。 #ref(selfpower.png) ***USB(CN3) [#g215c76b] #ref(E017F_USB.png) CN3にはUSBケーブルを接続します。主にプログラムの転送やデバッグに使用します。~ USBシリアル変換ICには実績のあるFTDI社製のICを使用していますので、[[こちら>ftdi]]のページにしたがってデバイスドライバをインストールしてください。 ****ブートローダV1.3 [#e04a1fc6] [[最新版ブートローダの解説>AVR Bootloader]]に従います。~ Ver1.3以降のブートローダは電源が供給された状態でリセット信号を検出すると、ブートローダのコマンドモードに強制遷移します。~ 既にユーザプログラムが書き込まれている場合は、電源印加直後もしくはブートローダのコマンドモードから'G'を発行した時にユーザプログラムが実行されます。 プログラムの転送にはSIMPLE TERMを使用します。 ***プッシュスイッチ(PB1) [#m1265840] PB1にはAVRのRESET端子が接続されています。押下されるとRESET端子がGNDに接続されAVRは外部リセットされます。~ RESET端子によるリセット後、ブートローダはそれを検出してコマンドモードに遷移します。これはPB1でユーザプログラムを再起動できない事を意味します。 **開発環境 [#e3637c52] ***GCC Developer Lite [#d92cd7f6] 「基本パック」と「AVRパック」をダウンロードしてインストールしてください。なおAVRパックインストールの際に表示されるコンポーネントの選択画面では「ATmega128でのみ使用」を選択してください。 #ref(AvrPacATM128.png) 使用されるコンポーネントを簡単に示します。 -''[[GCC Developer Lite>GCC Developer Lite#GCCDevL]]'' ~ソースプログラムを編集するためのテキストエディタとその他のツールを起動するためのランチャ機能を有する。 -''[[SIMPLE TERM>GCC Developer Lite#STERM]]'' ~汎用シリアルターミナル。簡易的なTLENETクライアントとしても機能する。~ USB等で提供されるCOMポートの動的な検出と、COMポートを使用する弊社ツールとの排他制御機能を持つ。 -''AVRGCC'' ~AVRシリーズ向けC/C++言語向けのコンパイラ。出来る限り最新のパッチを適用しているため、時に互換性を失う。 -''ターゲットファイル'' ~AVRの内蔵ペリフェラルを定義したヘッダファイルやUARTを簡便に使うためのAPI、シリーズ毎に異なるメモリマップを定義したリンカスクリプトファイル、スタートアップルーチンを含む。基本的にコンパイル済みライブラリとしてソースとリンクして使用する。 ****ターゲットファイル [#oa71b205] GCC Developer Liteでは本品用の設定を備えています。GCC Developer Liteのコンパイルオプションの設定リストから選択し直すだけで設定が完了します。 #ref(GDL_CompileOption_TargetList.png) 以下に本品に対応した設定リストと機能を紹介します。 -''ATmega128A USB''~ ~ビルドすると[[ブートローダ>AVR_BL]]にてAVRのフラッシュROMへ転送するための.bin(バイナリ)ファイルが作られる。~ ビルドが成功すると、STERM.exe(SIMPLE TERM)の起動を促される。 ****SIMPLE TERMとブートローダ [#AVR_BL] フラッシュROMには出荷時に弊社オリジナルの[[ブートローダ>AVR Bootloader]]が書き込まれています。~ ブートローダはISPやJTAGといったI/Fを使用せずとも、COMポートを使用してプログラムの書き換えが出来ます。 転送方法などの詳細は[[こちら>AVR Bootloader]]。~ ブートローダを使用して動作するプログラムが構成できる設定リストは以下の通りで、これ以外の設定リストで構成されたプログラムをブートローダで転送しても正常動作しません。~ -ATmega128A 出荷時にUSART0をコンソールとして構成されたブートローダが書き込まれており、PCと本品をUSBで接続する必要があります。 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で該当のCOMポートを開く。 +PB1を押してリセットする。 +SIMPLE TERMのターミナルウィンドウにブートローダからのメッセージが表示される事を確認する。 ブートローダの詳細及びコマンドモードの使い方等は[[こちら>AVR Bootloader]]。 ---- [[先の設定リスト>#oa71b205]]でソースプログラムをコンパイルし成功するとSTERM.exe(SIMPLE TERM)の起動を促されます。「OK」を押してSIMPLE TERMを起動すると、特殊な設定が追加されたSIMPLE TERMが起動します。 -既にSIMPLE TERMが実行中であれば2重に起動しない。 -コンパイル済み.binファイルの情報が渡る(ステータスバーにて確認可)。 -ユーザプログラムを転送する際の手順を記述したスクリプトファイルが使用できる様になる。 #ref(sterm_script.png,100%) 「スクリプト実行[STERM ATMEGA_NR]」をクリックすると、ブートローダがコマンドモードになっている事の確認と転送するファイルの選択を自動的に行った後、転送が完了したプログラムの実行までの処理を自動的に行います。何らかの問題が生じると、その時点でスクリプトの実行は中断します。~ 本機能により、手動で間違ったファイルを選択して転送してしまったり、ブートローダがコマンドモードでない状態で転送をしてしまうといったミスは発生しなくなります。 ***ATmega128A用ライブラリ [#v4765974] [[GCC Developer Lite>GCC Developer Lite]]では1つのソースプログラムのみを対象とするため、機能別にソースを分割して編集やコンパイルするといった使い方は出来ません(完全にできないという訳でもありません)。だからと言って全ての機能を一つのソースに記述する事は、プログラムの見通しが悪くなりバグの温床になりかねません。~ そこで、複数のソースに分割する事無くある程度のソースプログラムサイズでコーディングするために、頻繁に使用されるであろう一部の機能が専用のライブラリとして提供されます。~ GCC Developer Liteを標準的な環境のPCへインストールすると、「C:\Program Files\BestTech\GCC Developer Lite\TARGET\ATmega128」フォルダに必要なファイルがコピーされます。必要に応じて本フォルダを参照できますし、ユーザがソースを修正しライブラリを再構築する事も可能です。 -''リンカスクリプトファイル'' ~実行条件に応じたメモリの割り当てを記述したファイルです。コンパイル時にリンカが参照し、コードの最終的な配置が決定されます。~ '''atmega128.x'''~ -''UART API'' ~作成したプログラムの動作を確認を行う際に、AVRのシリアルポートを使用する事を推奨しています。AVRと文字によるコミュニケーション機能を用意する事で、レジスタの値やプログラムの進捗の把握、さらにはAVRに対してPCから指令を与えるといった使い方が出来ます。~ '''rs.h''' (APIのプロトタイプ宣言を含むヘッダファイル)~ '''rs~.c''' (USARTを割り込みで使用するAPIのソース群)~ -''ライブラリファイル'' ~各APIをコンパイルし、一つのライブラリファイルにアーカイブして提供します。~ '''makelib.bat''' (APIをコンパイルし、アーカイブするバッチ)~ '''libm128.a''' (makelib.batで作成されるライブラリファイル)~ **サンプルプログラム [#g33ec16e] [[こちら>ATmega128 Sample Code]]にて公開中。
(This host) = http://www.besttechnology.co.jp