ATmega328p standalone, che confusione!

Buonasera a tutti,
voglio trasferire un mio progetto su un ATmega328p da utilizzare standalone. Possiedo una UNO rev 3, posso utilizzarla come Arduino as IPS per programmarlo? Quali accorgimenti devo adottare?
Ho cercato su internet e sul forum ma i tutorial sono tutti vecchi e sono sicuro che molte cose siano cambiate. Per esempio, è ancora necessario mettere un condensatore tra GND e RESET durante il caricamento degli sketch? (lo chiedo perché quando programmo gli attiny non è necessario)

Grazie a tutti.

marcowip:
Buonasera a tutti,
voglio trasferire un mio progetto su un ATmega328p da utilizzare standalone. Possiedo una UNO rev 3, posso utilizzarla come Arduino as IPS per programmarlo? Quali accorgimenti devo adottare?
Ho cercato su internet e sul forum ma i tutorial sono tutti vecchi e sono sicuro che molte cose siano cambiate. Per esempio, è ancora necessario mettere un condensatore tra GND e RESET durante il caricamento degli sketch? (lo chiedo perché quando programmo gli attiny non è necessario)

Grazie a tutti.

I tutorial sono tutti vecchi, ma i componenti sono sempre quelli... Comunque, per delucidazioni segui La Guida:
http://www.michelemenniti.it/vhd/Elettronica/Guida%20Programmazione%20ATMEL%20con%20Arduino.pdf

Grazie mille per la guida. Comincio subito a studiarla.

Ho finito di leggere la guida. È un po' macchinosa e ci sono alcuni errori, ma mi ha fatto capire un sacco di cose.
Solo una cosa non ho capito. Per risolvere l'eventuale problema di autoreset la guida consiglia di mettere un condensatore elettrolitico da 10 uF tra i pin 3,3V e RESET, mentre altrove dicono di metterlo tra GND e RESET. È la stessa cosa?

marcowip:
È un po' macchinosa e ci sono alcuni errori,

Quali errori ?

Per risolvere l'eventuale problema di autoreset la guida consiglia di mettere un condensatore elettrolitico da 10 uF tra i pin 3,3V e RESET,

Non è la stessa cosa, il condensatore va tra +5V e Reset, 3.3V solo per le schede che vanno a questa tensione.

astrobeed:

marcowip:
È un po' macchinosa e ci sono alcuni errori,

Quali errori ?

Usando la IDE 1.0.1 non è necessario cliccare su carica con programmatore per caricare gli sketch, inoltre nella sezione specifica per 1.0.1 sia nel caso del bootloader sia nel caso dei programmi dice di impostare prima il programmatore su "Arduino as ISP" e poi caricare su arduino il codice ArduinoISP che lo trasforma in programmatore, queste due fasi vanno invertite.
Poi se dici che il condensatore deve andare tra 5V e RESET allora mi sa che c'è un altro errore poiché la UNO va a 5V e la guida dice di metterlo tra 3,3V e RESET.
Mi sbaglio?

marcowip:
Usando la IDE 1.0.1 non è necessario cliccare su carica con programmatore per caricare gli sketch

Così hai caricato lo sketch sull'Arduino UNO R3 dove avevi l'"Arduino as ISP" e non sullo standalone.

Che la guida di Michele, arrivata alla 4° versione, abbia errori così grossolano mi pare strano. :frowning:
Comunque tutto è possibile.

PaoloP:

marcowip:
Usando la IDE 1.0.1 non è necessario cliccare su carica con programmatore per caricare gli sketch

Così hai caricato lo sketch sull'Arduino UNO R3 dove avevi l'"Arduino as ISP" e non sullo standalone.

Che la guida di Michele, arrivata alla 4° versione, abbia errori così grossolano mi pare strano. :frowning:
Comunque tutto è possibile.

che non è necessario cliccare su carica con programmatore lo confermano altri post sul forum. Comunque sia chiaro che non mi permetto assolutamente di giudicare o sminuire un'opera "di passione" come la guida di cui stiamo parlando, che sicuramente sarà costata tempo e sudore a chi l'ha scritta. I miei dubbi derivano dalla mia inesperienza in materia (ma anche dalla mia esperienza, visto che non di rado mi capita di trovare errori clamorosi, molti dei quali già noti, su testi universitari in uso anche da diversi decenni).

Bisogna prendere atto che non siamo tutti uguali, sicuramente la guida di Michele è stata utile a molti, ma ci sono le eccezioni e con "eccezioni" mi riferisco a quegli utenti che non ci capiscono nulla da una guida da seguire pari pari.

Michele ha fatto del suo meglio e non ci si può aspettare nulla di meglio da uno che fino a poco tempo fa di microcontroller ne sapeva 1% di ciò che conosce ora. Comunque sia quella guida è nata anche grazie al forum e ai post degli utenti, quindi potresti seguire tutta la discussione (in verità ricordo che ci sono più thread circa l'argomento, di cui uno dovrebbe essere nella sezione Megatopic).

Tuttavia non credere di capire come si usa un condensatore o meno, anche perché si devono avere della basi di elettronica per capirlo e quindi l'informazione non è da ricercare in una guida ma su un libro di elettronica di 1° 2°
anno.

Mentre la spiegazioni del perché è stato usato un condensatore è spiegato nella guida, almeno ricordo di aver letto qualcosa, e comunque nei thread del forum trovi molte risposte alle tue domande.

Poi se dovessi avere altri dubbi, chiedi al forum, ma prima usa "search" per un paio di giorni (sarebbe meglio prendersi una settimana di tempo) o più perché di thread da leggere c'è nè davvero tanti.

Una scheda arduino normalmente la possiamo chiamare targer board, e si può scrivere il programma su flash in due modi:

  1. Tramite la usb, ma in questo caso il micro deve avere un bootloader che entra in funzione dopo un reset e ha il compito di interpretare comandi e dati e scrivere quest'ultimi nella flash.
  2. Tramite il connettore ICSP (non è necessario il bootloader).

Nel caso 2 ci vuole:
Una target bord, quindi Arduino va bene.
Un programmatore USB to ISP, come avrisp mkii di Atmel oppure una target board trasformata in un programmatore ISP, quindi anche Arduino va bene.

Per trasformare Arduino o in genere una target board in un programmatore si deve scrivere nella sua flash un programma che sia in grado di accettare comandi via USB (attraverso un protocollo es.stk500) e trasformarli in un flusso dati uscente dalla ISP.

Trasformato arduino in un programmatore USB to ISP, si collega questo alla target board, e questa volta per scrivere la flash della target board dobbiamo selezionare come programmatore Arduino ISP, che usa un protocollo simile a stk500.

Ciao.

marcowip:
Io volevo solo sapere se, possedendo una UNO rev 3, ottengo lo stesso risultato mettendo il condensatore tra GND e RESET oppure tra 3,3V e RESET

Se hai la UNO R3 il condensatore non ti serve.
Il condensatore serve solo sulle schede UNO R1, che montano il bootloader Optiboot 4.0, che non faceva gestire correttamente la comunicazione seriale durante l'invio dello sketch ed autoresettava la scheda. Questo problema è stato risolto con l'Optiboot 4.4, montato di default a partire da un certo lotto di UNO R2 in poi oppure installabile anche sulle precedenti schede con Optiboot 4.0 (come ho fatto io).
Ricapitolando, il condensatore serve solo se si è in possesso di una scheda con un determinato bootloader, altrimenti è dannoso ed impedisce la programmazione.

Grazie mille. Sei stato gentilissimo e chiarissimo. Per fortuna la maggior parte degli utenti di questo forum sono così.

Spero che tra "quelli che non ci capiscono nulla" tu non annoveri anche me

Mi riferisco a quelle persone che come me non digeriscono i tutorial passo passo.
Ti posso assicurare che Michele si è messo sempre a disposizione degli utenti, e ne potrai avere riscontro leggendo i vecchi thread.

Io faccio fatica a ricordare con dettaglio, quindi ti ho rimandato ai vecchi thread che sono una miniera di informazioni, ci sono discorsi sui timer, interrupt, manipolazione dei registri tramite le bitwise, ecc.

Io ho risolto tagliando la testa al toro, ho un programmatore avrisp mkii, e niente bootloader, e niente IDE arduino e niente Arduino core, quindi solo le board. Per la 2009 ho tagliato il reset come mostrato qui pighixxx.com - pighixxx Resources and Information.

Ciao.

marcowip:
Grazie mille. Sei stato gentilissimo e chiarissimo. Per fortuna la maggior parte degli utenti di questo forum sono così.

Ora non voglio difendere Michele ed il suo lavoro però questo è ingiusto nei confronti di lui perché in quella guida ha messo settimane di lavoro e di test proprio con la convinzione di fare un prodotto destinato ad aiutare gli inesperti.

Ora io non ho a mente tutte le 90 pagine di quella guida perché ad esser sinceri l'ho letta poco dato che la tecnica ISP la conosco bene però immagino che la questione del condensatore non sarà stata approfondita perché ad un utente poco gliene importa di sapere se c'è l'Optiboot 4.4 oppure il 4.0 visto che risalire alla versione installata non è una cosa alla portata di tutti (anzi di pochi), ma giustamente ha solo spiegato che non era indispensabile ed andava provato caso per caso.

Ringrazio Mauro e Leo per i loro rispettivi interventi; sinceramente mi spiace che questo dialogo tra me e marcowip abbia preso una piega antipatica, visto che continuo a leggere del sarcasmo nei suoi interventi. Come ho detto migliaia di volte io non sono un esperto e qui tutto sono meno che un Professore, in quanto questo per me è un passatempo e non un lavoro. Ho ricevuto aiuto dal Forum sin dal primo giorno in cui mi sono iscritto e, quando sono stato in grado di farlo, ho ritenuto di restituire tante cortesie al Forum realizzando quella Guida che alla fine è andata al di là di ogni possibile aspettativa. Ho scritto quello che pensavo ma contemporaneamente ho dato acnhe risposte esaustive ai dubbi, e quindi certamente non con l'intento di innescare una inutile polemica, che guasta gli animi e fa passare la voglia di divertirsi. Come ho scritto nel mio ultimo intervento intendevo chiudere la cosa lì, e per me resta questo l'intento; marcowip ha voluto comunque dire la sua ed anche se colgo un tono offensivo in certi passaggi preferisco evitare di rispondere e mantenere l'intento di chiudere la polemica, perché tanto è ovvio che non porterà da nessuna parte se non al rischio dell'inasprimento dei toni. Voglio quindi sperare che anche marcowip ora continui a parlare esclusivamente di questioni tecniche, evitando di aggiungere commenti che nulla hanno a che fare più con la questione. Ed anzi per rispetto nei confronti del suo Topic eliminerò tutti i miei precedenti interventi, sperando di far cosa gradita. Mi scuso con il Forum ma chi mi conosce sa bene che io non passo le mie giornate a litigare nei Topic, se posso dò una mano e se non posso mi limito a leggere ed imparare.

Michele... fai bene.
:zipper_mouth_face:

Beh, giusto per toglierti il dubbio, io SONO quel Professore di Informatica dell'Università di Catanzaro, ho però detto che quel titolo e la mia professione su questo Forum non c'entrano nulla, perché qui sono un hobbysta e quel titolo non mi fa più preparato di altri, quindi se lo si vuole usare come forma di rispetto a me sta bene, anche se non lo pretendo da nessuno, come può confermarti un intero Forum, ma se lo si vuole usare per ledere la mia dignità non mi sta più bene (ma qui il discorso è generico, quindi niente di personale, chi ha da intendere intenda). Sul resto spero solo che Leo rilegga attentamente le tue affermazioni iniziali, forse su qualcosa avrà da aggiungere o forse no. Buona serata anche a te.