avr/最初の一歩
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[FrontPage]]
2008/10/09 からのアクセス回数 &counter;
#contents
SunSPOTのeDemoには、ATMELのATmega88が使われていて、拡張ボ...
AVRを勉強することにしました。
ちょうど、「エレキジャックNo. 8」にTiny2313が付録について...
また、「インターネット・ガジェット設計」という本が結構お...
ソフトの開発でも同じですが、
- 頭で理解するのではなく、自分の手を使って実際に最初から...
- 常に複数の対応を準備しておき、場合に応じて対処すること
が大切です。
** ライターを用意する [#ied0ea6a]
ちょうど、EZ-USBが手元にあり、チップ抵抗の半田付けを練習...
[[EZ-USBを使用した AVR ISP ライター>http:/...
送られてきた部品は、
#ref(1.jpg);
です。
たった4個のチップ抵抗の半田付けに半日かかりました。
#ref(2.jpg);
** 開発環境の整備 [#x132a66c]
*** Windowsの環境 [#lb9792c6]
ライターがWindowsでしか動作しないので、最初はWindows 2000...
「エレキジャックNo. 8の第5章AVRマイコンを使おう」に沿って
- [[AVR Stduio>http://www.atmel.com/dyn/products/tools_ca...
- [[WinAVR>http://sourceforge.net/projects/winavr/]]
をダウンロードしました。このほかCygwinもインストールして...
ライターのソフトは、オプティマイズのページからダウンロー...
エレキジャックNo. 8の図5-6
((初心者を対象とした入門書なのに、実体配線図のLEDのKとAの...
を参考に、LEDの点灯例題を
#ref(6.jpg);
のようにブレッドボードで回路を組んで、ライターでSignature...
#pre{{
$ avrezusb.exe -rf
Detected device is ATtiny2313.
Low: 01100100
||||++++-- CKSEL[3:0] NbNI
||++-- SUT[1:0] - N
|+-- CKOUT (0:PD2VXeNbNo)
+-- CKDIV8 NbNlw
High:11-11111
|||||||+-- RSTDISBL (RESETs 1:L, 0:(PA2))
||||+++-- BODLEVEL[2:0] f[^V[gQ
|||+-- WDTON (WDT 0:ON, 1:)
||+-- SPIEN (1:ISP~, 0:ISP) Parallel
|+-- EESAVE (EEPROM 1:, 0:)
+-- DWEN (On-ChipfobO 1:, 0:L)
Ext: -------1
+-- SPMEN (SPM 1:, 0:L)
Cal: 92
}}
のように正しくTiny2313が認識されました。
avrezusbの使い方は、helpを参照してください。
#pre{{
$ avrezusb.exe -help
AVREZUSB - AVR Serial Programming tool R0.30 (C)ChaN,2004...
Modified by OPTIMIZE for EZ-USB V4.3
Write code and/or data : <hex file> [<hex file>] ...
Verify code and/or data : -v <hex file> [<hex file>] ...
Read code, data or fuse : -r{p|e|f}
Write fuse byte : -f{l|h|x}<bin>
Lock device : -l[<bin>]
Erase device : -e
Copy calibration bytes : -c
SPI control delay [-d3] : -d<n>
SUPPORTED DEVICE:
AT90S 1200,2313,2323,2333,2343,4414,4433,4434,8515,8535
ATtiny 12,13,15,22,25,26,45,85,2313
ATmega 8,16,32,48,64,88,103,128,161,162,163,165,168,169,3...
AT90CAN 128
SUPPORTED ADAPTER:
EZ-USB only.
}}
*** 純正ライターの購入 [#mcfb0d99]
Macでの開発のために、純正のAVR ISP mkIIを購入しました。
#ref(4.jpg);
WindowsのAVR Stduioで動作を確認しようとしたところ、いきなり
+ ソケットのピン配置を勘違い
+ Tiny2313を認識しない
+ プログラムが書き込めない
+ 書込後に正常に動作しない
という事態に陥りました。
原因を調べたところ、
+ AVR ISP mkII のユーザガイドには、
#ref(pin_assign.jpg);
のように書かれているので、ついケーブルの赤いラインのピン...
この図は、ライターにソケットを付けた時にボードの上からみ...
ピンです。どうようのメッセージがhttp://metrocrusader.blog...
+ EZ-USBのISPライターではライターから電源を供給していたが...
+ 回路に組み込んだままでは、プログラムが書き込めなくて、...
[[永山さん>http://cap.dcnblog.jp/]]から回路に組み込んでIS...
+ これも当たり前なのですが、うっかりライターのケーブルを...
ことが原因と分かりました。
*** USBマルチ電源 [#sa13f6b3]
ターゲットボードの電圧が、3.3Vなので、トランジスタ技術1月...
#ref(usbPower.jpg);
更に、クリスタルをセットした書き込み用のブレッドボードを...
#ref(writting.jpg);
*** Mac OSXの環境 [#a4db9613]
最初は、MacPortを使ってインストールしようとしたのですが、...
- WinAVRのマック版である[[AVR MacPack>http://www.obdev.at...
インストールはマック用のパッケージ形式になっているので、...
libusbが正しく動作するように念のため、インストール後に再...
** 動作確認 [#u9784a51]
テストプログラムには、エレキジャックNo. 8のLEDの点灯プロ...
今回は、ブザーを必要としないので、以下のようになります。
#pre{{
#include <avr/io.h>
#define F_CPU 1000000UL
#include <util/delay.h>
typedef unsigned char BYTE;
typedef unsigned int WORD;
#define bitLED1 3
#define bitLED2 4
#define LED_RED_ON PORTB |= (1<<bitLED1)
#define LED_RED_OFF PORTB &= ~(1<<bitLED1)
#define LED_BLUE_ON PORTB |= (1<<bitLED2)
#define LED_BLUE_OFF PORTB &= ~(1<<bitLED2)
#define DELAY _delay_ms(1000)
main(void) {
DDRB = (1<<bitLED1 | 1<<bitLED2);
while(1) {
LED_RED_ON;
LED_BLUE_OFF;
DELAY;
LED_RED_OFF;
LED_BLUE_ON;
DELAY;
}
}
}}
ここで、
- DDRxでxポートへのI/Oポートへの入出力を切り替えます、bit...
- PORTxでxポートへの値の設定と状態のチェックを行います。
- PINxはxポートから入力値を読み取ります。
** コメント [#ua8e5faa]
この記事は、
#vote(おもしろかった[20],そうでもない[1],わかりずらい[4])
皆様のご意見、ご希望をお待ちしております。
- 永山さんのご指摘により、ChanNさのISP対応設計のリンクを...
- ターミナルを使用したとか、なぜ書かないんでしょうか? ...
- 失礼しました。これは私の最初一歩を記録したもので、誤解...
#comment_kcaptcha
終了行:
[[FrontPage]]
2008/10/09 からのアクセス回数 &counter;
#contents
SunSPOTのeDemoには、ATMELのATmega88が使われていて、拡張ボ...
AVRを勉強することにしました。
ちょうど、「エレキジャックNo. 8」にTiny2313が付録について...
また、「インターネット・ガジェット設計」という本が結構お...
ソフトの開発でも同じですが、
- 頭で理解するのではなく、自分の手を使って実際に最初から...
- 常に複数の対応を準備しておき、場合に応じて対処すること
が大切です。
** ライターを用意する [#ied0ea6a]
ちょうど、EZ-USBが手元にあり、チップ抵抗の半田付けを練習...
[[EZ-USBを使用した AVR ISP ライター>http:/...
送られてきた部品は、
#ref(1.jpg);
です。
たった4個のチップ抵抗の半田付けに半日かかりました。
#ref(2.jpg);
** 開発環境の整備 [#x132a66c]
*** Windowsの環境 [#lb9792c6]
ライターがWindowsでしか動作しないので、最初はWindows 2000...
「エレキジャックNo. 8の第5章AVRマイコンを使おう」に沿って
- [[AVR Stduio>http://www.atmel.com/dyn/products/tools_ca...
- [[WinAVR>http://sourceforge.net/projects/winavr/]]
をダウンロードしました。このほかCygwinもインストールして...
ライターのソフトは、オプティマイズのページからダウンロー...
エレキジャックNo. 8の図5-6
((初心者を対象とした入門書なのに、実体配線図のLEDのKとAの...
を参考に、LEDの点灯例題を
#ref(6.jpg);
のようにブレッドボードで回路を組んで、ライターでSignature...
#pre{{
$ avrezusb.exe -rf
Detected device is ATtiny2313.
Low: 01100100
||||++++-- CKSEL[3:0] NbNI
||++-- SUT[1:0] - N
|+-- CKOUT (0:PD2VXeNbNo)
+-- CKDIV8 NbNlw
High:11-11111
|||||||+-- RSTDISBL (RESETs 1:L, 0:(PA2))
||||+++-- BODLEVEL[2:0] f[^V[gQ
|||+-- WDTON (WDT 0:ON, 1:)
||+-- SPIEN (1:ISP~, 0:ISP) Parallel
|+-- EESAVE (EEPROM 1:, 0:)
+-- DWEN (On-ChipfobO 1:, 0:L)
Ext: -------1
+-- SPMEN (SPM 1:, 0:L)
Cal: 92
}}
のように正しくTiny2313が認識されました。
avrezusbの使い方は、helpを参照してください。
#pre{{
$ avrezusb.exe -help
AVREZUSB - AVR Serial Programming tool R0.30 (C)ChaN,2004...
Modified by OPTIMIZE for EZ-USB V4.3
Write code and/or data : <hex file> [<hex file>] ...
Verify code and/or data : -v <hex file> [<hex file>] ...
Read code, data or fuse : -r{p|e|f}
Write fuse byte : -f{l|h|x}<bin>
Lock device : -l[<bin>]
Erase device : -e
Copy calibration bytes : -c
SPI control delay [-d3] : -d<n>
SUPPORTED DEVICE:
AT90S 1200,2313,2323,2333,2343,4414,4433,4434,8515,8535
ATtiny 12,13,15,22,25,26,45,85,2313
ATmega 8,16,32,48,64,88,103,128,161,162,163,165,168,169,3...
AT90CAN 128
SUPPORTED ADAPTER:
EZ-USB only.
}}
*** 純正ライターの購入 [#mcfb0d99]
Macでの開発のために、純正のAVR ISP mkIIを購入しました。
#ref(4.jpg);
WindowsのAVR Stduioで動作を確認しようとしたところ、いきなり
+ ソケットのピン配置を勘違い
+ Tiny2313を認識しない
+ プログラムが書き込めない
+ 書込後に正常に動作しない
という事態に陥りました。
原因を調べたところ、
+ AVR ISP mkII のユーザガイドには、
#ref(pin_assign.jpg);
のように書かれているので、ついケーブルの赤いラインのピン...
この図は、ライターにソケットを付けた時にボードの上からみ...
ピンです。どうようのメッセージがhttp://metrocrusader.blog...
+ EZ-USBのISPライターではライターから電源を供給していたが...
+ 回路に組み込んだままでは、プログラムが書き込めなくて、...
[[永山さん>http://cap.dcnblog.jp/]]から回路に組み込んでIS...
+ これも当たり前なのですが、うっかりライターのケーブルを...
ことが原因と分かりました。
*** USBマルチ電源 [#sa13f6b3]
ターゲットボードの電圧が、3.3Vなので、トランジスタ技術1月...
#ref(usbPower.jpg);
更に、クリスタルをセットした書き込み用のブレッドボードを...
#ref(writting.jpg);
*** Mac OSXの環境 [#a4db9613]
最初は、MacPortを使ってインストールしようとしたのですが、...
- WinAVRのマック版である[[AVR MacPack>http://www.obdev.at...
インストールはマック用のパッケージ形式になっているので、...
libusbが正しく動作するように念のため、インストール後に再...
** 動作確認 [#u9784a51]
テストプログラムには、エレキジャックNo. 8のLEDの点灯プロ...
今回は、ブザーを必要としないので、以下のようになります。
#pre{{
#include <avr/io.h>
#define F_CPU 1000000UL
#include <util/delay.h>
typedef unsigned char BYTE;
typedef unsigned int WORD;
#define bitLED1 3
#define bitLED2 4
#define LED_RED_ON PORTB |= (1<<bitLED1)
#define LED_RED_OFF PORTB &= ~(1<<bitLED1)
#define LED_BLUE_ON PORTB |= (1<<bitLED2)
#define LED_BLUE_OFF PORTB &= ~(1<<bitLED2)
#define DELAY _delay_ms(1000)
main(void) {
DDRB = (1<<bitLED1 | 1<<bitLED2);
while(1) {
LED_RED_ON;
LED_BLUE_OFF;
DELAY;
LED_RED_OFF;
LED_BLUE_ON;
DELAY;
}
}
}}
ここで、
- DDRxでxポートへのI/Oポートへの入出力を切り替えます、bit...
- PORTxでxポートへの値の設定と状態のチェックを行います。
- PINxはxポートから入力値を読み取ります。
** コメント [#ua8e5faa]
この記事は、
#vote(おもしろかった[20],そうでもない[1],わかりずらい[4])
皆様のご意見、ご希望をお待ちしております。
- 永山さんのご指摘により、ChanNさのISP対応設計のリンクを...
- ターミナルを使用したとか、なぜ書かないんでしょうか? ...
- 失礼しました。これは私の最初一歩を記録したもので、誤解...
#comment_kcaptcha
ページ名:
SmartDoc