Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Zbiór tutoriali związanych z Arduino.
ODPOWIEDZ
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, 21:09

Czytając atmelowską kartę katalogową ATmegi328 można znaleźć ustawienia domyślne wszystkich bitów w rejestrach lock, fuse. Z tych domyślnych ustawień, które podaje producent wynika jasno, ze całkowicie surowy 328 opuszczając linię produkcyjną nie wymaga odblokowywania czegokolwiek. Dopiero błędne ingerencje użytkownika w rejestry konfiguracyjne mogą zablokować zegar systemowy, SPI, spowodować ciągłe niepożądane resetowanie Watchdogiem itd...Własnie dlatego szukam rozwiązania problemu gdzie indziej.

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


stiven
Złota rączka
Posty: 1598
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:42

Nie powiem Ci z czego to wynika, bo nie wiem, ale programując z arduino ide jeśli nie zmieni się tych fabrycznych fusebitów, to właśnie jest taka sytuacja.
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, 21:47

Inspiracją dla moich działań bez bootloadera i bez ingerencji w fuse/lock bity jest ksiązka Elliota Williamsa "Programowanie układów AVR dla praktyków". Autor proponuje używanie Arduino tylko jako programatora dla zewnętrznych układów AVR, które zaleca programować wyłącznie jezykiem C bez Arduinowych ulepszeń. Do mnie to przemawia i jego argumenty mają sens. Takie podejście daje znacznie większe możliwości (i elastyczność) w porównaniu do samego Arduino, które nas znacznie ogranicza. I stąd się bieże mój upór pomimo wyboistej drogi :-).
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, 21:49

Miało być bierze zamiast bieże. Tego ortografa walnąłem z pospiechu i emocji. Trochę wstyd.
stiven
Złota rączka
Posty: 1598
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: stiven » 15 lut 2016, 22:19

Beginner można edytować posty.
Beginner pisze:Autor proponuje używanie Arduino tylko jako programatora dla zewnętrznych układów AVR, które zaleca programować wyłącznie jezykiem C bez Arduinowych ulepszeń.
Po pierwsze nie wgrałeś programu w czystym C, tylko właśnie z arduino ide. Chyba skompilowałby się kod w czystym C, ale arduinowa funkcja setup i pętla loop muszą być i arduino ide od siebie dużo też dodaje do kodu. Po drugie nie rozumiem po co płytkę arduino uzywać jako programator, dla mnie to jest bez sensu, skoro są inne, dużo wygodniejsze i tańsze programatory. A po za tym samo arduino można programować w czystym C, nie trzeba używać arduino ide.
MrLewerence pisze: Fusebity ustawiają się same za każdym razem kiedy wgrywany jest program do mikrokontrolera!!!
Po to jest plik konfiguracyjny boards.txt!!!
Jesteś pewien, że tak to jest robione? Jest plik boards.txt, no ale wydaje mi się, że ustawienia fusebitów z tego pliku są wgrywane tylko przy wgrywaniu bootloadera.

EDIT
MrLewerence zrobię prosty test, mam swoją płytkę z atmegą328 bez kwarcu. Ustawie w arduino ide jako płytkę atmegę328 z kwarcem 16Mhz i program po wgraniu teoretycznie nie powinien działać, bo nie ma zewnętrznego kwarcu. I nie będę mógł nic zrobić potem, dopóki nie połączę tego kwarcu.

EDIT2
Tak jak napisałem tak zrobiłem i program działał, mogłem potem też ponownie wgrać program. A program mam dosyć skomplikowany, z timerem, z zegarem rtc i czas wyświetlany jest na wyświetlaczach led z wykorzystaniem rejestrów przesuwnych, nie jakiś prosty blink. Więc na pewno fusebity nie są ustawiane w momencie wgrywania programu, jedynie w czasie wgrywania bootloadera.
Beginner
Młodszy majsterkowicz
Posty: 12
Rejestracja: 13 lut 2016, 22:20

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Beginner » 16 lut 2016, 21:21

@MrLewerence
Dzięki za rady, które są (i były) dla mnie oczywiste. Zgadzam się z większością rad i uwag. Ja też powyżej (wcześniej) pisałem, że według mnie bootloader nie jest niezbędny w moim zastosowaniu. Jeżeli chodzi bezproblemowe zasilanie Arduino, to oczywiście bateria może być, ale stwierdzenie, że zasilacz nie, jest średnio słuszne, bo to zależy jaki zasilacz. To końcowe podsumowanie, że „Albo programowanie AVR dla praktyków, albo programowanie Arduino” , to zwyczajny objaw widzenia problemu z jednej tylko strony. Ja posiadany moduł Arduino Mega2560 wykorzystuję jako wygodny element do szybkich eksperymentów i testów z programami w języku C, oraz jako ewentualny programator AVRów. Jak widać to ostatnie zastosowanie na razie nie zostało opanowane i stwarza mi problemy. Z tych wspomnianych arduinowskich gotowców, bibliotek, sketchów i shieldów nie korzystam, bo interesują mnie inne zastosowania.
@stiven
Piszesz: nie rozumiem po co płytkę arduino uzywać jako programator, dla mnie to jest bez sensu. Wyjasnienie jest banalnie proste, bo Arduino Mega mam, a programatora nie mam. Zaprogramowany AVR zapewni mi możliwość łatwego , precyzyjnego sterowania przy pomocy softu matrycą kluczy w zasilaczu z pompą ładunkową. Taki moduł Arduino jako sterownik embeded, nie wchodzi w grę chociażby ze względu na rozmiary. Docelowo AVR, a do eksperymentów i jako programator moduł Arduino.
hertzh1
Majsterkowicz
Posty: 62
Rejestracja: 29 sty 2014, 12:23

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: hertzh1 » 16 lut 2016, 21:40

Mam duży problem chciałbym dodać płytkę do nowego arduino IDE ale niestety po dodaniu wpisu do boards.txt wywala mi błąd

Kod: Zaznacz cały

Property line '?# See: http://code.google.com/p/arduino/wiki/Platforms' in file D:\arduino-MySensors 1.4\hardware\arduino\avr\boards.txt is invalid

Błąd kompilacji.
Nawet kiedy nie korzystam z dodanej płytki
Co ciekawe sądzę, że wpis dla płytki i załączony plik jest poprawny, bo jak używam IDE 1.0.5 to wszystko działa
problemy są z 1.6.7

pytanie 2 jeżeli nie korzystam z wersji arduino instalacyjnej to czy on (Arduino IDE) nadal szuka czegoś w domyślnym katalogu instalacji i w dokumentach
Beginner
Młodszy majsterkowicz
Posty: 12
Rejestracja: 13 lut 2016, 22:20

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Beginner » 17 lut 2016, 09:00

@Krapi
Który fragment mojej wypowiedzi tak Cie wzburzył ?
Xtream
Majsterkowicz
Posty: 154
Rejestracja: 19 sty 2015, 13:42

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Xtream » 17 lut 2016, 09:22

Ja póki co używam najnowszej i w porównaniu do 1.0.6 stwierdzam że dziala 2x szybciej. Kompilowanie albo wykorzystuje GPU albo zaczęło w pełni korzystać z procesora. Nie mniej jednak problemów z bibliotekami nie zaobserwowałem.
Dodam że jestem amatorem i w większości przypadków korzystam ze standardowych bibliotek.

wysłane [email protected]
hertzh1
Majsterkowicz
Posty: 62
Rejestracja: 29 sty 2014, 12:23

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: hertzh1 » 3 mar 2016, 11:23

Gdyby nie problemy z biblioteką MySensors w Arduino IDE 1.0.5, to wcale bym się nie bawił w wersje wyższe, ale właśnie przez tą bibliotekę i jej wersję 1.5.3 musiałem zainstalować arduino 1.6.7. Obecnie mam na kompie dwie wersje arduino 1.6.7 w której jakieś dziwne płytki gołe procesory itp. wgrywa się podając link do odpowiednich stron, oraz dwie wersje atduino 1.0.5 bo jedną normalną, a drugą która obsługuje specjalną wersję którejś biblioteki realizującą funkcję ping. Wkurza mnie to, że nie można tego jakoś ogarnąć. Tak więc w IDE 1.0.5 bez problemu dodaje się i modyfikuje bootloadery i fusy, natomiast w 1.6.7 trzeba się mocno nakombinować.
Awatar użytkownika
arturkmat
Młodszy majsterkowicz
Posty: 39
Rejestracja: 15 lis 2015, 17:00
Lokalizacja: Ostrzeszów

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: arturkmat » 17 kwie 2016, 13:14

Początkujący którzy dopiero przenoszą arduino na płytkę polecam stickery nie pomylicie się w podłączeniu ja wiem sam niedawno zaczynałem i nie mogłem trafić gdzie wpiąć arduino aby wgrać bootloadera a teraz nakleiłem sobie stickera i od razu widzę tutaj podłączę i tam i działa
LINK do stickerów : http://blog.novaeletronica.com.br/en/ad ... a-arduino/
frantz92
Młodszy majsterkowicz
Posty: 2
Rejestracja: 16 gru 2016, 13:39

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: frantz92 » 14 lut 2017, 20:54

Czy komuś udało się to z modelem ATmega328P-au (opakowanie smd)? przy normalnym PU (DIP) mi to wyszło, ten sam program, te same kroki wykonuje w przypadku modelu smd i wyskakuje błąd "Yikes!...", a podłączenie na 100% jest poprawne (godziny sprawdzania miernikiem)
kaska123
Młodszy majsterkowicz
Posty: 2
Rejestracja: 19 maja 2017, 15:45

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: kaska123 » 19 maja 2017, 15:53

Pomóżcie proszę, posiłkowałam się waszą dyskusją oraz tematami pod podanymi przez Was linkami, ale to na nic :(
Muszę zaprogramować Atmegę 8a za pomocą Arduino Uno - Arduino jest sprawne, bo na nim samym mogę wypalić program np. blink i jest ok.
Atmegę mam na odrębnej płytce wg standardowego schematu uruchomieniowego atmegi.
Atmegę i Arduino łączę wg tego schematu: http://arduino.cc/en/uploads/Tutorial/S ... ardAVR.png
do atmegi zamiast 8MHz tak jak na schemacie dolutowałam 16MHz (czyli taki sam kwarc jak na Arduino), w pliku boards.txt dopisałam to:
atmega8a.upload.maximum_size=7168
atmega8a.upload.using=arduino:arduinoisp
atmega8a.bootloader.low_fuses=0xff
atmega8a.bootloader.high_fuses=0xc4
atmega8a.bootloader.path=atmega
atmega8a.bootloader.file=ATmegaBOOT_8.hex
atmega8a.bootloader.unlock_bits=0x3F
atmega8a.build.mcu=atmega8
atmega8a.build.f_cpu=16000000L
atmega8a.build.core=arduino
atmega8a.build.variant=standard

Sprawdzałam połączenia elementów na płytce 100 razy, wymieniłam Atmegę, zawsze mam ten sam błąd przy wypalaniu bootloadera: avrdude: stk500_getsync(): not in sync: resp=0x00

Zaznaczam port, płytkę atmega8a 16Mhz, programator Arduino as ISP.

Nie pomaga wciskanie resetu.
Macie może jakieś pomysły, jak pokonać ten błąd?
Arduino IDE mam 1.0.5.
kaska123
Młodszy majsterkowicz
Posty: 2
Rejestracja: 19 maja 2017, 15:45

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: kaska123 » 21 maja 2017, 10:31

Nie, a powiesz jak to powinnam zrobić?
Awatar użytkownika
Marhef
Złota rączka
Posty: 1190
Rejestracja: 18 lis 2011, 02:18

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Marhef » 22 maja 2017, 08:51

A bootloader wgrałeś dla tej konkretnie płytki? Z tego, co widzę na schemacie, w tej wersji arduino nie ma dodatkowego scalaka do komunikacji, więc i bootloader musi być inny niż dla, na przykład, arduino uno.
A może w procku masz uszkodzony układ od USB? Dlaczego wgrywałeś bootloader?
Awatar użytkownika
Marhef
Złota rączka
Posty: 1190
Rejestracja: 18 lis 2011, 02:18

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Marhef » 22 maja 2017, 13:24

Wiem, że to może być głupie, ale spróbuj wgrać bootloader dla Leonardo. Powinno zadziałać, w końcu kwarc ten sam ;)
To, o czym piszę, niekoniecznie zadziała. Nie mam żadnej z tych wersji arduino. Więc posiłkuję się tylko dokumentacją ze strony producenta.

Jeszcze jedno przyszło mi do głowy. Jaką masz wersję arduinoIDE?
Awatar użytkownika
Marhef
Złota rączka
Posty: 1190
Rejestracja: 18 lis 2011, 02:18

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Marhef » 22 maja 2017, 21:04

8MHz?! Na schemacie na stronie arduino.cc jest 16... może tu jest problem z bootloaderem.
Możesz mi wkleić z bliku board.txt wpis odnośnie arduino micro? A konkretnie odnośnie tego bootloadera, który wgrywasz
jaco
Młodszy majsterkowicz
Posty: 1
Rejestracja: 15 mar 2017, 13:18

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: jaco » 10 paź 2017, 12:51

Najlepsze rozwiązanie na programowanie ATmega8 / 48/88/168/328 przy 1, 8 i 16 MHz za pomocą Arduino
https://github.com/sleemanj/optiboot/bl ... /README.md
https://www.reddit.com/r/arduino/commen ... _the_full/
Wrczester
Młodszy majsterkowicz
Posty: 5
Rejestracja: 19 lut 2018, 11:40

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Wrczester » 2 mar 2018, 14:58

Witam

Szanowni koledzy nie powiem jestem totalnie zielony ,nie jestem nerwowy , ale to

na prawdę doprowadza mnie do szewskiej pasji.
Przed próba Wypalenia bootloadera czytałem wszystkie watki odnośie tego

problemu.
Zakupiłem 2 programatory (jeden do zmiany firmware) USBasp w celu wgrania

bootloadera do Atmegi 8A,
.Kupilem 3szt Atmegi w obudowie TQFP gdyz taka kosc znajduje sie w

urzadzeniu ktore uleglo awarii.
Przeczytalem wiele wątkow zwiazanych z wypaleniem Bootloadera.
na poczatek :

1 Wgralem nowe oprogramowanie do UABasp (zassalem wer.z 2011-05-26
zainstalowalem oprogramowanie do atmegi 8)
wg eepe koncowy komunikat :AVRDUDE .exe 4700 bytes of flash written ,
Avrdude done -Successful
2 Zassalem z Internetu kilka Arduino ( 1. 0.6 , 1.0.5-r2 , 1.8.4)
do kazdego dogralem wg zlecen w pliku boards.txt , skopiowalem Bootloader do

pliku bootloader wg zalecenia .
Zaznaczam ,ze zarowno w Win XP , jak tez w Win 7 mam dograne wszystkie

sterowniki- Systemy widza programator
W kazdum Arduino zaznaczone podczas proby wypalania Bootloadera
programator USBasp, plytka [email protected] i co w kazdym systemie
denerwujacy komunikat :

avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: programm enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
I co mozna zrobic z tym fantem?
Prosba do osob ktore poradzily sobi z tym problemem
Awatar użytkownika
Marhef
Złota rączka
Posty: 1190
Rejestracja: 18 lis 2011, 02:18

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Marhef » 2 mar 2018, 15:10

Kolego, nowa atmega? Ewidentnie masz problem z podłączeniem się do niej.
Z tego, co się orientuję, problem leży po stronie prędkości programatora - nowa atmega taktowana jest 1 MHz, a to trochę za wolno.
Jeśli chcesz, mogę Ci pomóc rozwiązać problem, ale dopiero wieczorem
Wrczester
Młodszy majsterkowicz
Posty: 5
Rejestracja: 19 lut 2018, 11:40

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Wrczester » 2 mar 2018, 15:17

Tak nowa atmega Czekam na wieczor .
pozdr
Awatar użytkownika
Slawek
Starszy majsterkowicz
Posty: 448
Rejestracja: 29 mar 2015, 15:05

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Slawek » 2 mar 2018, 15:28

W linii komend avrdude trzeba dodac -B 6 aby zmniejszyc predkosc SCK.

Pozdr
Awatar użytkownika
Marhef
Złota rączka
Posty: 1190
Rejestracja: 18 lis 2011, 02:18

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Marhef » 2 mar 2018, 16:39

Kolego Wrczester, czekając, opisz, jak dokładnie podłączasz, wstaw fragment pliku boards.txt (konkretnie ten dotyczący Twojego przypadku). Dorzuć zdjęcia, jak masz podpięte wszystko.
Swoją drogą, nie masz aktualnej wersji firmware'u do USBASP. Ale to nieistotne.
Wrczester
Młodszy majsterkowicz
Posty: 5
Rejestracja: 19 lut 2018, 11:40

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Wrczester » 2 mar 2018, 16:41

Slawek pisze:
2 mar 2018, 15:28
W linii komend avrdude trzeba dodac -B 6 aby zmniejszyc predkosc SCK.

Pozdr
Mozesz kolego cos blizej na ten temat ?
Awatar użytkownika
Marhef
Złota rączka
Posty: 1190
Rejestracja: 18 lis 2011, 02:18

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Marhef » 2 mar 2018, 20:47

No tak, w końcu faktycznie po co bootloader. Chyba, że w urządzeniu zepsutym był, to wtedy będzie konieczny.
Ale autor podał za mało szczegółów, żeby się domyślić. Więc bez tego ciężko będzie pomóc.
ODPOWIEDZ

Strony partnerskie: