Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Zbiór tutoriali związanych z Arduino.
ODPOWIEDZ
filozof
Młodszy majsterkowicz
Posty: 23
Rejestracja: 14 lut 2013, 19:27

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: filozof » 6 mar 2013, 00:55

A ja mam pytanko: Czy programując Atmegę za pomocą arduino można będzie potem wrócić do tej funkcjonalności jaką dostajemy na starcie? :) Tzn chciałbym używać Arduino nie tylko do programowania Atmeg ale i do konstruowania prototypów układów itp. Dużo z tym zachodu? :)

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


Awatar użytkownika
Basil Fawlty
Młodszy majsterkowicz
Posty: 18
Rejestracja: 3 lut 2013, 01:30

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Basil Fawlty » 6 mar 2013, 16:09

ad Filozof: Nie ma najmniejszego problemu. Funkcjonalności programatora Arduino nabywa w dokładnie ten sam sposób w jaki staje się mrugadłem do diód tudzież robotem czy termometrem. Nie ma się co namyślać, w razie czego masz kogo poprosić o pomoc :)

Pozdrawiam i powodzenia :)
darek12
Młodszy majsterkowicz
Posty: 2
Rejestracja: 20 mar 2013, 21:28

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: darek12 » 20 mar 2013, 21:43

Witam,
Może ktoś z was wie jak wgrać bootloader dla atmega328p żeby śmigała z zewnętrznym kwarcem 16Mhz ?? Sposób z tego wątku na wgrywanie bootloadera bez kwarcu działa dla wewnętrznego oscylatora 8Mhz tylko że nie rozumiem na co jest ten wpis :
majsterkowo_atmega328p16.name=ATmega328P @ 16 MHz

majsterkowo_atmega328p16.upload.maximum_size=30720
majsterkowo_atmega328p16.upload.using=arduino:arduinoisp

majsterkowo_atmega328p16.bootloader.low_fuses=0xE2
majsterkowo_atmega328p16.bootloader.high_fuses=0xDA
majsterkowo_atmega328p16.bootloader.extended_fuses=0x05

majsterkowo_atmega328p16.bootloader.path=atmega
majsterkowo_atmega328p16.bootloader.file=ATmegaBOOT_328.hex
majsterkowo_atmega328p16.bootloader.unlock_bits=0x3F
majsterkowo_atmega328p16.bootloader.lock_bits=0x0F

majsterkowo_atmega328p16.build.mcu=atmega328p
majsterkowo_atmega328p16.build.f_cpu=16000000L
majsterkowo_atmega328p16.build.core=arduino
majsterkowo_atmega328p16.build.variant=standard

skoro jak go załaduje mikrokontroler działa źle tzn. np. funkcja delay() nieprawidłowo działa.
Dodam że ten wpis dla 16Mhz ładowałem z załaczonym kwarcem i bez do mikroprocesora.
pozdrawiam
pentos
Majsterkowicz
Posty: 119
Rejestracja: 2 sty 2013, 21:35

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: pentos » 21 mar 2013, 00:50

To jest dobre pytanie i sam jestem ciekaw odpowiedzi. Po załadowaniu standardowego blink do uC dioda mruga 2 razy wolniej niz na ustawieniu 8MHz.
darek12
Młodszy majsterkowicz
Posty: 2
Rejestracja: 20 mar 2013, 21:28

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: darek12 » 23 mar 2013, 19:41

Witam ponownie,
W końcu udało mi się wgrać na ATmege328P przez Arduino UNO R3 tego nieszczęsnego bootloadera tak aby zewnętrzny układ pracował razem z kwarcem 16MHz. Wszystkie informacje są na tej stronie:
gammon. com.au/forum/?id=11637
Schemat połączenie jest standardowy tylko są dodane 2 kondensatory 0.1 uF ale ja ich nie użyłem i wszystko śmiga jak należy. Jeszcze jedna taka moja podpowiedz do poradnika gdzie wgrać te pliki :
Atmega_Board_Detector.zip
Arduino/Atmega_Board_Programmer.zip
Należy je wypakować i całość wrzucić do folderu tam gdzie są biblioteki arduino-1.0.4\libraries .
Po wgraniu bootloadera na atmege można już spokojnie ja programować używając wsadu:

majsterkowo_atmega328p16.name=ATmega328P @ 16 MHz

majsterkowo_atmega328p16.upload.maximum_size=32256
majsterkowo_atmega328p16.upload.using=arduino:arduinoisp

majsterkowo_atmega328p16.bootloader.low_fuses=0xE2
majsterkowo_atmega328p16.bootloader.high_fuses=0xDA
majsterkowo_atmega328p16.bootloader.extended_fuses=0x05

majsterkowo_atmega328p16.bootloader.path=atmega
majsterkowo_atmega328p16.bootloader.file=ATmegaBOOT_328.hex
majsterkowo_atmega328p16.bootloader.unlock_bits=0x3F
majsterkowo_atmega328p16.bootloader.lock_bits=0x0F

majsterkowo_atmega328p16.build.mcu=atmega328p
majsterkowo_atmega328p16.build.f_cpu=16000000L
majsterkowo_atmega328p16.build.core=arduino
majsterkowo_atmega328p16.build.variant=standard

i Programatora Arduino as ISP. Ja zmieniłem jedna wartość maxymalnego uploaudu zamiast:
majsterkowo_atmega328p16.upload.maximum_size=30720
na:
majsterkowo_atmega328p16.upload.maximum_size=32256
bo z wartości odczytanej dzieki Atmega_Board_Detector wynika że Bootloader is 512 bytes starting at 7E00

Jak by miał ktoś jakieś uwagi albo pytania to pisać śmiało. pozdro
radroid
Młodszy majsterkowicz
Posty: 1
Rejestracja: 14 kwie 2013, 15:28

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: radroid » 14 kwie 2013, 15:38

Mam pewien problem z wgraniem bootloadera do atmegi328 za pomocą USBasp. Starałem się znaleźć jakieś rozwiązanie, ale póki co poległem, próbowałem na różnych komputera (Win7/XP) i wyświetla mi ten błąd:

Kod: Zaznacz cały

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.
Oczywiście wszystkie połączenia sprawdziłem wielokrotnie i wygląda na to że są ok.

Miał ktoś może podobny problem? Jestem zupełnie początkujący, więc nie mam pomysłu co jeszcze może być nie tak jak powinno.
Slyther
Młodszy majsterkowicz
Posty: 4
Rejestracja: 21 kwie 2013, 15:32
Lokalizacja: Warszawa

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Slyther » 22 kwie 2013, 22:12

Witam

Nie wiem jak u Was, ale u mnie po wypaleniu bootloader'a na podstawie wpisu do boards.txt zaproponowanego przez Łukasza w pierwszym poście tego wątku delay na programowanym mikrokontrolerze ATMega8a działa 32 razy wolniej (tzn. dopiero delay(32000) daje jednosekundowe odstępy czasu pomiędzy gaszeniem a zapalaniem diody).

Czy też tak macie ? ;)
Slyther
Młodszy majsterkowicz
Posty: 4
Rejestracja: 21 kwie 2013, 15:32
Lokalizacja: Warszawa

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Slyther » 22 kwie 2013, 22:36

Slyther pisze:Witam

Nie wiem jak u Was, ale u mnie po wypaleniu bootloader'a na podstawie wpisu do boards.txt zaproponowanego przez Łukasza w pierwszym poście tego wątku delay na programowanym mikrokontrolerze ATMega8a działa 32 razy wolniej (tzn. dopiero delay(32000) daje jednosekundowe odstępy czasu pomiędzy gaszeniem a zapalaniem diody).

Czy też tak macie ? ;)
Dziwna anomalia. Nie potrafię tego wytłumaczyć, ale problemy z odmierzaniem czasu miały miejsce tylko wówczas gdy zainicjalizowana była biblioteka do obsługi odbiornika podczerwieni (w metodzie setup() linijka irrecv.enableIRIn()). Po zakomentowaniu tej jednej linii dioda zaczęła mrugać prawidłowo ;)
windrzej
Młodszy majsterkowicz
Posty: 2
Rejestracja: 10 maja 2013, 12:04

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: windrzej » 10 maja 2013, 12:12

krzxsiek pisze: avrdude: Yikes! Invalid device signature. Double check connections and try again, or use -F to override this check.
Tez mialem taki blad gdy mialem w zlej kolejnosci podlaczone kabelki z pinow 11,12,13 do chipa
krzxsiek pisze: avrdude: stk500_getsync(): not in sync: resp=0x15
Taki blad pojawil mi sie gdy probowalem wgrac bootloader na chip bez uprzednio wgranego ArduinoISP na Arduino
Awatar użytkownika
Perwol
Młodszy majsterkowicz
Posty: 2
Rejestracja: 12 maja 2013, 01:19
Kontakt:

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Perwol » 12 maja 2013, 02:36

Cześć. Mam spory problem z moją Atmegą 328P. Sprawa wygląda tak, że wgrałem bootloadera 8Mhz, wszedł dopiero po zewrzeniu slowsck. Niestety żaden, nawet najprostrzy program nie wchodzi. Dla przykladu blink:

Kod: Zaznacz cały

Blink.ino:10:21: error: Arduino.h: No such file or directory
Blink.ino: In function 'void setup()':
Blink:15: error: 'OUTPUT' was not declared in this scope
Blink:15: error: 'pinMode' was not declared in this scope
Blink.ino: In function 'void loop()':
Blink:20: error: 'HIGH' was not declared in this scope
Blink:20: error: 'digitalWrite' was not declared in this scope
Blink:21: error: 'delay' was not declared in this scope
Blink:22: error: 'LOW' was not declared in this scope
Programuję za pomocą usbasp z OSX
windrzej
Młodszy majsterkowicz
Posty: 2
Rejestracja: 10 maja 2013, 12:04

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: windrzej » 13 maja 2013, 11:09

Wyglada to na problem z kompilacja - IDE nie widzi Arduino.h, wiec strzelam, ze brakuje ci tych plikow w resourcach lub masz cos namieszane ze sciezkami (Apk na mac'u "trzyma" jary, liby, headery w resourcach aplikacji). Proponuje przeinstalowac (rozpakowac) IDE na nowo i sprawdzic czy blink sie skompiluje. PS Na Mac'u, liby dodaje sie do "user / Dokumenty / Arduino / libraries" (http://majsterkowo.pl/arduino-na-mac-os-x/)
Awatar użytkownika
Perwol
Młodszy majsterkowicz
Posty: 2
Rejestracja: 12 maja 2013, 01:19
Kontakt:

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Perwol » 13 maja 2013, 11:45

Jest to o tyle dziwne, że attiny idą bez problemu. Przeinstalowałem IDE, bez skutku.
Awatar użytkownika
Janus
Majsterkowicz
Posty: 110
Rejestracja: 3 gru 2012, 07:48
Lokalizacja: Mikołów

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Janus » 13 maja 2013, 18:05

Mam trochę inne pytanie.
Projektuję układ który będzie zasilany napięciem 3,3V (ze względu na wykorzystanie transceivera RFM22). ATMega328 będzie w obudowie SMD.
Chciałbym mieć możliwość programowania ATMegi po wlutowaniu

Sam transceiver, podobnie jak programator USBasp, korzysta z ISP.
Jak się domyślam, równoległe podłączenie kilku urządzeń do ISP nie stanowi problemu, natomiast boję się o napięcie 5V które dostanę z programatora, a które to napięcie na pewno uwali mi transceiver

Czy ma ktoś pomysł jak rozwiązać ten problem ?

-------------------------------------------------
Problem rozwiązany.
Potrzebna jest trochę inna wersja USBASP umożliwiająca odłączenie zasilania i mająca buforowane linie ISP
Ostatnio zmieniony 4 cze 2013, 17:18 przez Janus, łącznie zmieniany 3 razy.
pentos
Majsterkowicz
Posty: 119
Rejestracja: 2 sty 2013, 21:35

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: pentos » 13 maja 2013, 19:33

Perwol pisze:Jest to o tyle dziwne, że attiny idą bez problemu. Przeinstalowałem IDE, bez skutku.
Ja miałem taki problem z attiny właśnie.
http://majsterkowo.pl/forum/post5459.html#p5459
siwy2411
Młodszy majsterkowicz
Posty: 29
Rejestracja: 4 cze 2013, 14:56

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: siwy2411 » 4 cze 2013, 15:00

a ja mam inne pytanie - zarówno bootloader jak i programy pięknie wskakują na atmegę8 podpiętą przez USBasp, ale przesiadam się na środowisko Arduino z C (między innymi) z powodu wygodnego seriala i tutaj właśnie pytanie - czy Arduino IDE + USBasp +atmega8 będzie obsługiwać komunikaty wysyłane przez serial'a? Odpowiednią opcję w menu Arduino IDE mam nieaktywną (szarą), a próba uruchomienia konsoli skutkuje błędem "port szeregowy COM1 nie został znaleziony (...)". Jakieś podpowiedzi, czy przez USBasp to nie zadziała?
pentos
Majsterkowicz
Posty: 119
Rejestracja: 2 sty 2013, 21:35

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: pentos » 4 cze 2013, 19:51

Do seriala potrzebujesz tego: http://allegro.pl/konwerter-uart-ttl-rs ... 27342.html, interesują Cię piny RXD i TXD w uC.
Krupson
Młodszy majsterkowicz
Posty: 9
Rejestracja: 25 lip 2013, 01:37

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Krupson » 25 lip 2013, 03:30

Mógłby ktoś miły wrzucić schemat z Fritzinga jak połączyć czystą ATmegę 328 na płytce stykowej z Arduino, żeby wgrać bootloader? Niestety to co znalazłem w google nic mi nie mówi. Jestem nowicjuszem i obawiam się, że samemu kombinując jak to wgrać jeszcze coś zepsuję, więc wolę zapytać kogoś, kto się na tym zna. Z góry dziękuję za pomoc :)
matty
Młodszy majsterkowicz
Posty: 2
Rejestracja: 29 lip 2013, 16:47

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: matty » 29 lip 2013, 16:51

A wie ktoś dlaczego po wgraniu bootloadera arduino do atmegi32 nie działa pwm? Wejscia/wyjścia cyfrowe działają, wejścia analogowego jeszcze nie sprawdzalem, ale nie działa pwm. analogWrite do 127 podaje na pin stan niski, a od 128 do 255 stan wysoki, nic pośredniego. Próbowałem też z biblioteką softPWM, ale wyskakują jakieś błędy.
BeGie
Młodszy majsterkowicz
Posty: 5
Rejestracja: 27 sty 2014, 14:02

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: BeGie » 30 sty 2014, 22:30

Mam pytanie, czy istnieje zdjęcie/instrukcja, która mówi jasno i klarownie, które wyjście Arduino UNO R3 odpowiada któremu wyjściu Atmega 328 po jej zaprogramowaniu?
W poradniku Programowanie mikrokontrolerów za pomocą programatora USBasp jest link do strony z naklejkami ale nic mi te opisy nie mówią.
Vcc, gnd i rst to chyba oczywiste ale reszta?
marcinogi7
Młodszy majsterkowicz
Posty: 4
Rejestracja: 25 lut 2014, 20:47

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: marcinogi7 » 25 lut 2014, 20:52

Witam, mam pytanie czy po wgraniu bootloadera i programu na atmega 328p-pu nadal wymagane jest podłączenie kwarcu i kondensatorów czy mogę zostawić sam mikropocesor i podłączac go do swojego ukladu ?
svalmont
Majsterkowicz
Posty: 122
Rejestracja: 20 paź 2013, 21:22

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: svalmont » 25 lut 2014, 21:09

Powinno działać poprawnie bez kwarcu gdyż bootloder ustawi odpowiednio fusy.
Jeżeli się myle to niech mnie ktoś poprawi
Arturr300
Starszy majsterkowicz
Posty: 308
Rejestracja: 16 paź 2013, 17:24

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Arturr300 » 25 lut 2014, 21:47

Z tego co wiem wgranie bootloadera przestawia fusebity - konieczny jest kwarc

Wysłane z mojego Xperia Neo V przy użyciu Tapatalka
svalmont
Majsterkowicz
Posty: 122
Rejestracja: 20 paź 2013, 21:22

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: svalmont » 25 lut 2014, 22:02

U mnie przy Atmega8 zegar niedziałał poprawnie ale po wgraniu bootlodera działa oki.
Z tego co wyczytałem i zauważyłem to ważne są same parametry dla procka w Arduino IDE.
Gdy użyjemy np. Atmega8 1Mhz do Atmega 8Mhz to będzie problem z czasami, można to naprawić kwarcem lub wgrać bootlodera i zmienić taktowanie w ten sposób
Trzeba pamiętać że podane taktowanie jest maksymalnym taktowaniem ale często fabrycznie procki 8Mhz są ustawione na 1Mhz.
piastek1991
Młodszy majsterkowicz
Posty: 12
Rejestracja: 27 lut 2014, 20:31

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: piastek1991 » 11 mar 2014, 23:52

Witajcie mam pytanie czy wie ktoś jak rozwiązać problem gdy arduino wyświetla komunikat:

avrdude: stk500_getsync(): not in sync: resp=0x00

bootloader wgrany pomyślnie na atmega164PA jak i atmega8 przy programowaniu przez arduino i USBasp
nie mam pojęcia co jest nie tam możne ktoś pomoże.
Arturr300
Starszy majsterkowicz
Posty: 308
Rejestracja: 16 paź 2013, 17:24

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: Arturr300 » 12 mar 2014, 00:38

Jak programujesz przez arduino to używasz Arduino as ISP?
ODPOWIEDZ

Strony partnerskie: