E' possibile programmare un atmega2560 con un USB-TTL converter?

Ciao a tutti. La domanda, come da titolo, è relativamente semplice: è possibile tramite un convertitore USB-TTL (il quale ha un CH340 nel mio caso) programmare un Atmega2560p nudo e crudo, avente il solo quarzo come circuito esterno oltre alla resistenza con pulsante per il reset? Oppure è necessario avviare la procedura per installare il bootloader sopra di esso?

Grazie a tutti

Forse e' meglio usare un nano trasformato in "arduino as ISP" (ci sono la documentazione ed il firmware sul sito), cosi puoi programmarlo con i pin ICSP (MOSI, MISO, RESET, VCC, GND e CLOCK) ... con il solo convertitore non saprei, forse, ma credo che serva il bootloader gia installato sulle MCU per farlo, mentre con l'ISP puoi programmarle sia con che senza il bootloader.

Quindi come purtroppo immaginavo, il solo USB-TTL non basta..
Che tu sappia, esiste il modo di far funzionare anche l'atmega2560 senza quarzo?

pagine 39-45.

Programmazione fatta con un altro arduino mega... (il primo che ho trovato)
Ora riesco a programmare la scheda, ma è sorto subito un altro problema: con un delay di 1000 millisecondi, l'Atmega ne aspetta circa 15...
Clock malfunzionante?

No, fuse incoerenti con il clock usato, direi.

Ciao, Ale.

1 Like

Cioè? puoi spiegarmi meglio in modo tale da poter risolvere questa cosa?

Stai usando un quarzo? Comunque sia, a che frequenza sta funzionando il micro? Se è diversa dai 16 megahertz che usa l'Arduino Mega succede quello che ti sta accadendo.
Ora sono a lavoro e non ho modo (nè tempo) di cercarti la soluzione, se hai pazienza stasera ci do un'occhiata, o magari nel frattempo ti aiuta qualcun altro.

Ciao, Ale.

Come è riportato a pag. 45, il clock di default è con l'oscillatore interno a 8MHz DIV8, quindi 1MHz. Queste sono le impostazioni dei fuse. Quando compili il programma devi selezionare una scheda con la stessa configurazione. Il MiniCore, purtroppo, arriva solo all'ATmega328p.
Prova questo:
https://github.com/MCUdude/MiniCore/blob/master/avr/cores/MCUdude_corefiles/README.md

Per andare 67 volte più veloce, però, dovrebbe andare a 1MHz con il compilatore impostato a 15625Hz... Pubblica il programma con cui rilevi 15ms anziché 1000.

Prova anche a far lampeggiare un LED a 1Hz:

Allora, come ti ha già spiegato DatMan, se non usi la frequenza "standard" (nel senso che è quella usato dall'Arduino Mega originale) devi usare un altro "core" che preveda diverse impostazioni. Questo penso sia quello adatto, controlla se supporta anche la velocità da te usata, installalo e poi da menu dovresti poter scegliere i parametri adeguati.

Ciao, Ale.

Perché cambiare core?

Nell'IDE selezioni la giusta scheda standard, senza installare altro, e, utilizzando il programmatore ICSP, effettui l'operazione di caricamento del "bootloader" ... Questo effettuerà la corretta programmazione dei FUSE ed il caricamento del bootloader.

Dato che, sé ho ben capito, a te il bootloader non occorre ... basta che effettui un caricamento del codice come hai già fatto, sempre attraverso il programmatore ICSP, e quello che carichi sovrascrive ed elimina il bootloader. Se invece ti interessa, avendo caricato il bootloader, potrai caricare il codice via USB <-> Seriale.

Guglielmo

... per "solo il quarzo" spero bene che tu intenda il quarzo da 16 MHz ed i due condensatori necessari. :wink:

Guglielmo

In realtà non ha ancora risposto alla mia domanda a che frequenza di clock sta usando, perchè ha anche chiesto:

Se stesse usando il quarzo da 16 mega ed il normale core AVR un delay(1000) durerebbe appunto 1000, invece:

che perarltro non si capisce se siano 15 millisecondi o secondi, boh, aspettiamo una risposta.

Ciao, Ale.

"con un delay di 1000 millisecondi, ne aspetta circa 15."
Se è scritto correttamente, "ne" si riferisce a millisecondi...

Si, stando all'italiano sono d'accordo con te, ma io ho fatto un ragionamento diverso, per cui quel 1000 millisecondi equivale ad un secondo, e se, per esempio, non usi il quarzo e usi il clock interno a 1 mega i tempi si dilatano, ed un secondo diventano circa 15...
Oltretutto senza un oscilloscopio la vedo anche dura misurare 15 millisecondi, 15 secondi si misurano anche coll'orologio.
Però sono tutte congetture, se l'OP riappare e chiarisce bene, sennò rimarremo col dubbio.

Ciao, Ale.

1 Like

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