• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Bootloader arduino na Atmege 328 - różnice pomiedzy 328 a 328P
#1
Dzień Dobry!

W baaardzo dużym skrócie historia wyglądała następująco: 
-zaprojektowałem sobie układ na Arduino który fajnie działał.
-Chciałem go przenieść bezpośrednio na atmege. Łatwiej dostępna była atmega 328, więc taka zamówiłem. 
-Przy próbie wgrania programu do takiego układu za pomocą USBasp wyskakiwał błąd ze "port COM5 nie istnieje" czy coś tego typu.
-gdy wyciągnąłem atmegę z arduino i podmieniłem  z moją to udało się bez problemu wgrać program za pomocą USBasp

Czy jest to możliwe, że Atmega 328P jest w stanie obsługiwać niektóre biblioteki, których Atmega 328 nie jest w stanie obsłużyć? Z tego co widzę to te "P" oznacza tylko roznice w oszczedzaniu energii...

Zarówno do atmegi 328 i atmegi 328P udawało mi się wgrywać proste programy typu blink i działały poprawnie, dopiero przy bardziej zaawansowanych programach napisach w Arduino IDE da sie je wgrac do Atmegi 328P a do 328 już nie.
(Dwa różnie adresowane urządzenia I2C)

Bootloader z Arduino UNO udało mi się wgrać tylko do atmegi 328P. Przy Atmedze 328 wyskakuje komunikat ze typ atmegi sie nie zgadza. Mogę w jakiś sposób wgrać bootloader Arduino IDE (tak bym mógł wgrywać wszystkie programy z Arduino IDE)  do atmegi 328? 

Bardziej ogólnie: Chciałbym pisać programy w Arduino IDE i móc korzystać ze wszystkich dostępnych bibliotek dla tego środowiska a później takie programy wgrywać bezpośrednio do Atmegi 328. Jest taka możliwość czy musi to być atmega 328P? 


Z góry bardzo dziękuję za pomoc.
 
Odpowiedź
#2
Te uC są z grubsza takie same i program działaby pewnie w obu tak samo. Zresztą sam zauważyłeś, że nie masz problemu z działaniem programów tylko z ich wgrywaniem.
Możesz sobie dodać sam płytkę ręcznie znajdując plik board.txt i w nim kopiujesz fragment UNO:
Kod:
##############################################################

uno.name=Arduino/Genuino Uno

uno.vid.0=0x2341
uno.pid.0=0x0043
uno.vid.1=0x2341
uno.pid.1=0x0001
uno.vid.2=0x2A03
uno.pid.2=0x0043
uno.vid.3=0x2341
uno.pid.3=0x0243

uno.upload.tool=avrdude
uno.upload.protocol=arduino
uno.upload.maximum_size=32256
uno.upload.maximum_data_size=2048
uno.upload.speed=115200

uno.bootloader.tool=avrdude
uno.bootloader.low_fuses=0xFF
uno.bootloader.high_fuses=0xDE
uno.bootloader.extended_fuses=0xFD
uno.bootloader.unlock_bits=0x3F
uno.bootloader.lock_bits=0x0F
uno.bootloader.file=optiboot/optiboot_atmega328.hex

uno.build.mcu=atmega328p
uno.build.f_cpu=16000000L
uno.build.board=AVR_UNO
uno.build.core=arduino
uno.build.variant=standard

##############################################################
Zmieniasz nazwę wszędzie na uno2. i uno.build.mcu=atmega328, uno2.name= Uno328bezP i restart Arduino.
Trzeba jednak to sobie zachować, bo każda aktualizacja nadpisze te dane.
Arduino komunikuje się przez AVRDUDE i ten jeśli gada z bootloaderem to bootloader mówi mu, że jest UNO z uC 328P, jeśli wgrasz mu bootlodaer od uno to potem możesz wybrać obojętnie czy UNO, czy to nowe UNO2 i będzie wgrywać. Jeśli będziesz wgrywał przez USBASP to AVRDUDE bezpośrednio z odpowiedzi uC wie z kim ma do czynienia i nie wgra do uC z inną sygnaturą.
Można też zainstalować dodatek MINICORE i tam jak wybierzesz płytkę z uC Atmega328 to do wyboru masz 5 różnych 328, do każdej możliwość wyboru taktowania 1-20MHz, do każdego wariantu pasujący bootloader (musi być inny do każdego zegara), no i czy sam bootloader ma być czy nie - dodatkowa pamięć na program, szybszy start uC. Do samotnego uC 328 można wybrać też wariant z wewnętrznym oscylatorem 8MHz i nie potrzebujesz kwarcu, upraszcza to odrobinę płytkę. Po każdej zmianie ustawień oczywiście wypalasz bootloader (nawet jak go nie używasz), wypalenie bootloadera w Arduino to przede wszystkim ustawienie fusebitów nowej konfiguracji.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości