Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Zbiór tutoriali związanych z Arduino.
bartibv
Młodszy majsterkowicz
Posty: 9
Rejestracja: 3 kwie 2014, 22:58

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: bartibv » 18 kwie 2014, 22:37

Dobra sam wymyśliłem jak to zrobić:) Jakby ktoś potrzebował wolniejsze, ale oszczędniejsze arduinko na ATmega8A to daje kod do wpisania do pliku 'boards.txt', żeby nasz uC działał na 1 MHz :)

Pamiętajcie, że za każdym razem, jak chcecie zmienić prędkość zegara, to musicie wgrać bootloader :)

Kod: Zaznacz cały

atmega8a1.name=ATmega8a @ 1 MHz

atmega8a1.upload.maximum_size=7168
atmega8a1.upload.using=arduino:arduinoisp

atmega8a1.bootloader.low_fuses=0xe1
atmega8a1.bootloader.high_fuses=0xc4
atmega8a1.bootloader.path=atmega
atmega8a1.bootloader.file=ATmegaBOOT_8.hex
atmega8a1.bootloader.unlock_bits=0x3F

atmega8a1.build.mcu=atmega8
atmega8a1.build.f_cpu=1000000L
atmega8a1.build.core=arduino
atmega8a1.build.variant=standard
#################################################################

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


stiven
Złota rączka
Posty: 1581
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: stiven » 3 paź 2014, 11:36

Z ustawieniami dla atmegi328p z zewnętrznym kwarcem 16 MHz jest coś nie tak, a dokładnie chodzi o ustawienia fuse bitów. Są niewłaściwe, a można to sprawdzić porównując z ustawieniami z pliku boards dla arduino uno, które ma tą atmegę. Tymi ustawieniami co są tutaj w pierwszym poście zablokowałem sobie 4 atmegi, jedną mi się udało uratować ustawiając właściwie fuse bity. Zrobiłem sobie takie poprawne ustawienia do programowania przez usbasp:

Kod: Zaznacz cały

#################################################################

usbasp_atmega328p16.name=USBASP ATmega328P @ 16 MHz

usbasp_atmega328p16.upload.maximum_size=30720
usbasp_atmega328p16.upload.using=usbasp

usbasp_atmega328p16.bootloader.low_fuses=0xFF
usbasp_atmega328p16.bootloader.high_fuses=0xDE
usbasp_atmega328p16.bootloader.extended_fuses=0x05

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

usbasp_atmega328p16.build.mcu=atmega328p
usbasp_atmega328p16.build.f_cpu=16000000L
usbasp_atmega328p16.build.core=arduino
usbasp_atmega328p16.build.variant=standard
olkus
Młodszy majsterkowicz
Posty: 1
Rejestracja: 15 paź 2014, 23:27

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: olkus » 15 paź 2014, 23:32

witam.

probuje wgrac bootloader z arduino uno na atmege 328p z kwarcem 16 mhz i ciagle, mimo wielu prob zmian w boards.txt, wyskakuje mi blad:


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


jestem totalnie poczatkujacy jesli chodzi o avr (troche doswiadczenia z samym arduino) i nie ogarniam.
ramcin
Młodszy majsterkowicz
Posty: 7
Rejestracja: 20 paź 2014, 22:57

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: ramcin » 23 gru 2014, 00:06

Witam,
też mam problem podczas wgrywania do atmega8A, nie moge nawet wgac bootloadera. Zrobilem wszystko tak jak w pierwszym poście jest napisane. Nie dodaje zewnetrznego rezonatora, podlaczone zasilanie, miso, mosi, sck i reset.
Pojawiaja sie trzy rozne bledy, ktore juz przewijaly sie w postach. Czy ktos to rozwiazal? Dlaczego nie da sie wypalic tego bootladera??
kokon89
Młodszy majsterkowicz
Posty: 26
Rejestracja: 1 lut 2015, 15:02

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: kokon89 » 1 lut 2015, 15:39

Jaki wpis muszę dać do boards.txt żeby móc programować Atmegę 8A z kwarcem zewnętrznym 16MHz ?
NishikiNishio
Młodszy majsterkowicz
Posty: 5
Rejestracja: 20 gru 2014, 17:11

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: NishikiNishio » 3 lut 2015, 01:40

Witam, czy ktoś napisałby dokładną instrukcje programowania ATmegi poprzez Arduino ?
Największy problem mam z bootloaderem nie wyświetla mi go w zakładce "board"
z góry bardzo dziękuje.
hertzh1
Majsterkowicz
Posty: 62
Rejestracja: 29 sty 2014, 12:23

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: hertzh1 » 17 lut 2015, 13:05

Łukasz pisze:

Kod: Zaznacz cały

#################################################################

majsterkowo_atmega8a.name=ATmega8a @ 8 MHz

majsterkowo_atmega8a.upload.maximum_size=7168
majsterkowo_atmega8a.upload.using=arduino:arduinoisp

majsterkowo_atmega8a.bootloader.low_fuses=0xe4
majsterkowo_atmega8a.bootloader.high_fuses=0xc4
majsterkowo_atmega8a.bootloader.path=atmega
majsterkowo_atmega8a.bootloader.file=ATmegaBOOT_8.hex
majsterkowo_atmega8a.bootloader.unlock_bits=0x3F

majsterkowo_atmega8a.build.mcu=atmega8
majsterkowo_atmega8a.build.f_cpu=8000000L
majsterkowo_atmega8a.build.core=arduino
majsterkowo_atmega8a.build.variant=standard


Czy ten konkretny bootloader jest przeznaczony pod wewnętrzny czy zewnętrzny oscylator znaczy potrzebny kwarc czy nie???

Dobra sprawdziłem sam to jest bootloader na WEWNĘTRZNYM oscylatorze
kokon89
Młodszy majsterkowicz
Posty: 26
Rejestracja: 1 lut 2015, 15:02

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: kokon89 » 17 lut 2015, 21:28

Witam! Mam pytanie - kupiłem w botlandzie Atmegi 328p z bootloaderem arduino - czy ma znaczenie to, że będę układy zasilał 3.3V zamiast 5V ? Trzeba wgrywać nowe ustawienia czy będzie działało ?
stiven
Złota rączka
Posty: 1581
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: stiven » 17 lut 2015, 22:24

Na ustawienie tych fusebitów nie ma wpływu jakie będzie napięcie zasilania, więc nic nie trzeba zmieniać.
kokon89
Młodszy majsterkowicz
Posty: 26
Rejestracja: 1 lut 2015, 15:02

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: kokon89 » 18 lut 2015, 08:35

No bez boota chyba nie zaprogramuję w ArduinoIDE ? W każdym razie mam nadzieję, że uda mi się teraz zaprogramować bez problemu na napięciu 3,3V. Czekam na kuriera z programatorem i zobaczymy co z tego będzie.

EDIT: Wyczytałem, że Atmega328p na napieciu 3,3V nie powinna działać z kwarcem 16MHz - ja niestety taki kwarc mam już wlutowany w układ - czy ustawiając w Arduino IDE Atmegę 328p z wewnętrznym oscylatorem 8MHz to będzie ona korzystała z niego (wewnętrznego) mimo, że wlutowany jest zewnętrzny 16MHz ?

Tu cytat z datasheet:
Speed Grade:
̶ 0 - [email protected] - 5.5V, 0 - [email protected] - 5.5.V, 0 - 20MHz @ 4.5 - 5.5V

Dlatego pewnie będą problemy na 3.3V i 16MHz ? a kwarc już wlutowany w płytkę :(
hertzh1
Majsterkowicz
Posty: 62
Rejestracja: 29 sty 2014, 12:23

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: hertzh1 » 19 lut 2015, 20:30

MrLewerence pisze:
kokon89 pisze:Witam! Mam pytanie - kupiłem w botlandzie Atmegi 328p z bootloaderem arduino - czy ma znaczenie to, że będę układy zasilał 3.3V zamiast 5V ? Trzeba wgrywać nowe ustawienia czy będzie działało ?
Nie wiemjaka różnica jest pomiędzy atmega z bootem a atmega bez boota(fabryczna). Chodzi o różnice w cenie.
Jeśli zaprogramujesz ta atmega z programatora usbasp - szkoda kasy...
Napięcie zasilania ma wpływ na proces programowania, i częstotliwości przy zasilaniu bateryjnym z zastosowaniem energooszczędności.
Po pierwsze dzięki że wreszcie ktoś wytłumaczył do czego służy plik boards.TXT.
czy mogę prosić o uściślenie kilku rzeczy?
1. Czy w pliku *.hex bootloadera jest zawarta tylko program, który służy do programowania szeregowego?
2. Czy jeżeli prawidłowo podam fuse bity (w boards.txt), i nie wgram bootloadera, a wgram program za pomocą USBasp do fabrycznego układu to będzie działać?
3. Jak to jest do końca z tym napięciem, skoro atmega ma bootloader (czyli ustawione fusebity) na 8MHz to mogę ją zasilać napięciem z przedziału 2,7V-5,5V
4. Czy fuse bity określają jaki obszar pamięci jest dostępny do programowania, czy robi to linia pliku

Kod: Zaznacz cały

majsterkowo_atmega8a.upload.maximum_size=7168
docelowo chodzi mi o zrobienie w pliku boards wpisu który pozwalałby wykorzystywać całą pamięć układu i korzystać tylko z programowania za pomocą ISP?
stiven
Złota rączka
Posty: 1581
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: stiven » 19 lut 2015, 21:17

@kokon89
Obrazek

Na moje oko, według tego obrazka, z 3,6V by musiało być do kwarcu 16MHz, ale myślę, że nie będzie problemu przy 3,3V, ludzie tak zasilają i działa.


@hertzh1
Jak nie wgrasz bootloadera, to nie będziesz miał ustawionych fusebitów, przy wgrywaniu programu one nie są ustawiane. W inny sposób by trzeba było te fusebity ustawić, na przykład takim programem, o którym pisał MrLewerence. Z tego co wyczytałem wcześniej w komentarzach, nawet jak wgrasz bootloader (i przy okazji ustawią się fusebity), to później przy wgrywaniu programu za pomocą USBasp, ten bootloader zostanie nadpisany i to miejsce przez niego zajmowane będzie już zwolnione.
hertzh1
Majsterkowicz
Posty: 62
Rejestracja: 29 sty 2014, 12:23

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: hertzh1 » 20 lut 2015, 00:22

stiven pisze: @hertzh1
Jak nie wgrasz bootloadera, to nie będziesz miał ustawionych fusebitów, przy wgrywaniu programu one nie są ustawiane. W inny sposób by trzeba było te fusebity ustawić, na przykład takim programem, o którym pisał MrLewerence. Z tego co wyczytałem wcześniej w komentarzach, nawet jak wgrasz bootloader (i przy okazji ustawią się fusebity), to później przy wgrywaniu programu za pomocą USBasp, ten bootloader zostanie nadpisany i to miejsce przez niego zajmowane będzie już zwolnione.
Sprawdziłem pewną rzecz zmieniłem w bootloaderze (w pliku) fusy dla atmega 8 na 0xFD i 0xC4 (zewnętrzny kwarc) i pierwsze ładowanie przez programator (z arduio) do atmegi z 0xE4, 0xC4 wypadło z jakimiś błędami. Program się nie załadował

Kod: Zaznacz cały

avrdude: verification error, first mismatch at byte 0x0000
         0x3f != 0x00
avrdude: verification error; content mismatch
, próby poprawnego wgrania fus'ów z mkv nie dawało rady dopiero wgranie wcześniej odczytanego flasha spowodowały, że fusy dało się zmieniać w mkv bez problemu. Co dziwne teraz po zmianie fusów można już dowolnie wgrywać z arduino IDE, bez względu na to czy jest ustawiony zewnętrzny czy wewnętrzny kwarc/oscylator.

Pytanie trochę bardziej przyziemne jak zrobić żeby w boards.txt były dwa wpisy dla jednego procesora ale z dwoma wersjami kwarc i wewnętrzny oscylator, bo jak dodam nowy wpis do pliku to przestaje mi się pokazywać ten pierwszy?
stiven
Złota rączka
Posty: 1581
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: stiven » 20 lut 2015, 11:13

@MrLewerence
Jak nie można, jak można? Ja mam dwa wpisy dla atmegi328p, a tak na prawdę więcej, bo arduino uno też na przykład ma tą atmegę, a nie usunąłem tego.

Screen nie mój, stąd: http://majsterkowo.pl/programowanie-mik ... ra-usbasp/

Obrazek

@hertzh1
Coś źle robisz, w pierwszym poście w tym temacie masz 2 wpisy dla atmegi 328p, zauważ, że to co jest przed pierwszą kropką różni się od siebie (majsterkowo_atmega328p8 i majsterkowo_atmega328p16), może ty piszesz to samo i Arduino IDE interpretuje to jako dalszy ciąg jednego wpisu.

Kod: Zaznacz cały


#################################################################

majsterkowo_atmega328p8.name=ATmega328P @ 8 MHz
/*


*/

#################################################################

majsterkowo_atmega328p16.name=ATmega328P @ 16 MHz
/*


*/

hertzh1
Majsterkowicz
Posty: 62
Rejestracja: 29 sty 2014, 12:23

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: hertzh1 » 25 lut 2015, 18:51

stiven pisze: @hertzh1
Coś źle robisz, w pierwszym poście w tym temacie masz 2 wpisy dla atmegi 328p, zauważ, że to co jest przed pierwszą kropką różni się od siebie (majsterkowo_atmega328p8 i majsterkowo_atmega328p16), może ty piszesz to samo i Arduino IDE interpretuje to jako dalszy ciąg jednego wpisu.

Kod: Zaznacz cały


#################################################################

majsterkowo_atmega328p8.name=ATmega328P @ 8 MHz
/*


*/


#################################################################

majsterkowo_atmega328p16.name=ATmega328P @ 16 MHz
/*


*/

Właśnie dlatego pytam, bo chciałem mieć ATMEGĘ8 na zewnętrznym kwarcu, i wew oscylatorze i robiąc podobnie jak, w którymś z pierwszych postów, dostawałem tylko ostatni wpis czyli na zewnętrznym kwarcu. Jeszcze zobaczę jak to jest dokładnie.

@ MrLewerence Wiem że przy wrzucaniu programu przez arduino IDE nie ma znaczenia wybór źródła taktowania (mam nadzieję, że dobrze zrozumiałem Twój post z objaśnieniem pliku boards) po prostu czasami wgrywam bootloader dla wersji z kwarcem, i bez, a ciągłe zmienianie FUSE'ów może spowodować, że w końcu zablokuję procesor.

Swoją drogą powinno być ostrzeżenie przy bootloaderach używających wewnętrznego oscylatora. bo średnio nadają się one do transmisji radiowych, dla kogoś kto o tym nie wie może być to dużo straconego czasu.....
xxxxxxv87
Młodszy majsterkowicz
Posty: 2
Rejestracja: 6 maja 2015, 13:17

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: xxxxxxv87 » 23 maja 2015, 16:00

Witam,

Mam Atmega8u2
Chciałbym programować ją w środowisku IDE Arduino - nie potrzebuję bootloadera - program mogę wgrywać przez zewnętrzny programator.
Ktoś wie czy jest taka możliwość a jeśli tak to jak to mogę zrobić?
hertzh1
Majsterkowicz
Posty: 62
Rejestracja: 29 sty 2014, 12:23

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: hertzh1 » 24 maja 2015, 21:46

wgranie bootloadera przydaje się po to żeby wgrać ustawienia fusebitów, o tym co do czego podłączyć było już na majsterkowie, wpisz w google magiczne programator majsterkowo
stiven
Złota rączka
Posty: 1581
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: stiven » 24 maja 2015, 22:26

@hertzh1
Ale to nie takie proste. Czy jesteś w stanie napisać skąd wziąć bootloader i ustawienia do układu Atmega8u2 do arduino ide? Na majsterkowie dla tej atmegi nie ma, w internecie też nie znalazłem.
gall anonim
Młodszy majsterkowicz
Posty: 16
Rejestracja: 30 sty 2015, 18:35

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: gall anonim » 3 lis 2015, 20:47

Witam.
Kupiłem ostatnio atmege328p. I przy próbie wypalenia bootloadera od razu po wciśnięciu przycisku wyskakuje błąd
"Błąd przy wgrywaniu bootloadera; brak 'bootloader.tool' parametru konfiguracji"
wszystko robiłem wedle instrukcji z pierwszego postu tego wątku.
W czym jest błąd?
stiven
Złota rączka
Posty: 1581
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: stiven » 3 lis 2015, 20:49

Musisz mieć arduino ide nie nowsze niż 1.0.6.
gall anonim
Młodszy majsterkowicz
Posty: 16
Rejestracja: 30 sty 2015, 18:35

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: gall anonim » 3 lis 2015, 21:31

Pobrałem starszą wersję i zamiast tamtego wyskakuje teraz błąd
"avrdude: stk500_getsync(): not in sync: resp=0x00"
lub po zresetowanie arduino
"avrdude: stk500_program_enable(): protocol error, expect=0x14, resp=0x50
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.

avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51
"
Czy możliwe ze jakoś zniszczyłem układ?
stiven
Złota rączka
Posty: 1581
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:35

Raczej nie. Czym programujesz? Programatorem, na przykład usbasp, czy arduino?
gall anonim
Młodszy majsterkowicz
Posty: 16
Rejestracja: 30 sty 2015, 18:35

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: gall anonim » 3 lis 2015, 21:38

programuje przez arduino
stiven
Złota rączka
Posty: 1581
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:42

Masz wgrany program ArduinoISP do arduino z przykładów i ustawione w zakładce programator "Arduino as ISP"?
gall anonim
Młodszy majsterkowicz
Posty: 16
Rejestracja: 30 sty 2015, 18:35

Re: Programowanie ATmega8A oraz ATmega328P za pomocą Arduino

Post autor: gall anonim » 3 lis 2015, 21:43

Tak , mam wgrany
ODPOWIEDZ

Strony partnerskie: