1: 2009-06-29 (月) 01:17:30 takaboo | |||
---|---|---|---|
Line 1: | Line 1: | ||
+ | TITLE:BTC067 ATmega32マイコンボードマニュアル | ||
+ | **概要 [#s1de0442] | ||
+ | Atmel社製ATmega32を搭載したマイコンボードです。 | ||
+ | **基本仕様 [#v60e7a86] | ||
+ | |商品番号 |BTC067 | | ||
+ | |リビジョン |E017C | | ||
+ | |CPU |[[Atmel ATmega32:http://www.atmel.com/dyn/products/product_card.asp?part_id=2014]] | | ||
+ | |クロック |システムクロック 16MHz | | ||
+ | |動作温度 |0~+70℃ | | ||
+ | |動作電圧 |DC4.5~5.5V (絶対最大定格 DC6V) | | ||
+ | |消費電流 |最大30mA | | ||
+ | |寸法 |W29×D27mm (±0.5mm) | | ||
+ | |コネクタ等 |20ピン外部端子×2, 通信用ピンヘッダ (BTE060 RS232C通信ケーブル接続用), モード切替スイッチ×1, リセットボタン×1 | | ||
+ | |付属品 |2列ピンヘッダ (CN1,CN2にはコネクタが半田付けされていません。お使いの環境に合わせて適宜装備してください) | | ||
+ | |環境配慮 |RoHS準拠,鉛フリー半田 | | ||
+ | ***外観 [#mf44ecda] | ||
+ | | top | bottom | | ||
+ | | #ref(ATmega32_TOP.png,50%) | #ref(ATmega32_BOTTOM.png,50%) | | ||
+ | ***回路図 [#o297fb19] | ||
+ | #ref(E017C.pdf) | ||
+ | -ロットによりSW1は未実装(今後は未実装を標準とする) | ||
+ | |||
+ | ***端子配置・外形 [#a032b6a2] | ||
+ | #ref(ATmega32_LAYOUT.png,100%) | ||
+ | |||
+ | ***コネクタ・端子・スイッチ等 [#cecc4e26] | ||
+ | ****CN1 [#i4b2cb33] | ||
+ | -2.54mmピッチ2列 10ピン | ||
+ | -推奨ピンヘッダ:ヒロセ電機 HIF3H-20PB-2.54DSA | ||
+ | -推奨レセプタクル:ヒロセ電機 HIF3H-20DA-2.54DSA | ||
+ | -No.5(PB7)はモード切替スイッチに割当済 | ||
+ | -No.8(PB4)はモニタLEDに割当済 | ||
+ | | No. | 端子名称 | No. | 端子名称 | | ||
+ | | 1 | GND | 2 | GND | | ||
+ | | 3 | VCC | 4 | VCC | | ||
+ | | 5 | PB7(SCK) | 6 | PB6(MISO) | | ||
+ | | 7 | PB5(MOSI) | 8 | PB4(SS) | | ||
+ | | 9 | PB3(OC0/AIN1) | 10 | PB2/(INT2/AIN0) | | ||
+ | | 11 | PB1(T1) | 12 | PB0(XCK/T0) | | ||
+ | | 13 | PA0(ADC0) | 14 | PA1(ADC1) | | ||
+ | | 15 | PA2(ADC2) | 16 | PA3(ADC3) | | ||
+ | | 17 | PA4(ADC4) | 18 | PA5(ADC5) | | ||
+ | | 19 | PA6(ADC6) | 20 | PA7(ADC7) | | ||
+ | ****CN2 [#n1e87094] | ||
+ | -2.54mmピッチ2列 10ピン | ||
+ | -推奨ピンヘッダ:ヒロセ電機 HIF3H-20PB-2.54DSA | ||
+ | -推奨レセプタクル:ヒロセ電機 HIF3H-20DA-2.54DSA | ||
+ | -No.3(RXD), No.4(TXD)はRS232Cレベル変換ICに割当済 | ||
+ | | No. | 端子名 | No. | 端子名 | | ||
+ | | 1 | GND | 2 | RESET | | ||
+ | | 3 | PD0(RXD) | 4 | PD1(TXD) | | ||
+ | | 5 | PD2(INT0) | 6 | PD3(INT1) | | ||
+ | | 7 | PD4(OC1B) | 8 | PD5(OC1A) | | ||
+ | | 9 | PD6(ICP) | 10 | PD7(OC2) | | ||
+ | | 11 | PC0(SCL) | 12 | PC1(SDA) | | ||
+ | | 13 | PC2(TCK) | 14 | PC3(TMS) | | ||
+ | | 15 | PC4(TDO) | 16 | PC5(TDI) | | ||
+ | | 17 | PC6(TOSC1) | 18 | PC7(TOSC2) | | ||
+ | | 19 | AREF | 20 | AVCC | | ||
+ | ****CN3 [#n5d68cfb] | ||
+ | -2mmピッチ 3ピン | ||
+ | -PD0(RXD)とPD1(TXD)端子をRS232Cレベルに変換 | ||
+ | -JP1にてRS232C回路とATmega32のPD0(RXD)端子を接続及び切断可能(デフォルトで半田ジャンパ済) | ||
+ | | No. | 端子名 | I/O | | ||
+ | | 1 | TX (RS232C←PD1) | O | | ||
+ | | 2 | GND | - | | ||
+ | | 3 | RX (RS232C→PD0) | I | | ||
+ | |||
+ | ****JP1 [#s6aca6fa] | ||
+ | -RS232Cレベル変換のレシーバイネーブル制御(マイコンのPD0端子に接続) | ||
+ | -オープン:レシーバディスエーブル, ショート:レシーバイネーブル | ||
+ | -出荷時ショート | ||
+ | ****D1(LED) [#nabe0994] | ||
+ | -マイコンボードに電源を印加すると点灯 | ||
+ | |||
+ | ****D2(LED) [#o92e9aef] | ||
+ | -PB4端子にシンク接続 | ||
+ | -ブートローダの状態モニタ用 | ||
+ | |||
+ | ****SW1(スライドスイッチ) [#k21a67a8] | ||
+ | -WRITEとあるシルク側に切り替えることでマイコンのPB7端子とGNDを短絡 | ||
+ | -[[ブートローダV1.2>AVR Bootloader]]以降から本スイッチによるモード切り替えを取り止め | ||
+ | |||
+ | ****PB1(プッシュボタン) [#bf3cf117] | ||
+ | -押下でマイコンのRESET端子をGNDへ短絡 | ||
+ | |||
+ | **各機能の詳細 [#j5f8da49] | ||
+ | ***電源 [#w282c1aa] | ||
+ | CN1-3,4(VCC)端子とCN1-1,2(GND)間に安定したDC5Vを供給します。 | ||
+ | |||
+ | ***RS232C(CN3) [#hc9c28ac] | ||
+ | #ref(E032B_RS232C.png,70%) | ||
+ | CN3にはマイコンのDBGU端子をRS232Cレベルに変換された信号が接続されます。主にプログラムの転送やデバッグに使用します。~ | ||
+ | 接続するホストに応じて以下の通信ケーブルないしI/Fがオプションで使用できます。 | ||
+ | -PCにCOMポートがある場合~ | ||
+ | [[BTE060 RS232C通信ケーブル]] | ||
+ | -PCにCOMポートが無く、USBポートがある場合~ | ||
+ | [[BTE075 USB-RS232Cケーブル]]~ | ||
+ | [[BTE060 RS232C通信ケーブル]] + [[BTE061D USBシリアル変換ケーブル]] | ||
+ | ***スライドスイッチ(SW1) [#z9c1feac] | ||
+ | ****ブートローダV1.2以降(V1.2ラベル添付版) [#r4c6d515] | ||
+ | 数少ないリソースをブートローダのためにリザーブされる事を嫌い、本スイッチによるブートローダのモード切り替えを廃止しています。動作モードの切り替えは[[最新版ブートローダの解説>AVR Bootloader]]に従います。~ | ||
+ | プログラムの転送にはSIMPLE TERMを使用します。 | ||
+ | |||
+ | ****ブートローダV1.0~V1.1(黄色シール添付版はV1.0) [#bca1ad1c] | ||
+ | Write側にしてリセットスタートするとブートローダモードに入り、その反対側ではユーザプログラムが実行されます。~ | ||
+ | プログラムの転送にはSIMPLE TERMを使用します。 | ||
+ | ****stk500ブートローダ(無印) [#q77a188f] | ||
+ | Write側にしてリセットスタートするとブートローダモードに入り、その反対側ではユーザプログラムが実行されます。~ | ||
+ | プログラムの転送にはFLASH WRITERを使用します。 | ||
+ | |||
+ | |CENTER:BGCOLOR(red):||c | ||
+ | | :idea:|本ドキュメントではV1.2を前提として記述します。マイコンボードが旧バージョンのブートローダを搭載している場合はISPライタを使って最新版に書き換えるか、製品に添付されていたドキュメントを参照します。| | ||
+ | |||
+ | ***プッシュスイッチ(PB1) [#k9a20061] | ||
+ | PB1にはマイコンのRESET端子が接続されています。押下されるとRESET端子がGNDに接続されマイコンはリセットされます。 | ||
+ | |||
+ | **開発環境 [#ccc8a73c] | ||
+ | ***GCC Developer Lite [#ea80f01f] | ||
+ | GCC Developer Liteの詳細については[[こちら>GCC Developer Lite]]。~ | ||
+ | フルインストールないしATmega32で使用を選択する事で必要なコンポーネントが自動的にインストールされます。~ | ||
+ | 使用されるコンポーネントを簡単に示します。 | ||
+ | -''[[GCC Developer Lite>GCC Developer Lite#GCCDevL]]'' | ||
+ | ~ソースプログラムを編集するためのテキストエディタとその他のツールを起動するためのランチャ機能を有する。 | ||
+ | -''[[SIMPLE TERM>GCC Developer Lite#STERM]]'' | ||
+ | ~汎用シリアルターミナル。簡易的なTLENETクライアントとしても機能する。~ | ||
+ | USB等で提供されるCOMポートの動的な検出と、COMポートを使用する弊社ツールとの排他制御機能を持つ。 | ||
+ | -''AVRGCC'' | ||
+ | ~AVRシリーズ向けC/C++言語向けのコンパイラ。出来る限り最新のパッチを適用しているため、時に互換性を失う。 | ||
+ | |||
+ | -''ターゲットファイル'' | ||
+ | ~マイコンの内蔵ペリフェラルを定義したヘッダファイルやUARTを簡便に使うためのAPI、シリーズ毎に異なるメモリマップを定義したリンカスクリプトファイル、スタートアップルーチンを含む。基本的にコンパイル済みライブラリとしてソースとリンクして使用する。 | ||
+ | |||
+ | ****ターゲットファイル [#v3ccdc15] | ||
+ | |||
+ | |||
+ | GCC Developer Liteでは本マイコン用の設定を備えています。GCC Developer Liteのコンパイルオプションの設定リストから選択し直すだけで設定が完了します。 | ||
+ | |||
+ | #ref(GDL_CompileOption_TargetList.png) | ||
+ | |||
+ | 以下に本マイコンボードに対応した設定リストと機能を紹介します。 | ||
+ | |||
+ | -''ATmega32''~ | ||
+ | ~ビルドすると[[ブートローダ>AVR_BL]]にてマイコンのフラッシュROMへ転送するための.bin(バイナリ)ファイルが作られる。~ | ||
+ | ビルドが成功すると、STERM.exe(SIMPLE TERM)の起動を促される。 | ||
+ | |||
+ | ****SIMPLE TERMとブートローダ [#AVR_BL] | ||
+ | マイコンのフラッシュROMには出荷時に弊社オリジナルの[[ブートローダ>AVR Bootloader]]が書き込まれています。~ | ||
+ | ブートローダはISPやJTAGといったI/Fを使用せずとも、COMポートを使用してマイコンのプログラム書き換えや操作を行う事が出来ます。 | ||
+ | 転送方法などの詳細は[[こちら>AVR Bootloader]]。~ | ||
+ | ブートローダを使用して動作するプログラムが構成できる設定リストは以下の通りで、これ以外の設定リストで構成されたプログラムをブートローダで転送しても正常動作しません。~ | ||
+ | -ATmega32 | ||
+ | |||
+ | マイコンボードは出荷時に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%) | ||
+ | |||
+ | 本機能により、手動で間違ったファイルを選択して転送してしまったり、転送不可能な状態で転送をしてしまうといったミスを軽減する事ができます。 | ||
+ | |||
+ | ***ATmega32用ライブラリ [#xb9a61ea] | ||
+ | [[GCC Developer Lite>GCC Developer Lite]]では1つのソースプログラムのみを対象とするため、機能別にソースを分割して編集やコンパイルするといった使い方は出来ません(完全にできないという訳でもありません)。だからと言って全ての機能を一つのソースに記述する事は、プログラムの見通しが悪くなりバグの温床になりかねません。~ | ||
+ | そこで、複数のソースに分割する事無くある程度のソースプログラムサイズでコーディングするために、頻繁に使用されるであろう一部の機能が専用のライブラリとして提供されます。~ | ||
+ | GCC Developer Liteを標準的な環境のPCへインストールすると、「C:\Program Files\BestTech\GCC Developer Lite\TARGET\ATmega32」フォルダに必要なファイルがコピーされます。必要に応じて本フォルダを参照できますし、ユーザがソースを修正しライブラリを再構築する事も可能です。 | ||
+ | -''リンカスクリプトファイル'' | ||
+ | ~実行条件に応じたメモリの割り当てを記述したファイルです。コンパイル時にリンカが参照し、コードの最終的な配置が決定されます。~ | ||
+ | '''atmega32.x'''~ | ||
+ | -''UART API'' | ||
+ | ~作成したプログラムの動作を確認を行う際に、マイコンのシリアルポートを使用する事を推奨しています。マイコンと文字によるコミュニケーション機能を用意する事で、レジスタの値やプログラムの進捗の把握、さらにはマイコンに対してPCから指令を与えるといった使い方が出来ます。~ | ||
+ | '''rs.h''' (APIのプロトタイプ宣言を含むヘッダファイル)~ | ||
+ | '''rs~.c''' (USARTを割り込みで使用するAPIのソース群)~ | ||
+ | -''ライブラリファイル'' | ||
+ | ~各APIをコンパイルし、一つのライブラリファイルにアーカイブして提供します。~ | ||
+ | '''makelib.bat''' (APIをコンパイルし、アーカイブするバッチ)~ | ||
+ | '''libm32.a''' (makelib.batで作成されるライブラリファイル)~ | ||
+ | |||
+ | **サンプルプログラム [#ffdba0bc] |