Koledzy, powiedzmy że mam arduino, powiedzmy że pro mini (tak na prawdę to gotowy układ z atmegą, bez wbudowanego ftdi - korzystam z zewnętrznego, atmega328p z kwarcem 16mhz, więc w zasadzie pro mini).
Za pomocą programatora ISP wgrałem bootloader
ATmegaBOOT_168_atmega328.hex
fusebity ustawione zgodnie z plikiem boards.txt
tj
low_fuses=0xFF
high_fuses=0xDA
extended_fuses=0x05
lock - przed wgraniem bootloadera 3F, a wgraniu bootloadera 0F
Bootloader fajnie się załadował. W arduino zrobiłem sobie prosty programik migający na przemian diodami, żeby zobaczyć czy bootloader działa:
Kod:
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(2, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(3, LOW); // turn the LED off by making the voltage LOW
delay(2000); // wait for a second
digitalWrite(2, LOW); // turn the LED off by making the voltage LOW
digitalWrite(3, HIGH); // turn the LED off by making the voltage LOW
delay(2000); // wait for a second
}
Program za pomocą arduino ide ładnie się ładuje. Po podaniu zasilania diody ładnie się zachowują - zgodnie z programem migają na przemian co 2 sekundy.
Natomiast problem jest później. Zmieniam cokolwiek w programie i niestety dostaję komnikat jak poniżej:
Kod:
Sketch uses 976 bytes (3%) of program storage space. Maximum is 30,720 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2,039 bytes for local variables. Maximum is 2,048 bytes.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x8a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x8a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x8a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x8a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x8a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x8a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x8a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x8a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x8a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x8a
Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.
Do układu podłączam jedynie Tx, Rx, GND, Vcc.
Ratunku?
EDITPonadto dodam, że po podłączeniu zasilania do układu raz błyska dioda "L" podłączona do pinu D13, co by wskazywało, że bootloader jest na swoim miejscu
https://www.arduino.cc/en/guide/troubleshooting napisał(a):
Bootloader
Make sure there's a bootloader burned on your Arduino board. To check, reset the board. The built-in L LED (which is connected to pin 13) should blink. If it doesn't, there may not be a bootloader on your board.