Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

26
voti

PIERIN AT90. Scheda Open Source per sperimentare con gli AVR - parte II

Nella prima parte abbiamo analizzato il circuito la teoria e gli strumenti software da scaricare per poter sviluppare con gli AT90USB, in questa seconda parte monteremo il circuito ed analizzeremo, dal punto di vista pratico passo dopo passo, tutti i passaggi per mettere in funzione il PIERIN e realizzare il primo programmino di prova. In questa occasione illustrerò anche una tecnica per montare gli integrati SMD che spero possa essere di aiuto a qualche lettore.

Indice

Saldare gli SMD

Quasi tutti i microcontrollori (e non solo loro) vengono venduti in contenitore per montaggio superficiale e l' AT90USB non è da meno. Colgo quindi l' occasione per illustrare un modo per montare i circuti integrati che, a mio avviso, è estremamente valido. Non è farina del mio sacco ma è una sintesi di tutte le tecniche che ho potuto sperimentare, molte delle quali illustrate dagli utenti di ElectroYou quindi a loro va il merito. Io ho solo raccolto i vari sistemi, li ho sperimentati e ne ho individuato uno (che oramai utilizzo sempre) che è poco critico e non necessita di attrezzature particolari. Basta un saldatore, un po' di stagno, un barattolino di flussante liquido ed un pezzo di treccia dissaldante per ottenere saldature perfette. L' integrato che monterò ' in contenitore QFP da 64 pin con passo 0.8 mm ma con questa tecnica si possono benissimo montare anche i TQFP con passo 0,4 mm ottenedo sempre un risultato eccellente.

Il saldatore e lo stagno

Ho a disposizione tre saldatori a stagno immortalati nella foto qui sotto. Partendo da sinistra: un micro saldatore a punta sottilissima per lavori fini, un normale Weller WECP-20 ed un saldatore da 60W che uso per lavori non elettronici e per saldature che necessitano potenza.

Saldatori.jpg

Saldatori.jpg

Ho anche tre diversi tipi di stagno. Da sinistra verso destra vediamo uno flio di ottima qualità da 0,5mm. con un flussante interno che lo rende particolarmente fluido, un filo di buona qualità da 0,8mm. ed un filo da 1,5 mm. ... che uso per saldare particolari meccanici o cavi di grande sezione.

stagno.jpg

stagno.jpg

Per saldare l' integrato utilizzerò il saldatore di destra (quello per le pentole) e lo stagno più grosso. Non perché sono masochista ma per evidenziare il fatto che questa tecnica non necessita di particolari attenzioni se non quella di posizionare alla perfezione i pin del componente sulle piazzole.

Il montaggio

Per posizionare il componente ho lasciato cadere una gocciolina di colla tipo "attaccatutto" ma anche una goccia dal tubetto di "Bostik" o di "colla Artiglio" va benissimo. Ne basta pochissima. Dopo aver deposto una gocciolina di colla sul circuito stampato ho appoggiato il componente e l' ho posizionato usando uno stuzzicadenti e, una volta posizionato, ho lasciato asciugare la colla per una mezz' ora.
Poi ho acceso il saldatore ed ho fatto due saldature agli estremi dell' integrato senza curarmi dei ponticelli fra un pin e l' altro. Non c'e' bisogno di fare attenzione.

fissaggio.jpg

fissaggio.jpg

Dopo ho saldato i vari pin facendo attenzione a saldarli tutti e creando praticamente un cordone di stagno. Mi scuso se la foto è sfocata (ne ne sono accorto tardi) ma penso che comunque si possa vedere bene che obbrobrio di saldatura è venuta fuori. Tutti o quasi i pin in corto fra di loro.

obbrobrio.jpg

obbrobrio.jpg

Ed ora la lavorazione magica. Ho bagnato la treccia dissaldante nel flussante liquido e l' ho premuta contro le saldature. Il flussante facilita la fusione delle stagno che viene risucchiato per capillarità dalla treccia eliminando tutti i ponticelli fra i pin e lasciando i pin perfettamente saldati.

assorbimento.jpg

assorbimento.jpg

Man mano che la treccia si riempiva di stagno ne eliminavo un pezzo (circa 1cm.) tagliandola con le tronchesine e reimmergendola nel flussante. Ho consumato circa 4 cm. di treccia ed il risultato ottenuto dopo la pulizia è questo.

pulito.jpg

pulito.jpg

Una lavata con un po' di alcool denaturato, quello che si usa in casa, ed il risultato ottenuto è questo.

risultato.jpg

risultato.jpg

L' immagine parla da sola ed è mio dovere ringraziare ElectroYou ed i suoi utenti che, tramite proficuo scambio di informazioni ed esperienze, mi hanno permesso di arrivare ad avere un sistema di saldatura affidabile, veloce e per niente critico.

Montaggio del PIERIN

Poche parole per ricordare che, in qualsiasi circuito, prima si montano i componenti bassi come resistenze e diodi, poi i condensatori ed infine i componenti più alti come i connettori, i jumper ed in questo caso, per ultimo il connettore USB. Il quarzo però non l' ho montato direttamente sul circuito stampato ma ho brutalizzato uno zoccolo per circuiti integrati per ottenere due ricettacoli per i pin e poi li ho saldati. In questo modo posso mettere di volta in volta il quarzo che m' interessa utilizzare.

Quarzo.jpg

Quarzo.jpg

Nella foto si possono vedere le strip maschio-maschio che ho montato nei fori laterali. Ho montato strip di questo tipo perché utilizzerò questa base su prototipi su millefori realizzati con zoccoli wire-wrap e, in taluni casi, su breadboard. I fori sono comunque abbastanza larghi da accettare connettori come quelli montati su arduino con i pin a sezione quadrata, quelli tipo i jumper per intenderci. Si può anche notare, purtroppo, la presenza di una modifica. Più che modifica diciamo che mancava un collegamento sulla scheda. Errare è umano, io ho errato e non ho disegnato un collegamento. Un pezzettino di filo che collega R2 al pin 21 (Vcc) ed il problema è risolto.

Messa in funzione

Prerequisisti

Prima di collegare il Pierin all' USB è necessario installare il programma FLIP 3.4.3 che si può scaricare direttamente da QUI che contiene anche il driver USB per il bootolader. Una volta installato bisogna accertarsi che il jumper JP1 sia inserito in modo da alimentare tutta la baracca tramite il 5V dell' USB e quindi collegare la scheda all' USB.

Driver USB

E' venuto il momento di collegare la scheda ad una porta USB, il LED PWR si accende indicando la presenza di alimentazione. A questo punto bisogna:

  • Premere il pulsante BOOT e tenerlo premuto
  • Preme e rilasciare il pulsante RESET

Da PC esce il classico suono del collegamento USB e compare la finestra che richiede l' installazione del driver. Selezioniamo "NO, non ora" dalle opzioni "Consentire la connessione a Windows Update per la ricerca di software?" e premiamo "Avanti". Comparirà la schermata

driver1.jpg

driver1.jpg

Che indica AT90USB128 perché ho montato sulla scheda un AT90USB1287. Selezioniamo "Installa il software automaticamente" perché i drivers sono già presenti e sono stati installati insieme al programma FLIP, premiamo "Avanti" e quando il driver sarà correttamente installato comparirà la finestra

DriverInstallato.jpg

DriverInstallato.jpg

Premiamo quindi "Fine" per terminare l' installazione.

Programma FLIP

Ora possiamo verificare se il programma FLIP vede correttamente la nostra scheda. Useremo in futuro questo programma per caricare le nostre applicazioni nel micro senza bisogno di programmatori. Lanciamo FLIP e comparirà questa schermata

FilpIniziale.jpg

FilpIniziale.jpg

E' necessario ora specificare il microcontrollore che vogliamo utilizzare. Per fare questo si clicca con il mouse sul simbolo del circuito integrato in alto a sinistra della schermata di FLIP. Compare una lista di possibili microcontrollori.

devices.jpg

devices.jpg

Avendo montato un AT90USB1287 scelgo questo e premo OK. Dobbiamo ora effettuare la connessione con il micro e lo facciamo cliccando il tasto con il disegno della presa USB in alto a sinistra della schermata di FLIP e alla destra del simbolo del circuito integrato. Nel menù a tendina che compare selezioniamo USB e comparirà la finestra di connessione.

connection.jpg

connection.jpg

Premiamo il tasto "Open" e finalmente la scheramata di FLIP verrà visualizzata con tutti comandi disponibili.

FlipConnesso.jpg

FlipConnesso.jpg

Diamo ora uno sguardo alla schermata di FLIP.

  • A sinistra troviamo una parte denominata "Operation Flow" che indica la serie di operazioni che verranno effettuate premendo il tasto "Run". Ci interessa perché tramite queste operazioni potremo caricare i nostri programmi e lo faremo cliccando sul tasto "Run".
  • Per caricare in FLIP il programma da scrivere nella FLASH del micro si seleziona dal menu "File" la voce "Load HEX file ...". Una volta caricato basterà premere "Run" per scrivere il programma FLASH.
  • La parte centrale della schermata contiene le indicazioni sulla memoria su cui si sta lavorando, nel nostro caso la FLASH.
  • Premendo il tasto "Select EEPROM" il programma darà informazioni sulla EEPROM interna e la possibilità di programmarne il contenuto. Premendo nuovamente il tasto (che avrà cambiato scritta in "Select FLASH") si ritorna a fare riferimento alla FLASH.
  • Nella parte destra troviamo le informazioni sul micro ed il pulsante "Start Application". Cliccando su questo tasto si lancia il programma utente scritto nella FLASH ma ritorneremo su questa funzione più avanti.

Per ora lasciamo aperto il FLIP e proseguiamo con la stesura di un programmino di prova utilizzando AVR Studio 5.

Programma di prova

Per verificare che tutto funzioni ho scritto il mio solito programma di prova che semplicemente fa muovere dei pin incrementando una variabile e scrivendola su una porta. Anche questa volta ho utilizzato AVR Studio 5 ed i passi per creare un nuovo progetto si possono leggere nel mio precedente articolo Iniziare con AVR ATmega. Il programma è molto semplice e questo è il listato del sorgente.

/*
 * ProvaAT90USB1287.c
 *
 * Created: 19/07/11 12:29:15
 *  Author: TardoFreak
 */ 

#include <avr/io.h>
#include <avr/wdt.h>

int main(void)
{
  unsigned char c;

  // disabilita watchdog
  MCUSR &= ~(1 << WDRF); 
  wdt_disable();
  
  // Programma la porta B come tutte uscite
  DDRB = 0xff;
  c = 0;

  // Loop infinito di incremento
  while(1)
  {
    PORTB = c;
    c++;   
  }
}

Una cosa è da notare e da tenere presente. All' inizio del mai vi sono due linee dopo il commento "disabilita watchdog". Queste due linee sono estremamente importanti perché non è possibile disabilitare il watchdog tramite il suo fuse. Nessun fuse può essere cambiato quando si usa il bootloader ma questo non è un problema perché si può configurare la macchina tramite il firmware. Bisogna però tenerlo bene a mente per evitare problemi.

Caricamento del programma

E' giunto quindi il fatidico momento di caricare il programma nel micro e farlo partire. Bisogna cercare dov'è il file HEX. Utilizzando AVR Studio 5 il file si trova in (cartella del progetto)\Debug\ o in (cartella del progetto)\Release\. Io ho selezionato l' opzione di progetto "Release" quindi il file HEX si trova in quella cartella. Se mi avete seguito fino a questo punto avete ancora aperto il FLIP, se l' avete chiuso premete e tenete premuto il tasto BOOT, premete il tasto RESET (il PC emetterà il suono di quando si collega una periferica USB), lanciate FLIP, selezionate il tipo di micro, connettetevi, dal menu "File" selezionate "Load HEX File ..." e caricate il file HEX.
Premiamo quindi il tasto "Run" in basso a sinistra della schermata di FLIP ed il programma verrà caricato nel micro. Per farlo partire ci sono due possibilità: Premere il tasto "Start Application" (preferibile) oppure premere il pulsante di RESET sulla scheda. Appena il programma parte il PC emette il suono che si sente quando si scollega una periferica USB che sta a significare che il micro non sta più eseguendo il firmware del bootoloader ma queello che gli abbiamo programmato.
Per verificarlo basta prendere l' oscilloscopio e collegarsi fra un piedino di massa (6,22,53 o 63) ed il piedino 10 (PB0) ad esempio, vediamo un' onda quadra. Dal piedino 11 (PB1) uscirà un' onda quadra di frequenza pari alla metà di quella che esce dal piedino 10 e così via.

Facciamo lampeggiare un LED

"Non ho l' oscilloscopio, come posso verificare che tutto funzioni?" Non c'e' problema, ho scritto un programma che fa lampeggiare un LED a frequenza di 1Hz (con quarzo da 16MHz.) o di 0,5Hz. (con quarzo da 8MHz.) che è questo.

/*
 * ProvaAT90USB1287.c
 *
 * Created: 19/07/11 12:29:15
 *  Author: TardoFreak
 */ 

#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/wdt.h>
#include <avr/pgmspace.h>

// Timer software.
// Nota: vanno dichiarate come "volatile" per fare in modo che il 
// valore sia sempre e comunque letto evitando che l' ottimizzazione 
// non lo faccia.
volatile unsigned short SoftTimer1;

// Routine di servizio chiamata quando il contenuto del comparatore A 
// corrisponde al valore del timer. Quando raggiunge tale valore il 
// timer viene resettato e viene invocata questa routine.
ISR(TIMER1_COMPA_vect)
{
  if(SoftTimer1) SoftTimer1--;
}

//--------------------------------------------------------------------------
int main(void)
{
  // disabilita watchdog
  MCUSR &= ~(1 << WDRF); 
  wdt_disable();
  
  // Inizializza timer 1 per timeout 10ms
  // Questa istruzione assicura che l' I/O clock per il timer1 sia abilitato
  PRR0 &= ~(1<<PRTIM1);

  // Carica il registro di comparazione per ottenere 10ms
  OCR1A = 3125;
	
  // Enable output compare A match 
  TIMSK1 = (1<<OCIE1A)|(0<<TOIE1);
	
  // Avvia il timer1, prescaler 1/64 modo operativo Clear Top Count
  TCCR1B = (0<<WGM13)|(1<<WGM12)|(0<<CS12)|(1<<CS11)|(1<<CS10);
	
  // Predispone la porta B come uscita
  DDRB = 0xff;
	
  // Abilita le interrupt
  sei();
	
  while(1)
  {
    if(!SoftTimer1)
    {
      PORTB ^= 0x01;    // Commuta l' uscita PB0
      SoftTimer1 = 50;  // Carica il timer software per intervallo 500ms.
    }		
  }
}

Che, a dirla tutta, è il programma del mio precedente articolo al quale ho solamente aggiunto la disabilitazione del watchdog. Ma non lo dite a nessuno così posso fare il figo e dire che ho scritto il programma ex novo ih ih ih.
A parte gli scherzi, ho montato il Pierin su una breadboard, collegato l' anodo di un LED al piedino 10 in serie ad una resistenza da 2K7 verso massa (uso LED ad alta efficienza), caricato il programma, fatto partire ed il LED lampeggia.

LampeggioLed.jpg

LampeggioLed.jpg

Ora capisco che è un po' difficile vedere un lampeggio in una foto ma il LED acceso che si vede in foto rimane acceso per 1s. e poi rimane spento per un altro secondo, fidatevi. Giurin giurello, che mi venisse un colpo se dico il falso eh eh eh.

Conclusioni

E' vero che ho fatto fare questi circuiti stampati perché mi servono per i miei lavori, è vero che non userò il bootloader per sviluppare i miei progetti poiché ho i programmatori ISP e JTAG ,ma è anche vero che ho trovato questo micro estremamente divertente e simpatico.
Usare un oggetto del genere mi ha riportato indietro negli anni facendomi rivivere emozioni che non provavo più da tempo. Mi sembra di essere tornato a 16 anni quando quell' amico ingegnere mi ha regalato un micro romless e mi ha spiegato come utilizzarlo senza emulatore. La soddisfazione di lavorare su un micro e programmarlo senza dover spendere una lira per l' acquisto di un programmatore ha un suo fascino particolare, sembra di aver raggiunto chissà quale traguardo! E' un qualcosa difficile da descrivere ma bello al punto che quasi mi dispiace non utilizzarlo in futuro. Che volete che vi dica? L' elettronica è anche una passione e bisogna essere motivati per studiarla, sperimentarla e via discorrendo, ma questa passione che lo si voglia o no, ogni tanto si fa sentire. Ed è una gran bella cosa, almeno per me lo è.

Papà

Papà

E per sempre rimarrà il ricordo di mio Papà, "Pierin", che mi vedeva da bambino trafficare con i componenti elettronici (a volte mi mandava a forza a giocare a pallone nei giardini) e che poi mi ha visto intraprendere la via dell' elettronica. Mi piace pensare che sia lassù da qualche parte, sorridente come sempre, e che magari pensi "sei sempre il solito, non cambierai mai".
Ciao Papà.

Circuito stampato

PCB.jpg

PCB.jpg

Questo circuito stampato l' ho realizzato per le mie necessità ma ho cercato di ampliarlo in modo che potesse svolgere anche le funzioni di sistema di sviluppo per gli AT90, quindi è in vendita a 13,90€ IVA inclusa. Se interessa potete contattarmi direttamente o scrivere una e-mail a questo indirizzo

12

Commenti e note

Inserisci un commento

di ,

Tardo davvero magnifica la coppia di articoli! Una domanda; il circuito stampato si acquista "corretto"? cioè il famoso filo volante nella versione finale è corretto?

Rispondi

di ,

Mi sono preso il tempo che mi mancava (causa lavoro) per leggere con attenzione gli articoli su PIERIN e devo dire che sono favorevolmente colpito dai micro ma soprattutto dalla tua realizzazione ed esposizione, TardoFreak! Ho lavorato con sistemi a bootloader su seriale con micro della Fujitsu (a confronto, sono dei chiodi!) e l'unica cosa che manca allo sviluppo con bootloader è la possibilità di fare debug su circuito. Per quello si deve passare a strumenti professionali. Grazie ancora!

Rispondi

di ,

Beh, la scheda la li può acquistare già fatta. ;)

Rispondi

di ,

Davvero complimenti TardoFreak!! Coppia di articoli chiarissimi come sempre e... davvero stimolanti!! Confesso che sino ad ora ho usato un po' solo i PIC e che mi ero ripromesso dopo le ferie di acquistare una scheda Arduino per ampliare la sperimentazione. Ora mi hai davvero tentato! Unico "neo" (ma ovviamente non è una tua colpa!!) temo che la realizzazione casalinga di una simile basetta sia un po' problematica... Ottimo sistema di saldatura! Ancora complimenti! Per papà ti capisco, anche se nel mio caso è la mamma a mancare. Un salutone!

Rispondi

di ,

Dimenticavo: altrove lo trovi anche a meno.

Rispondi

di ,

Ti dirò, questa sera ho cazzeggiato (scusate il francesismo) con il micro ed il bootloader e mi sono divertito. Gli ho fatto fare cose semplici come pilotare un modulo LCD. Sai cosa ti dico? Tu che hai le conoscenze per farlo fatti un circuito stampato, o monta un chip su un adattatore e filati il circuito, Insomma fatti un "coso" per provarlo e vedrai che ti divertirai. c'e' anche un modello a 32 PIN con 16K di memoria e costa quanto un panino al bar. Su RS (non voglio far pubblicità perché i componenti non te li regalano, sgrunt!) l' AT90USB162 lo vendono a 3,12€.

Rispondi

di ,

Complimentoni Stefano. Mi hai messo una gran voglia di provare gli AVR :D

Rispondi

di ,

Beh, mio Papà era un meccanico e di elettronica non ci ha mai capito niente. Si preoccupava per me quando mi vedeva trafficare invece di giocare a birille, si è preoccupato fino a quando non ha constatato che, con l' elettronica, avrei potuto affrontare la vita e sostenere la mia famiglia. In cuor suo faceva il meglio che poteva fare, e di bene ne ha fatto tanto. La cosa che mi fa sorridere è che se fosse qui in questo momento mi direbbe "ma non hai niente di meglio da fare? Sii serio, lascia perdere queste cose dacci dentro con il tuo progetto". Non sai cosa darei per sentirmelo dire ancora una volta. Vabbe' ... andiamo avanti :)

Rispondi

di ,

Bravo TardoFreak. E' veramente un saldatore per le pentole ma il risultato finale mi sembra ottimo. Per la conclusione, poi, siamo stile fotocopia, con l'unica differenza che il mio non mi mandava a giocare a calcio.

Rispondi

di ,

Bell'articolo, dagli ottimi contenuti.Non avendo esperienza di microprocessori mi sono soffermato sull'interessante parte di "montaggio" dove nel rivedere l'utilizzo della calza dissaldante mi sono riaffiorati alcuni ricordi delle prime esperienze. Nella parte conclusiva,forse perchè mi ci ritrovo anch'io,la citazione al tuo papà direi che Ti fa Onore. Complimenti TardoFreak.

Rispondi

di ,

Complimenti! Per gli incollaggi temporanei, non solo di componenti elettronici, la colla che preferisco è l'attaccatutto cianoacrilico perché si può sciogliere e rimuovere con l'acetone.

Rispondi

di ,

Grande TardoFreak. Interessantissima la sezione del montaggio che insegna i trucchetti del mestiere, come altrettanto toccante la conclusione. Congratulazioni!

Rispondi

Inserisci un commento

Per inserire commenti è necessario iscriversi ad ElectroYou. Se sei già iscritto, effettua il login.