Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Zbiór tutoriali związanych z Arduino.
ODPOWIEDZ
stiven
Złota rączka
Posty: 1587
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: stiven » 3 lis 2015, 21:56

To jeśli masz też ustawioną atmegę328 w płytkach i jesteś pewien, że masz poprawne połączenia, to ja już nic więcej nic nie wymyślę. Na pewno nie możesz wgrywać żadnego programu do atmegi, zanim nie wgrasz poprawnie bootloadera, bo wgrywając program zablokujesz atmegę. Ja właściwie nigdy przez arduino nie wgrywałem, tylko przez usbasp.

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


Cheedar
Młodszy majsterkowicz
Posty: 4
Rejestracja: 22 sty 2016, 03:36

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Cheedar » 22 sty 2016, 03:43

Witam serdecznie,
Chciałbym zaprogramować ATmege328P przez USBasp. Wydaje mi się że wszystko podpiąłem właściwie, bootloadera z tej strony pobrałem i rozpakowałem oraz dodałem ostatnie linijki wpisu w "boards.txt", jednak podczas próby wypalenia bootloadera wyskakuje mi komunikat:

Arduino:1.6.7 (Windows 8.1), Płytka:"ATmega328P @ 8 MHz"
Błąd przy wgrywaniu bootloadera: brak 'bootloader.tool' parametru konfiguracji

Być może jest to kwestia tamtego kodu w notatniku. Mógłby ktoś coś mi poradzić? Ewentualnie podesłać Wasz plik "boards.txt"?
Z góry dzięki i pozdrawiam ;)
stiven
Złota rączka
Posty: 1587
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: stiven » 22 sty 2016, 09:35

To nie jest napisane, ale to musi być wersja 1.0.5 arduino ide, na nowszych właśnie jest ten błąd przy wgrywaniu bootloadera. Jak już się wgra bootloader z wersji 1.0.5, to można wgrywać programy nowszym arduino ide, ale i tak lepiej mieć 1.0.5, bo część bibliotek z internetu nie działa na nowszych wersjach.
sok73
Młodszy majsterkowicz
Posty: 9
Rejestracja: 20 lis 2015, 16:39

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: sok73 » 22 sty 2016, 10:48

Ja nie tak dawno wgrywałam bootloader na Atmege8 przez USBasp i Arduino IDE 1.0.5 i bez problemów za pierwszym razem zaskoczyło. I też na podstawie tego poradnika.

Dodam jeszcze, że Atmega taktowana 8Mhz z wewnętrznego oscylatora, reset podciągnięty rezystorem 10k do VCC plus 3 kondensatory filtrujące i dławik 10uH. Zobacz zalecane podłączenie Atmegi.
Cheedar
Młodszy majsterkowicz
Posty: 4
Rejestracja: 22 sty 2016, 03:36

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Cheedar » 22 sty 2016, 22:46

Zrobiłem wszystko od początku zgodnie z instrukcjami i wydawało się że programator będzie chodził pięknie, ale...
No właśnie. Ale. Komputer nie widzi tego programatora jako portu. Korzystałem ze sterowników z tej strony oraz ze strony fischl. W menadżerze urządzeń widzi go jako libusb-win32 devices\USBasp, ale ani Arduino IDE ani SinaProg nie znajdują go jako portu COM. Podczas próby wypalenia bootloadera wyskakuje błąd:
avrdude: error: could not find USB device with vid=0x16c0 pid=0x5dc vendor='fischl.de' product='USBasp'
Dodam, że korzystam z programatora barion-st.
Jest coś jeszcze co mogę zrobić?
stiven
Złota rączka
Posty: 1587
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: stiven » 23 sty 2016, 01:16

Spróbuj zainstalować sterowniki według tej instrukcji http://www.rei-labs.net/install-usbasp- ... windows-8/

Ściągnij ten program zadig i uruchom go przy połączonym usbasp. Wyżej musi być zaznaczone usbasp, a tam niżej libusb-win32 i wtedy można zainstalować sterowniki klikając na install driver.
Cheedar
Młodszy majsterkowicz
Posty: 4
Rejestracja: 22 sty 2016, 03:36

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Cheedar » 23 sty 2016, 03:25

Niestety, Zadig też nie widzi programatora. Czyżby to programator był uszkodzony?
stiven
Złota rączka
Posty: 1587
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: stiven » 23 sty 2016, 12:06

Jakiego masz windowsa? Może odinstaluj w menedżerze urządzeń sterownik i spróbuj jeszcze raz.
Cheedar
Młodszy majsterkowicz
Posty: 4
Rejestracja: 22 sty 2016, 03:36

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Cheedar » 29 sty 2016, 23:56

Win8.1 64. Próbowałem odinstalować i zainstalować sterowniki już z 20 razy... Nie mam już nawet pomysłów co może być nie tak :P
Beginner
Młodszy majsterkowicz
Posty: 12
Rejestracja: 13 lut 2016, 22:20

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Beginner » 13 lut 2016, 22:43

Jako zupełnie zielony początkujący usiłuję zaprogramować ATmega328 stosując jako programator Arduino Mega 2560.
Po prawidłowym połączeniu zasilania, masy, MISO, MOSI, SCK i RESET wszystkie podejmowane próby wgrania prostego programu kończą się wyświetlenie takiego raportu:
Using Port : COM3
Using Programmer : stk500v1
Overriding Baud Rate : 19200
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x03
..............................................................................................
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x03
avrdude done. Thank you.
Problem z wgrywaniem na płyte.

O czym to świadczy, gdzie tkwi błąd i jak to przeskoczyć ?
Z góry dziękuję za zainteresowanie i za pomoc.
Xtream
Majsterkowicz
Posty: 155
Rejestracja: 19 sty 2015, 13:42

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Xtream » 14 lut 2016, 12:54

W poniedziałek zerknie na swoje nano. Z tego co pamiętam na nogę reset trzeba dać kondensator. Ale nie pamiętam jaki i czy pod + czy -.
Programując z z wewnętrznym oscylatorem czy z kwarcem?

wysłane [email protected]
stiven
Złota rączka
Posty: 1587
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: stiven » 14 lut 2016, 13:32

Obrazek
Kondensator 1uF.
Beginner
Młodszy majsterkowicz
Posty: 12
Rejestracja: 13 lut 2016, 22:20

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Beginner » 14 lut 2016, 22:40

Xtream, stiven wielkie dzięki za zainteresowanie i próbę pomocy. Niestety na razie sukcesów brak. Przerobiłem różne opcje tzn. z oscylatorem wewnętrznym jak również podłączając zewnętrzny rezonator kwarcowy z pojemnościami (2x22pF) tak jak zaleca Atmel w karcie katalogowej. Również sugerowana pojemność 1uF w obwodzie resetu niczego nie zmienia. Sprawdziłem ciągłość wszystkich połączeń i przerw nie ma. Co ciekawe po całkowitym odłączeniu płytki z programowanym ATmega328 od programatora czyli od Arduino Mega2560 raport jest dokładnie identyczny, tak jak gdyby Arduino Mega2560 (programator) nie "widział" płytki z układem, który chcę zaprogramować. Za wszelkie pomysły i sugestie rozwiązania problemu będę bardzo wdzięczny.
stiven
Złota rączka
Posty: 1587
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: stiven » 14 lut 2016, 22:52

Teraz zobaczyłem, że z treści błędów widać, że nie ustawiłeś programatora na Arduino as ISP. I pamiętaj, że zanim będziesz mógł wgrywać programy na atmegę, to musisz wgrać bootloader (w celu ustawienia fusebitów).
Xtream
Majsterkowicz
Posty: 155
Rejestracja: 19 sty 2015, 13:42

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Xtream » 14 lut 2016, 22:57

Na swoją obronę powiem że ja osobiście wolę wyciągnąć atmegę z uno i tam programować. Zdecydowanie bezpieczniej i mniej problemów.

wysłane [email protected]
Beginner
Młodszy majsterkowicz
Posty: 12
Rejestracja: 13 lut 2016, 22:20

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Beginner » 15 lut 2016, 09:02

1.Niestety wciąż nie ma postępu, sukcesów brak.
2.Przetestowałem sprawność Arduino Mega2560, działa prawidłowo. Uruchamiane szkice funkcjonują bez zastrzeżeń.
3.Od początku tych zmagań za każdym razem ustawiam w menu Narzędzia: > Programator: Arduino as ISP.
4.Według mnie wcale nie muszę wgrywać bootladera. Wgrywanie zmniejsza mi tylko dostepną pamięć, a do szeregowego programowania programatorem (ArduinoMega2560) wcale nie jest niezbędne. W fabrycznie nowym, nieużywanym ATMega328 fuse bity pozostawiam bez zmian.
5.Xtream masz racje, ale twoja metoda polegająca na wyjmowaniu oryginalnego Mega328 z podstawki ma poważne ograniczenia, może być stosowana tylko do 328 i nie jest możliwa w Arduino Mega2560 gdzie kontroler wlutowany jest do modułu. Poza tym chcę jednak przezwyciężyć te problemy, bo używanie Mega2560 jako programatora i pisanie programów w C z wykorzystaniem platformy IDE Arduino jest bardzo wygodne dla wszystkich atmeli AVR, nie tylko 328.
6.Na razie dopóki starczy mi wytrwałości drążę temat i nie pękam. Na wszystkie pomysły i propozycje czekam z niecierpliwością.
Xtream
Majsterkowicz
Posty: 155
Rejestracja: 19 sty 2015, 13:42

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Xtream » 15 lut 2016, 09:32

1. W uno nie ma konieczności programowania jedynie 328.
2. Bootloader jest "niezbędny".
3. Twoje mega ma bootloadera a pewnie atmega nie - tu pewnie jest problem.
4. W mega musi być program arduinoISP.
5. Wgrywasz zaznaczając opcję arduino as ISP.

Jeżeli którykolwiek z punktów pominąłeś, error na końcu jest nieunikniony (pomijam możliwość wadliwego połączenia z atmegą).

wysłane [email protected]
Beginner
Młodszy majsterkowicz
Posty: 12
Rejestracja: 13 lut 2016, 22:20

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Beginner » 15 lut 2016, 10:22

@Xtream
1.Pisząc, że w Uno można programować tylko 328 miałem na myśli, ze trudno w tę zwolnioną podstawkę wkładać układy w innych obudowach.
2.Zainstalowany bootloader daje nam pewne możliwości, których brak bez bootloadera, ale nie jest on niezbędny dla wgrania i funkcjonowania samego programu docelowego. Dlatego napisałem, ze nie jest niezbędny i jeszcze raz to powtarzam.
5. Wcześniej napisałem, że ustawiam zawsze menu Narzędzia: > Programator: Arduino as ISP.
Beginner
Młodszy majsterkowicz
Posty: 12
Rejestracja: 13 lut 2016, 22:20

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Beginner » 15 lut 2016, 10:38

Jako uzupełnienie moich powyższych uwag na temat bootloadera, który nie jest konieczny pozwolę sobie zacytować fragment: " What's a bootloader ?

Microcontrollers are usually programmed through a programmer unless you have a piece of firmware in your microcontroller that allows installing new firmware using an external programmer. This is called a bootloader.


Not using a bootloader

If you want to use the full program space (flash) of the chip or avoid the bootloader delay, you can burn your sketches using an external programmer. "

Cytat został zaczerpnięty ze strony Arduino.cc. Tu linki nie są dopuszczalne, więc wpisz w Googlach: Arduino-Bootloader i łatwo trafisz na całość i źródło cytatu. pozdrawiam :-) !
Xtream
Majsterkowicz
Posty: 155
Rejestracja: 19 sty 2015, 13:42

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Xtream » 15 lut 2016, 10:56

Jeżeli chcesz kombinować to proszę bardzo. Ja się nie uczyłem metody bez bootloadera bo uważam ze 2 kb przestrzeni to niespecjalnie dużo dla projektów (w atmega 8 pewnie bootloader waży mniej). Więc zamiast kombinować zacznij używać arduino :)

wysłane [email protected]
stiven
Złota rączka
Posty: 1587
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: stiven » 15 lut 2016, 12:09

Xtream bootloader jest potrzebny, żeby wgrywać programy taką metodą jaka jest na płytce arduino, czyli przejściówką przez serial/uart (piny 0 i 1 + reset). Używając programatora (a używając arduino, arduino jest programatorem - ISP) bootloader nie jest do niczego potrzebny. Kiedy wgrywa się program z wykorzystaniem bootloadera (czyli przez uart), to bootloader pozostaje w pamięci, program jest wgrywany za bootloaderem. Kiedy wgrywa się program programatorem, to cała pamięć na program jest zastępowana wgrywanym programem, czyli po wgraniu bootloadera już przy pierwszym wgrywaniu programu, bootloader jest nadpisywany i odzyskiwana jest ta pamięć, więc nie traci się tych 2kB. Ale przy wgrywaniu bootloadera ustawiają się również odpowiednio fusebity i one pozostają tak ustawione dopóki znowu się nie zmieni ich ustawień. Z tego co ja wiem, to zawsze trzeba zmienić ustawienia fabryczne fusebitów, bo wgranie programu przy fabrycznie ustawionych spowoduje zablokowanie atmegi i będzie do wyrzucenia. A jeśli jednak nie trzeba i rzeczywiście atmega działa, to i tak fabrycznie jest ustawione taktowanie 1 MHz, gdzie można ustawić maksymalnie 8 MHz przy wewnętrznym taktowaniu, czyli 8 razy szysciej.

Z tym źle ustawionym programatorem, to jednak źle napisałem, to tak powinno być własnie w treści błędu

Kod: Zaznacz cały

  Using Programmer : stk500v1
Wygląda na to, że arduino mega, żeby działało jako ISP, musi mieć wgrany nieco inny program niż jest w przykładach w aruino ide, tutaj jest ten program: https://github.com/rsbohn/ArduinoISP/bl ... inoISP.ino

A znalazłem linika tutaj http://playground.arduino.cc/Code/MegaISP
Beginner
Młodszy majsterkowicz
Posty: 12
Rejestracja: 13 lut 2016, 22:20

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Beginner » 15 lut 2016, 20:06

Po kolejnych eksperymentach skutki nadal mizerne, ale nastąpiła pewna zmiana (być może jest to postęp) i teraz raport jest taki:
avrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
Zgodnie z zaleceniem ponownie sprawdziłem wszystkie połączenia (prawidłowe, bez zarzutu), ale nie rozumiem tej wskazówki aby zastosować -F (???). Co to oznacza ? Jak to rozumieć ?
stiven
Złota rączka
Posty: 1587
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: stiven » 15 lut 2016, 20:25

Wygląda na to, że atmega się zablokowała. Jesteś pewien, że nie trzeba tych fusebitów ustawiać? Jak to robiłeś wcześniej, czym programowałeś?
Beginner
Młodszy majsterkowicz
Posty: 12
Rejestracja: 13 lut 2016, 22:20

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Beginner » 15 lut 2016, 20:39

Czy wcześniejsze próby jej nie zaszkodziły tego nie wiem. Wszystkie wcześniejsze eksperymenty robione były na tym samym egzemplarzu. Mam jeszcze jeden i mógłbym go wsadzić do podstawki, ale wcześniej chciałbym działać na tym, aby przez własną niewiedzę nie spowodować tego, że oba układy będą wątpliwe. W ustawianie żadnych bitów rejestrów konfiguracyjnych nie wprowadzałem zmian. Najpierw chciałbym dokładnie zrozumieć sens tego cytowanego raportu. A powracając do mojego poprzedniego pytania, to co oznacza wskazówka, aby zastosować -F ?
stiven
Złota rączka
Posty: 1587
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: stiven » 15 lut 2016, 21:03

Użycie tego -F nie ma sensu, bo i tak się to nie uda (żeby użyć to -F, to byś musiał skorzystać bezpośrednio z tego programu avrdude do wgrania programu komendami w konsoli windowsa, arduino ide to jest tylko edytor, a do wgrywania programów korzysta z avrdude). Ta wcześniejsza część błędu oznacza, że jest problem z fusebitami, z tego co można wyczytać w internecie.
Czyli jednak nie programowałeś do tej pory żadnej atmegi, to czemu chcesz to zrobić po swojemu i przyjąć, że ustawienie fusebitów nie jest potrzebne zanim będziesz mógł wgrywać programy? Ja napisałem wcześniej, że wgranie programu bez ustawienia wcześniej fusebitów (na przykład wgrywając bootloader) spowoduje zablokowanie atmegi.

Tylko teraz jak już masz zablokowaną atmegę, to bootloadera już nie wgrasz przez arduino ide, możesz próbowac ustawić właściwe fusebity płatną wersją tego programu, o którym jest napisane w tym poście (na darmowej wersji można ustawiać fusebity tylko dla atmegi8) http://majsterkowo.pl/forum/programowan ... tml#p20579 ale i tak nie ma gwarancji, że to się uda.
ODPOWIEDZ

Strony partnerskie: