Problema con ATmega328 standalone

Un PC fa (Ubuntu - nonricordolaversione) progettavo giochini per i figli di mio nipote (sono lo zio, non il bisnonno) usando un Arduino Nano per l'implementazione. Quando il giochino funzionava, caricavo tutto su un Atmega328 standalone a 8MHz di clock interno, più che sufficiente per i miei scopi, recuperando il Nano e miniaturizzando il tutto.

Avevo dedicato una breadboard al caricamento degli Atmega328 con un Arduino Nano dedicato, uno zoccolo a 28 pin e tutte le connessioni già fatte. Mi ero fatto un bigino per non dover ricostruire la procedura tutte le volte.

Sul nuovo PC (Ubuntu 18.04 LTS) ho attualmente la versione 1.8.8 dell'IDE di Arduino e mi trovo bene. Ho riesumato la breadboard e cercato di caricare il bootloader su un Atmega328P vergine.

Prima sorpresa: fra le schede non c'è: "ATmega328" "Bootloader SI/NO" "Clock 8 MHz internal". Una breve ricerca e la trovo su

dove mi fanno scaricare questo file
https://www.arduino.cc/en/uploads/Tutorial/breadboard-1-6-x.zip
con le istruzioni per mettere "breadboard" in "hardware".

Seconda sorpresa: Carico ArduinoISP sul Nano (328p Old Bootloader) e compare questa scritta:
Warning: Board breadboard:avr:atmega328bb doesn't define a 'build.board' preference. Auto-set to: AVR_ATMEGA328BB

Fa niente, è un warning. Fra le schede compare "ATmega328 on a breadboard (8 MHz internal clock) su /dev/ttyUSB0". Perfetto. Quello che volevo. Strumenti => Programmatore "Arduino as ISP"; Strumenti => Scrivi il bootloader.

Questo il messaggio di errore:

 ***failed;  
avrdude: WARNING: invalid value for unused bits in fuse "efuse", should be set to 1 according to datasheet
This behaviour is deprecated and will result in an error in future version
You probably want to use 0xfd instead of 0x05 (double check with your datasheet first).

Vado su board.txt e cambio "efuse" come indicato. Riprovo a caricare il bootloader e questa volta "Caricamento completato".

Però provo a caricare un blink e ottengo questo

Warning: Board breadboard:avr:atmega328bb doesn't define a 'build.board' preference. Auto-set to: AVR_ATMEGA328BB
Lo sketch usa 928 byte (3%) dello spazio disponibile per i programmi. Il massimo è 30720 byte.
Le variabili globali usano 9 byte di memoria dinamica.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x1c
Problema di caricamento sulla scheda. Guarda http://www.arduino.cc/en/Guide/Troubleshooting#upload per suggerimenti

Questo report potrebbe essere più ricco di informazioni abilitando l'opzione
"Mostra un output dettagliato durante la compilazione"
in "File -> Impostazioni"

Domani continuerò a investigare. Per il momento chiedo il vostro aiuto, ma ora vado a nanna.

Ciao,
P.

Butta via quella roba vetusta e installa MiniCore.

Pienamente d'ccordo, metti su l'ultima versione del IDE, come core installa QUESTO e ... hai tutte le opzioni :slight_smile:

Guglielmo

P.S.: ... per altre MCU ci sono anche tutti gli altri "core" ... QUI

Grazie infinite a entrambi. Provvedo.

Ciao,
P.

Interessante! Buono a sapersi... Prima o poi mi cimento anche io ma con gli AtTiny e i led...

Sono sicuro che avrai molte soddisfazioni.

Costruisco per hobby giocattoli elettronici per bambini. Programmo su Arduino e trasferisco su ATmega328 o ATtiny85 a 8 MHz di clock interno, senza quarzo né condensatori. Alimento con un Power Bank cinese da 5€ opportunamente cannibalizzato, che evita batterie usa-e-getta ed è ricaricabile con un ricaricatore per Smartphone.

Ciao,
P.

Se non lo sai, (non ti meravigliare, non lo sa quasi nessuno) è possibile fare correre atmega8 e penso anche il 328, a 16MHz con l'oscillatore interno

Io sapevo degli ATtiny che, usando il PLL interno, puoi farli andare anche a 20 MHz, ma nel ATmega328P non mi sembra di ricordare PLL ... e nemmeno negli ATmega8 ... ::slight_smile:

Mentre il ATmega32U4 di Arduino Leonardo, SI, ha il PLL ...
... come anche la serie ATmegaxxU2 (8/16/32) :smiley:

Guglielmo

Allora vediamo se qualcuno lo sa , facciamo un quiz, rilancio la domanda, come si fa con l'osc interno a correre a 16Mhz?

... spero tu NON ti riferisca al poter tirare la frequenza con OSCCAL ... ::slight_smile:

Guglielmo

Bravo! anche qui hai centrato, pero non con il programmatore ISP ma direttamente sul programma che al reset parte a 8MHz e mediante una istruzione lo scalibra fino al max che corrisponde a 16MHz circa, non si può utilizzare per la seriale asincrona però per quello che dovevo fare andava più che bene,
Aggiungo che sono anni che funziona senza mai problemi

E' sul display LED per pcam13 del 2013
http://www.dmxpassion.altervista.org/pg021.html

Si, ovvio, la modifica di OSCCAL la si fa da programma, però ... è cosa che, se utilizzi la EEPROM (... e, più rara cosa, la scrittura su flash) può portare a grossi problemi ed è chiaramente indicato sul datasheet ...

Note that this oscillator is used to time EEPROM and Flash write accesses, and these write times will be affected accordingly. If the EEPROM or Flash are written, do not calibrate to more than 8.8MHz. Otherwise, the EEPROM or Flash write may fail.

Quindi ... come sempre, dipende dalle applicazioni e va usato sapendi ciò che si fa ... :wink:

Guglielmo

Non utilizza la EEROM però se avessi il bisogno di utilizzarla avrai impostato la frequenza di clock per il compilatore a 16 megahertz oppure se no funzionava lo stesso avrei modificato direttamente le librerie EEROM, Ah mi ricordo che non ho utilizzato Arduino compilatore ma AVR studio con il pacchetto WINAVR

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.