[PR]当たる!無料占いで仕事鑑定:大人気!無料占い『スピリチュアルの館』




AVRマイコン工作室 2005.12.24(土)〜 コンパイラの入手からコンパイルまで
目次 1. 目的 2. マイコン 3. コンパイラの入手 3.1. 入手したインストーラーを起動します。 4. 環境の準備 4.1. makefileの編集 4.2. コマンドプロンプトの準備 5. プログラムソースの作成 6. コンパイル 7. プログラムの書き込み 8. ヒューズビットの書き込み 9. デバッグ 1. 目的 マイコン用プログラムの開発環境作り、C言語プログラム、コンパイルの方法 、さらにコンパイラーが生成したインテルHEX形式の実行データファイルをマ イクロコントローラーに書き込む迄を紹介します。 (マイコンはマイクロコントローラーの略です。) 2. マイコン アトメル社製AVRマイコン: ATtiny26L プログラム用メモリ=2Kバイト(1Kワード) SRAM=128バイト IO数=16ビット クロック=0〜8MHz (RC発振器内臓) 動作電圧=2.7V〜5.5V (電池駆動向き、外部発振素子が不要) AT90S2313 プログラム用メモリ=2Kバイト(1Kワード) SRAM=128バイト IO数=15ビット クロック=0〜10MHz 動作電圧=4.5V〜5.5V C言語コンパイラ: WinAVR AVRマイコン用のフリーのC言語コンパイラです。 3. コンパイラの入手 WinAVRのインストーラを入手します。 URL: http://sourceforge.net/projects/winavr/ 2005.07.24(日)最新版はWinAVR-20050214-install.exeでした。 このテキストは、上記バージョンでコンパイルする方法について記述していま す。 3.1. 入手したインストーラーを起動します。 インストーラーの指示に従ってください。 ここでは、インストールフォルダーをD:\WinAVRにしました。 4. 環境の準備 4.1. makefileの編集 インストーラーにより、\WinAVRの下にいくつかのフォルダーが作られます。 さらに、フォルダー \WinAVR\Myprogram\LED を新しく作成します。 \WinAVR\sampleにある3つのファイルを \WinAVR\Myprogram\LED へコピー&ペ ーストします テキストエディター(メモ帳、ノートパッド、他)で\WinAVR\Myprogram\LEDに コピーしたmakefileを開き下記の3箇所を変更します。 1) (およそ43行目) # MCU name MCU = atmega128 を MCU = attiny26 に変更します。 AT90S2313マイコンを使用する場合は MCU = at90s2313 です。 2) (およそ59行目) # Target file name (without extension). TARGET = main を TARGET = LED に変更します。 3) (およそ93行目) # List any extra directories to look for include files here. # Each directory must be seperated by a space. # Use forward slashes for directory separators. # For a directory that has spaces, enclose it in quotes. EXTRAINCDIRS = を EXTRAINCDIRS = D:/WinAVR\avr/include/avr に変更します。 上書き保存し、テキストエディターを終了します。 4.2. コマンドプロンプトの準備 Windowsの「コマンドプロンプト」をデスクトップにコピー&ペーストします 。 「コマンドプロンプト」のプロパティを開き、 【全般】タグのファイル名欄に「WinAVR」を記述します。 【ショートカット】タグの作業フォルダー欄に 「d:\WinAVR\Myprogram\LED」を記述します。 「コマンドプロンプト」のプロパティを閉じます。 5. プログラムソースの作成 ポートAのビット0に接続したLEDをオンオフさせるプログラムです。 フローチャート (開始) ↓ 内臓タイマーの初期化 ↓ ポートの初期化 ├←────────────┐ ポートAのビット0に1を出力 │ ↓ │ 0.5秒間の待ち │ ↓ │ ポートAのビット0に0を出力 │ ↓ │ 0.5秒間の待ち │ ↓ │ └─────────────┘ テキストエディターを起動します。 下記のプログラムソースリストをコピー&ペーストします。 /***************************************************** タイトル: LED 日付 : 2005/07/04 作者 : ioio 機能 : LEDを約0.5sec間隔で点滅させる。 マイコン: ATtiny26L クロック: 8 MHz (内臓RC発振器) : 1命令サイクル=1/8MHz=125nsec *****************************************************/ #include void main(void) { unsigned char count; // 遅延用カウンター // 内臓タイマーカウンターの初期化 // タイマーカウント周期=125nsec×1024=128μsec TCCR0=0x05; // 1024分周、タイマーオン TCNT0=0x00; // タイマーカウンタクリア // ポート初期化 PORTA=0x00; // ポートAの出力を全て0に設定 DDRA=0x01; // ポートAビット0を出力に設定 while (1){ // ポートAのビット0に1を出力 PORTA=0x01; // 約0.5secの待ち (=20×24.96msec) // 24.96msecの待ちを20回繰返すと約0.5secの待ちになります。 for( count = 20; count > 0; count-- ){ while( TCNT0 > 195 ); // 128μsec×195=24.96msec待ち TCNT0 = 0x00; } // ポートAのビット0に0を出力 PORTA=0x00; // 約0.5secの待ち (=20×24.96msec) for( count = 20; count > 0; count-- ){ while( TCNT0 < 195 ); // 128μsec×195=24.96msec待ち TCNT0 = 0x00; } } } ファイル名を「LED.c」として、\WinAVR\Myprogram\LEDに保存します。 6. コンパイル コマンドプロンプト「WinAVR」を起動します。 >make.exe[Enter] でコンパイルが始まります。 AVR Memory Usage: ----------------- Device: attiny26 Program: 134 bytes (6.5% Full) (.text + .data + .bootloader) Data: 0 bytes (0.0% Full) (.data + .bss + .noinit) -------- end -------- 上記のような表示が出れば、コンパイルが完了、エラーはありません。 >dir[Enter] でLED.hexファイルが生成されていることを確認できます。 注)2005.07.27 WinAVR-20050214では、makefileで MCU = at90s2313 に設定すると、上記の表 示中の Program: xxx bytes (x.x% Full) でプログラム占有率が誤って 表示されます。分母に8192バイトを用いて計算をしている為で、分母は2048バ イトが正しい値です。 詳細は、 http://sourceforge.net/tracker/?group_id=68108&atid=520074 のRequst ID 1219365 を参照してください。 7. プログラムの書き込み 実行用データのLED.hexをデバイスへ書き込みます。 STK-500など市販の書き込み器の場合はそれらのマニュアルに従ってください。 ここでは、自作の書き込み器を使用する方法について簡単に説明します。 MINI EZ-USBボード: 使用前にこのボード用の実行プログラムをロードします。 ロードし たプログラムにより様々な機能を実現する事が出来ます。 オプティマイズ製キットキットです。半田付けは購入者が行います。 http://optimize.ath.cx/mini_ezusb/top.htm 秋葉原 ITプラザで入手出来ます。 http://www.itplaza.co.jp/shop.html 書き込み器ボード: MINI EZ-USBボードとコネクタで接続します。 評価ボードへの電源オン・オフ制御用トランジスタ、マイコンリセット 用トランジスタなど数点の部品で構成しています。 書き込みケーブル: 書き込み器ボードと評価ボードを接続する6芯のケーブルです。 インサーキット書き込みを行う為に使用します。 書き込み器ボード側には、6ピンのコネクタが付いています。 評価ボード側には、ICソケットとICピン端子を上下に配置し、対応す る各ピンを半田付けした冶具ソケットが付いています。 評価ボード: 電子部品を実装し配線した回路基板です。 マイコンのマウント部分にはICソケットを実装し、書き込みケーブル の冶具ソケットのICピン端子側を装着します。 冶具ソケットのICソケット側にはマイコンを装着します。 動作用電源はUSBケーブル、6芯ケーブルを経由してPCから供給され ます。 注意:各ボードの消費電流を合計した値が、500mA以下であれば使用 可能です。 書き込みソフト: PC用:AVRWRITER Project Borland C# Builderで作成した自作ソフトです。 機能: ヒューズビットの書き込み・読み出し・表示。 フラッシュROM書き込み・読み出し・表示。 スタート、リセット、電源オフなどの評価ボード制御等の操 作を行います。 MINI EZ-USBボード用:AvrWriter Project Keil uVision2で作成した自作ソフトです。 機能: PCから受信したLED.hex等の実行データをマイコンへ書き込ん だり、マイコンから読み出したプログラムデータ等をPCに送 信します。 接続形態: ┌───┐ │ │ ┌───┐ ┌─────┐ │ │ │書き込│ │ │ │ │ USB ┌───┤み器 │ 6芯 │評価ボード│ │ │ケーブル│MINI │ボード│ケーブル│ │ │ PC ├────┤EZ-USB│ ├────┤ │ │ │ │ボード│ │ │ │ │ │ └───┤ │ │ │ │ │ │ │ │ │ │ │ └───┘ └─────┘ └───┘ 6芯ケーブルの形態: 4ピン2列のコネクタ(メス) ┌──┐ ┌─────┐← マイコンを装着します。 │GF│ └┼┼┼┼┼┘ │ED│ 6芯ケーブル ┌─────┐ ←ICソケット(20ピン) │CB├────────────┼─────┤ │A@│ └┬┬┬┬┬┘ ←ICピン端子(10ピン×2) └──┘ │││││← 評価ボードのマイコン用 半田側 ICソケットへ装着します。 コネクタの配線 ATtiny26L端子 AT90S2313端子 ---------------+----------------+------------------- @MISO 2 18 AVCC 5 20 BSCK 3 19 CMOSI 1 17 DRESET 10 1 EGND 6 10 F GGND 6 10 8. ヒューズビットの書き込み ヒューズビットは、マイコンを使用する前に1回書き込みます。 プログラムを書き込む度に書く必要はありません。 PC用書き込みソフトを用いて書き込みます。 以下の値は、ATTiny26Lを使用した時の例です。 上位:0xF7 RSTDISBL(リセット選択) =1(PB7はRESET) SPIEN(シリアルプログラミング)=0(許可) EEPROM(EEPROM保護) =1(未保護) BOOLLEVEL(検出電圧選択) =1(低電圧) BODEN(低電圧検出) =1(禁止) 下位:0xE4 PLLCK(内部クロックPLL) =1(PLL未使用) CKOPT(内部コンデンサー) =1(使用禁止) SUT0,1(起動時間選択) =2 CLKSEL0-3(クロック選択) =4(8MHz) 9. デバッグ プログラムを実行し動作の評価を行います。 動作に不具合があれば、ソースリストの問題点を修正します。 コンパイル、デバイスへの書き込み、動作評価を、問題点が解決するまで繰り 返し行います。
Topへ

[PR]看護師の好条件求人なら:看護師の転職完全サポート!安心お任せ♪