Programowanie ATmega8A oraz ATmega328P za pomocą Arduino
Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino
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.
Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino
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.
Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino
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 :-).
Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino
Miało być bierze zamiast bieże. Tego ortografa walnąłem z pospiechu i emocji. Trochę wstyd.
Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino
Beginner można edytować posty.
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.
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.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ń.
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.MrLewerence pisze: Fusebity ustawiają się same za każdym razem kiedy wgrywany jest program do mikrokontrolera!!!
Po to jest plik konfiguracyjny boards.txt!!!
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.
Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino
@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.
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.
Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino
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
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
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.
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
Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino
@Krapi
Który fragment mojej wypowiedzi tak Cie wzburzył ?
Który fragment mojej wypowiedzi tak Cie wzburzył ?
Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino
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]
Dodam że jestem amatorem i w większości przypadków korzystam ze standardowych bibliotek.
wysłane [email protected]
Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino
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ć.
Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino
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/
LINK do stickerów : http://blog.novaeletronica.com.br/en/ad ... a-arduino/
Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino
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)
Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino
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.
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.
Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino
Nie, a powiesz jak to powinnam zrobić?
Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino
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?
A może w procku masz uszkodzony układ od USB? Dlaczego wgrywałeś bootloader?
Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino
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?
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?
Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino
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
Możesz mi wkleić z bliku board.txt wpis odnośnie arduino micro? A konkretnie odnośnie tego bootloadera, który wgrywasz
Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino
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/
https://github.com/sleemanj/optiboot/bl ... /README.md
https://www.reddit.com/r/arduino/commen ... _the_full/
Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino
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
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
Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino
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
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
Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino
Tak nowa atmega Czekam na wieczor .
pozdr
pozdr
Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino
W linii komend avrdude trzeba dodac -B 6 aby zmniejszyc predkosc SCK.
Pozdr
Pozdr
Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino
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.
Swoją drogą, nie masz aktualnej wersji firmware'u do USBASP. Ale to nieistotne.
Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino
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.
Ale autor podał za mało szczegółów, żeby się domyślić. Więc bez tego ciężko będzie pomóc.