回路。
AVRに書き込むためには、マイコンに電源供給が必要らしい。
書き込みケーブルでやってくれたらいいのに。
おかげで電源がない!
と思ったけど、そうだ、Arduinoを使おう!
という訳で、わけわからんことになった。
Arduino素直に使えよ。
とかいわれそう。
という訳で、こんな感じ。
かおす!
Arduino Uno のすぐ横に乗ってるブレッドボードには別の回路乗ってるし。
参考は上だけ。
LEDの回路はいろいろネットをうろうろしたらわかるけど、回路図もかける用になっときたいなと思うから、いつかEagleの使い方をマスターしたい。
めんどくさいから今はしないけど、次する。
メモとして、使ったのは、
AVR:ATmega168P
ライタ:AVRISPmkII
抵抗:47Ω+100Ω=147Ω(直列)
LED:3mm赤色LED(20mAのとき順方向電圧2Vとかのやつ)
ジャンパ
Arduino(電源としてのみ)
ライタのピンの配置をメモ。
1.edit a Makefile
Makefileを編集する。
DEVICE = atmega8
CLOCK = 8000000
PROGRAMMER = #-c stk500v2 -P avrdoper
OBJECTS = main.o
FUSES = -U hfuse:w:0xd9:m -U lfuse:w:0x24:m
がデフォルトなので、次のように書き換える。
DEVICE = atmega168p
CLOCK = 8000000
PROGRAMMER = -c avrispmkII -P usb
OBJECTS = main.o
FUSES = -U lfuse:w:0x62:m -U hfuse:w:0xdf:m -U efuse:w:0xf9:m
そして、保存。
2.書き込み。
プログラムは前回ので大丈夫と思う。
AVRISPmk2は、つないだUSBポートの指定とかいらないみたい。
Arduino Unoでは必要だったから、いるのかとおもったら、いらなかった。
勝手にやってくれるのかな?
ライタをPCにつないで、マイコンの電源を入れたら(僕の場合はArduinoに電源供給したら)、AVRライタのLEDが緑色に点灯する。
そうなったら書き込みOKの合図。
Xcode でRunボタンを押す。
ちなみに、make+flashでは、ライタをつながない状態では"Build failed"が出て、書き込めなかった。なんかよくわからんエラーが出た。←ここで時間食った(泣)
とりあえずマイコンとつないだ状態(書き込み可能だよってLEDのランプがついてる状態)でRunを押すこと。
3.light the LED!
LED点灯!ちょっと達成感に浸ったよ。
チカチカさせてみた。
/* Name: main.c
* Author: chuchulabo
* Copyright: <insert your copyright message here>
* License: <insert your license reference here>
*/
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
//initialoize
DDRB = 0b11111111;
PORTB = 0;
//DDRB = 0b00000001; //set outputPin0 of PORTD
PORTB = 0b00000001; //set HIGH Pin0 of PORTD
/* insert your hardware initialization here */
for(;;){
/* insert your main loop code here */
PORTB = 0b00000001; //set HIGH Pin0 of PORTD
_delay_ms(100);
PORTB = 0b00000000; //set LOW Pin0 of PORTD
_delay_ms(100);
}
return 0; /* never reached */
}
1秒ごとにLEDがチカチカする。
ちなみに、電源とAVRライタ両方ともつながってないとプログラム走らないっぽい。
どっちか片方ではLEDつかなかったし。
終了!
なんかエラー出たり、これだけでいろいろあった。
次は、、、アナログ値を読んでウンタラカンタラしたいかな。
Eagle の勉強もする。
章タイトル英語でかいてみたけど、なんかいろいろ間違ってる気がする。
まあいいや。