ページへ戻る

− Links

 印刷 

BTC068B ATmega128Aマイコンボード :: Besttechnology

knowledge:BTC068B ATmega128Aマイコンボード

ページ内コンテンツ
    • 概要
    • 基本仕様
      • 外観
      • 回路図
      • 端子配置・外形
      • コネクタ・端子・スイッチ等
        • CN1
        • CN2
        • CN3
        • CN4
        • D1(LED)
        • D2(LED)
        • PB1
    • 各機能の詳細
      • 電源
      • USB(CN3)
        • ブートローダV1.3
      • プッシュスイッチ(PB1)
    • 開発環境
      • GCC Developer Lite
        • ターゲットファイル
        • SIMPLE TERMとブートローダ
      • ATmega128A用ライブラリ
    • サンプルプログラム

ショップページへ[1]

概要 anchor.png[2]

Microchip社(旧Atmel社)製ATmega128Aを搭載したマイコンボードです。 USBポートを使用してプログラムの書き換えやデバッグをサポートし、USBバスパワーによる運用も可能です。
なお、CN1とCN2のピンアサインはBTC068[3]と互換性を有します。

Page Top

基本仕様 anchor.png[4]

商品番号BTC068B
PCBリビジョンE019C (2層)
CPUMicrochip ATmega128A[5]
クロックシステムクロック 16MHz
動作温度-20~+70℃
動作電圧DC4.5~5.5V (絶対最大定格 DC6V)
消費電流最大45mA
寸法W29.2×D39.4mm (±0.5mm)
コネクタ等30ピン外部端子×2, microUSB×1, リセットボタン×1
付属品ピンヘッダ
環境配慮RoHS準拠, 鉛フリー半田
Page Top

外観 anchor.png[6]

topbottom
3D pdf[9]
Page Top

回路図 anchor.png[10]

※U3(SRAM)は未実装

Page Top

端子配置・外形 anchor.png[12]

Page Top

コネクタ・端子・スイッチ等 anchor.png[14]

Page Top
CN1 anchor.png[15]
  • 2.54mmピッチ2列 15ピン
  • ランド穴径 0.9mm
  • 推奨ピンヘッダ:ヒロセ電機 HIF3H-30PB-2.54DSA[16]
  • 推奨レセプタクル:ヒロセ電機 HIF3H-30DA-2.54DSA[16]
    No.端子名称No.端子名称
    1VCC2GND
    3PA0/AD04PA1/AD1
    5PA2/AD26PA3/AD3
    7PA4/AD48PA5/AD5
    9PA6/AD610PA7/AD7
    11PG2/ALE12PC7/A15
    13PC6/A1414PC5/A13
    15PC4/A1216PC3/A11
    17PC2/A1018PC1/A9
    19PC0/A820PG1/RD
    21PG0/WR22PD7/T2
    23PD6/T124PD5/XCK1
    25PD4/ICP126PD3/TXD1/INT3
    27PD2/RXD1/INT228PD1/SDA/INT1
    29PD0/SCL/INT030GND
Page Top
CN2 anchor.png[17]
  • 2.54mmピッチ2列 15ピン
  • ランド穴径 0.9mm
  • 推奨ピンヘッダ:ヒロセ電機 HIF3H-30PB-2.54DSA[16]
  • 推奨レセプタクル:ヒロセ電機 HIF3H-30DA-2.54DSA[16]
  • No.12(RXD0), No.13(TXD0)はUSBシリアル変換ICに接続
  • No.27(PB7)はD2に接続
  • No.30(RESET)は1kでプルアップかつPB1に接続
    No.端子名No.端子名
    1PF7/ADC7/TDI2PF6/ADC6/TDO
    3PF5/ADC5/TMS4PF4/ADC4/TCK
    5PF3/ADC36PF2/ADC2
    7PF1/ADC18PF0/ADC0
    9AVREF10GND
    11AVCC12*PE0/PDI/RXD0
    13*PE1/PDO/TXD014PE2/XCK0/AIN0
    15PE3/OC3A/AIN116PE4/OC3B/INT4
    17PE5/OC3C/INT518PE6/T3/INT6
    19PE7/ICP3/INT720PB0/SS
    21PB1/SCK22PB2/MOSI
    23PB3/MISO24PB4/OC0
    25PB5/OC1A26PB6/OC1B
    27*PB7/OC2/OC1C28PG3/TOSC2
    29PG4/TOSC130*RESET
Page Top
CN3 anchor.png[18]
  • USB-MicroBレセプタクル
  • FTDI社製USBシリアル変換ICへ接続し、マイコンとのシリアル通信の仲介
  • USBバスパワーをボード上の電源として供給(約500mAの電流制限と電流逆流防止回路付)
Page Top
CN4 anchor.png[19]
  • AVR-ISP用ランド
  • 1.27mmピッチ5ピン
  • ランド穴径 0.7mm
  • 推奨ヘッダ:MAC8 XBシリーズ[20]
    No.端子名
    1PE1(MISO)
    2VCC
    3PB1(SCK)
    4PE0(MOSI)
    5RESET
    6GND
Page Top
D1(LED) anchor.png[21]
  • 色:赤
  • 電源が供給されると点灯
Page Top
D2(LED) anchor.png[22]
  • 色:緑
  • PB7端子にシンク接続
  • 主にブートローダの状態モニタ用
Page Top
PB1 anchor.png[23]
  • 押下でマイコンのRESET端子をGNDへ短絡
  • ブートローダによってリセット直後の状態検出を行っているため、RESET端子にコンデンサ等によって別途遅延回路を設けてはならない。
Page Top

各機能の詳細 anchor.png[24]

Page Top

電源 anchor.png[25]

    • USB BUS Power
      CN3にUSBケーブルを接続するとPCから約5Vの電源(バスパワー)が供給され、ボード内に供給されます。
      CN1-3,4(VCC)端子とCN1-1,2(GND)端子間からは5Vが出力されます。
      buspower.png
    • Self Power
      CN1-3,4(VCC)端子とCN1-1,2(GND)間に安定した5Vの外部電源を接続します。
      CN1に外部電源からの電圧を供給した状態でUSBケーブルを接続すると、両電源がボード内で衝突することになります。ボード内に電流制限付きの整流回路が挿入されているため、通常は外部電源の電流がUSBポートを介してPCへ逆流することはありません。しかし外部電源の電圧がバスパワーの電圧より低くなると、その電位差をバスパワーがまかなおうとします。その際の電流が最大500mAを超える場合は、ボード外部へのバスパワー供給をあきらめ、本ボードへの電源供給ラインに整流回路を設けます。
      selfpower.png
Page Top

USB(CN3) anchor.png[26]

E019C_USB.png

CN3にはUSBケーブルを接続します。主にプログラムの転送やデバッグに使用します。
USBシリアル変換ICには実績のあるFTDI社製のICを使用していますので、こちら[27]のページにしたがってデバイスドライバをインストールしてください。

Page Top
ブートローダV1.3 anchor.png[28]

最新版ブートローダの解説[29]に従います。
Ver1.3以降のブートローダは電源が供給された状態でリセット信号を検出すると、ブートローダのコマンドモードに強制遷移します。
既にユーザプログラムが書き込まれている場合は、電源印加直後もしくはブートローダのコマンドモードから'G'を発行した時にユーザプログラムが実行されます。

プログラムの転送にはSIMPLE TERMを使用します。

Page Top

プッシュスイッチ(PB1) anchor.png[30]

PB1にはAVRのRESET端子が接続されています。押下されるとRESET端子がGNDに接続されAVRは外部リセットされます。
RESET端子によるリセット後、ブートローダはそれを検出してコマンドモードに遷移します。これはPB1でユーザプログラムを再起動できない事を意味します。

Page Top

開発環境 anchor.png[31]

Page Top

GCC Developer Lite anchor.png[32]

「基本パック」と「AVRパック」をダウンロードしてインストールしてください。なおAVRパックインストールの際に表示されるコンポーネントの選択画面では「ATmega128でのみ使用」を選択してください。

AvrPacATM128.png

使用されるコンポーネントを簡単に示します。

  • GCC Developer Lite[33]

    ソースプログラムを編集するためのテキストエディタとその他のツールを起動するためのランチャ機能を有する。

  • SIMPLE TERM[34]

    汎用シリアルターミナル。簡易的なTLENETクライアントとしても機能する。
    USB等で提供されるCOMポートの動的な検出と、COMポートを使用する弊社ツールとの排他制御機能を持つ。

  • AVRGCC

    AVRシリーズ向けC/C++言語向けのコンパイラ。出来る限り最新のパッチを適用しているため、時に互換性を失う。

  • ターゲットファイル

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

Page Top
ターゲットファイル anchor.png[35]

GCC Developer Liteでは本品用の設定を備えています。GCC Developer Liteのコンパイルオプションの設定リストから選択し直すだけで設定が完了します。

GDL_CompileOption_TargetList.png

以下に本品に対応した設定リストと機能を紹介します。

  • ATmega128A USB

    ビルドするとブートローダ[29]にてAVRのフラッシュROMへ転送するための.bin(バイナリ)ファイルが作られる。
    ビルドが成功すると、STERM.exe(SIMPLE TERM)の起動を促される。

Page Top
SIMPLE TERMとブートローダ anchor.png[36]

フラッシュROMには出荷時に弊社オリジナルのブートローダ[29]が書き込まれています。
ブートローダはISPやJTAGといったI/Fを使用せずとも、COMポートを使用してプログラムの書き換えが出来ます。 転送方法などの詳細はこちら[29]
ブートローダを使用して動作するプログラムが構成できる設定リストは以下の通りで、これ以外の設定リストで構成されたプログラムをブートローダで転送しても正常動作しません。

  • ATmega128A

出荷時にUSART0をコンソールとして構成されたブートローダが書き込まれており、PCと本品をUSBで接続する必要があります。 SIMPLE TERMから該当するCOMポートを選択(COMポート番号はPCの環境によって適宜選択)しオープンするとブートローダの各種コマンドが使用可能となります。その他の設定は以下の通りです。

Baudrate:115200
Databits:8
Stopbits:1
Parity:Non
Flow Control:Non
Protocol:Xmodem
AVR_BL_COM.png

既にユーザプログラムが書き込まれている場合は、電源投入直後からユーザプログラムが即時実行されます。ユーザプログラムが書き込まれたマイコンでブートローダのコマンドモードを使用するには以下の手順を踏みます。

  1. SIMPLE TERMで該当のCOMポートを開く。
  2. PB1を押してリセットする。
  3. SIMPLE TERMのターミナルウィンドウにブートローダからのメッセージが表示される事を確認する。

ブートローダの詳細及びコマンドモードの使い方等はこちら[29]


先の設定リストでソースプログラムをコンパイルし成功するとSTERM.exe(SIMPLE TERM)の起動を促されます。「OK」を押してSIMPLE TERMを起動すると、特殊な設定が追加されたSIMPLE TERMが起動します。

  • 既にSIMPLE TERMが実行中であれば2重に起動しない。
  • コンパイル済み.binファイルの情報が渡る(ステータスバーにて確認可)。
  • ユーザプログラムを転送する際の手順を記述したスクリプトファイルが使用できる様になる。
sterm_script.png

「スクリプト実行[STERM ATMEGA_NR]」をクリックすると、ブートローダがコマンドモードになっている事の確認と転送するファイルの選択を自動的に行った後、転送が完了したプログラムの実行までの処理を自動的に行います。何らかの問題が生じると、その時点でスクリプトの実行は中断します。
本機能により、手動で間違ったファイルを選択して転送してしまったり、ブートローダがコマンドモードでない状態で転送をしてしまうといったミスは発生しなくなります。

Page Top

ATmega128A用ライブラリ anchor.png[37]

GCC Developer Lite[38]では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で作成されるライブラリファイル)

Page Top

サンプルプログラム anchor.png[39]

こちら[40]にて公開中。


Last-modified: 2022-02-13 (日) 11:46:10 (JST) (796d) by takaboo