Freedom II : La rivoluzionaria scheda di sviluppo per picmicro a 40 pin

Giovanni Bernardo | 17 gennaio 2010
Categorie: PICmicro 10/12/16 - PICmicro 18

freedom2_00 Sul fronte delle demoboard (le schede di sviluppo con le quali fare esperimenti ed imparare la programmazione) è arrivata una scheda davvero ben fatta, semplice e soprattutto ricca di periferiche con le quali fare tutti i nostri esperimenti!

La scheda è stata ideata, creata e sviluppata da Mauro Laurenti (http://www.laurtec.it). Non si tratta di un prodotto commerciale, bansì di una scheda amatoriale curata nei minimi dettagli come solo una persona appassionata può fare.

La costruzione è ai massimi livelli: doppia faccia con serigrafie, una disposizione dei componenti ad altissimo livello che la rendono anche a livello estetico un prodotto davvero valido e di molto superiore a tantissimi prodotti commerciali.  Sto spremendo questa scheda da giorni e non finisco di stupirmi della sua versatilità e flessibilità: non devo collegarci niente! Le periferiche che mi servono sono già tutte a bordo, posso selezionarle/deselezionarle agendo su alcuni jumper e se ancora ho bisogno di qualcosa che non c’è, vi è un ottimo connettore di espansione a 40 poli tramite il quale posso collegarci altre schede o altre periferiche! Magnifico!

Mauro fornisce il PCB, se avete bisogno dei componenti da montarci su, contattatelo e mettetevi d’accordo con lui. Ulteriori informazioni possono essere reperite sul suo sito, nella pagina ufficiale del progetto.

Analizziamo la Freedom II in dettaglio e vediamo cosa ci offre.

Connettore ICSP

freedom2_icsp

Dal momento che il pickit2 e i programmatori ICD della Microchip oramai fanno da padrone, non poteva mancare il connettore a 6 poli per permetterci la programmazione in-circuit.

Ovviamente si può usare tale connettore anche per fornire alimentazione alla scheda tramite l’apposita funzione, selezionabile via software, del pickit2.

Per un utilizzo più agevole, montate un connettore a 90°, in maniera tale che il programmatore non interferisca con il display lcd.

Connettori di alimentazione

freedom2_alimentazione

La freedom II monta due connettori di alimentazione: un connettore wago a vite, per poter alimentare la scheda con dei fili provenienti da un normale alimentatore da laboratorio, e un connettore per poter utilizzare i classici alimentatori da parete con jack standard. A bordo è presente un regolatore di tensione 7805 e condensatori di filtro per ottenere la giusta tensione di alimentazione.

Display LCD

freedom2_lcd Sulla freedom 2 vi è la possibilità di montare un display lcd hd44780 compatibile con piedinatura standard. Potete scegliere voi il connettore da saldarvi sopra. Avendo dei display con connettori maschio a pettine, personalmente ho montato uno strip femmina.Nel caso il vostro display non avesse la piedinatura standard (fate riferimento a questo nostro articolo) o vorreste poter montare un altro tipo di display, è possibile montare un secondo tipo di connettore, denominato EX2, con il quale potete decidere voi quali linee della porta D devono arrivare al vostro display.

Il display fa uso della porta D, condivisa con i led. Viene sfruttata anche la linea RW per poter gestire il display  in modalità lettura oltre che in scrittura. Anche la retroilluminazione viene gestita via software: i led per il backlight, difatti, vengono pilotati da un transistor comandato dalla porta RC1. E’ presente inoltre il trimmer per la regolazione del contrasto il quale può essere girato anche dal lato saldature senza la necessità di dover staccare il display.

La funzione del display può essere disattivata agendo su un jumper.

Cicalino

freedom2_buzzer Possiamo montare un cicalino autooscillante o un cicalino senza elettronica. Verrà comandato dalla porta RC0. E’ disinseribile tramite jumper.

Led

freedom2_led I led non potevano mancare! Ne sono presenti ben 8. Condividono la porta D con il display e possono essere disattivati agendo su un jumper.Se si utilizza il display possono essere lasciati comunque accesi e rifletteranno lo stato delle linee dati del display.

Pulsanti

freedom2_pulsanti Possiamo montare 4 pulsanti, che saranno collegati alle porte RB4/RB7. La scelta di collegare i pulsanti a tali porte non è casuale: possiamo difatti monitorare l’interrupt sul cambio di stato di tali porte. Ai pulsanti non sono collegate le resistenze di pull-up, per cui se decidiamo di utilizzare tali pulsanti, non dobbiamo dimenticare di attivare le resistenze di pull-up interne del picmicro. Altra nota importantissima: se scegliamo di alimentare la scheda tramite il pickit, i pulsanti 4 e 3 risulteranno sempre premuti in quanto si trovano sulle linee RB6 e RB7 utilizzate dal programmatore, in tal caso è necessario utilizzare un alimentatore esterno.

Trimmer per simulazione ingresso analogico

freedom2_trimmer Abbiamo a disposizione un trimmer affianco ai pulsanti, collegato alla porta RA1/AN1. Molto utile per simulare una tensione in ingresso. Disinseribile.

Sonda di temperatura LM35

freedom2_lm35 Possiamo montare una classica sonda di temperatura LM35 che potremo leggere sulla porta RA2/AN2. Disinseribile.

Sensore di luminosità

freedom2_ldr Molto utile la possibilità di montare anche una LDR (Light Dependant Resistor). La possiamo sfruttare, ad esempio, per attivare la retroilluminazione del display in caso di oscurità o per mille altre applicazioni.E’ collegata alla porta RA0/AN0. Disinseribile.

Comunicazione RS232 / USB / CAN

freedom2_comunicazione Oltre all’I2C (che illustrerò dopo) abbiamo la possibilità di far comunicare il pic con l’esterno attraverso altri sistemi. In questa parte della scheda troviamo difatti un connettore USB, un connettore RS232 e un connettore a vite per la comunicazione CAN.L’ USB è disponibile in dipendenza dal pic utilizzato. Il PIC16F877 non ha l’usb e quindi non può essere sfruttata tale funzionalità, presente invece sul 18F4550.

La porta seriale RS232 è disponibile per tutti i tipi di pic e fa affidamento sull’arcinoto MAX232. (vedi lezione 10)

La comunicazione CAN, anche se poco sfruttata in ambito amatoriale, è diventata uno standard in campo automotivo grazie al suo elevato grado di sicurezza. A differenza dell’ USB e della RS232, sulla linea CAN possono essere montati più dispositivi in grado di comunicare tra loro ed inoltre la comunicazione raggiunge notevoli distanze senza essere influenzata da disturbi. Oltre al campo automotivo, grazie alle sue caratteristiche, numerose applicazioni domotiche ed industriali fanno uso di tale protocollo, nonchè il progetto del robot umanoide Artorius di Mauro Laurenti. La comunicazione CAN si appoggia all’integrato della Microchip MCP2551.

Per quanto riguarda la comunicazione USB, sulla scheda è  presente  un jumper per attivare tale modalità di comunicazione  nonchè un jumper per attivare l’autorilevamento del cavo usb collegato.

Comunicazione I2C : EEprom e Real Time Clock/Calendar

freedom2_i2c Sulla scheda trovano posto altri due integrati : una Eeprom e un RTC (Real Time Clock/Calendar)  che sfruttano la comunicazione I2C. Il protocollo I2C è un protocollo di tipo seriale, già integrato sui pic aventi il modulo MSSP (come il 16F877 e il 18F4550) e che permette a più dispositivi di appoggiarsi allo stesso bus. Niente paura: anche se il vostro pic non ha tale modulo a bordo, la comunicazione I2C può essere fatta comunque emulandola via software. Possiamo quindi montare una eeprom del tipo 24LCxx o 24Cxx utile per memorizzare dei dati e richiamarli anche dopo che l’alimentazione è stata tolta.E’ presente un jumper per attivare tale modalità di comunicazione. Nota: i pic aventi la comunicazione USB, presentano i pin per la comunicazione I2C in posizione differente da quella standard. Il jumper permette di selezionare difatti su quali pin è presente l’I2C.

Per l’RTC Mauro ha scelto il PCF8563 prodotto dalla Philips, che ha a dispozione anche una funzione sveglia.

In realtà, avendo io in mio possesso un RTC prodotto dalla Dallas, il DS1307, non ho dovuto  effettuare nessuna modifica per poterlo utilizzare: la piedinatura è identica, l’unica differenza sta nel pin che sul PCF8563 è utilizzato per segnalare l’interrupt generato dalla sveglia, mentre sul DS1307 viene utilizzato per la batteria di backup (che serve a far continuare a funzionare l’orologio anche in mancanza di alimentazione). Vedremo in una prossima lezione del corso di programmazione come poter utilizzare su questa scheda il DS1307 senza fare modifiche, sfruttando anche la funzione di backup tramite batteria tampone.

Connettore di espansione

freedom2_connettore_espansione Ancora non vi basta tutto questo? Per i più esigenti abbiamo anche un connettore di espansione a 40 pin, sui quali sono riportati tutti gli I/O del picmicro e l’alimentazione.E’ possibile montare uno strip femmina da 20×2 in maniera tale da potervi collegare direttamente dei fili senza fatica. Io ho scelto invece di montarvi uno strip maschio da 20×2 per poter utilizzare tale connettore con i comuni cavi flat IDE dei computer utilizzati per il collegamento degli hard disk e dei lettori cdrom.

Affianco ad ogni pin è serigrafata la funzione che svolge.

Conclusioni

Ovviamente in questa mia breve disquisizione ho tralasciato tante altre caratteristiche della scheda. Le istruzioni per il montaggio e l’utilizzo le trovate sul sito di Mauro nella pagina dedicata a questo stupendo progetto. Per poter avere tale scheda (che ripeto: non è un prodotto commerciale) è necessario fare una donazione di supporto e contattare Mauro all’indirizzo fornito sul suo sito. Da parte mia posso darvi soltanto alcuni piccoli consigli:

1 – Fatene un buon uso e condividete le cose che imparate con essa: lo spirito e il lavoro che ci sono dietro questa scheda rappresentano un sentimento molto elevato, che può capire soltanto chi lavora con passione a questi argomenti e contribuisce a diffondere il sapere in via gratuita. La vostra donazione rappresenterà quindi un gesto di sincero apprezzamento e di supporto verso questi progetti e verso tutto ciò che li mantiene in piedi. Tenete conto che si tratta di una scheda professionale che ha dei costi.

2 – Trattandosi di una scheda a doppia faccia, ci sono moltissimi fori metallizati passanti per collegare una faccia con l’altra. Alcuni di questi fori si trovano molto vicini a piazzole di saldatura dei componenti, per cui se non siete bravi ad usare il saldatore e/o non utilizzate un saldatore con una punta molto sottile e/o non utilizzate  uno stagno sottile (questa ultima condizione non è necessaria se siete bravi), difficilmente riuscirete ad ottenere un buon lavoro. La scheda funziona benissimo e da grandissime soddisfazioni.

3 – Prima di collegare il display LCD, verificate che la piedinatura del display in vostro possesso sia quella standard, così come indicato nella lezione 7 del nostro corso di programmazione dei picmicro in C. Personalmente ho un display che ha una piedinatura invertita ed è uguale esteticamente ad un altro che ha la piedinatura standard, per cui, tratto in inganno, ho commesso l’errore di montarlo normalmente e dargli tensione. Sono stato fortunato: il display funziona ancora perfettamente pure se l’alimentazione gli è arrivata al contrario! Ma la prossima volta non potrei esserlo.

Tenete inoltre presente che questa scheda, facilitando di molto lo sviluppo, sarà utilizzata nelle prossime puntate del corso di programmazione dei picmicro in C al posto della versione precedente (Freedom I) e ne apprezzerete anche voi i vantaggi. Io ne sono entusiasta e non posso trattenermi dall’esporre la mia stima e ammirazione verso Mauro.

Giusto per poter cominciare vi lascio qui due semplici programmini che in realtà non fanno nulla di particolare: avremo modo di approfondire le potenzialità di questa scheda durante il corso di programmazione picmicro in C.

Esempi Freedom II (1466)

(uno realizza il classico effetto supercar e l’altro accende/spegne i led alla pressione dei pulsanti facendo suonare il cicalino)

Fotografie

Posto qui alcune foto della scheda che ho montato per farvi rendere conto della realizzazione impeccabile di questo progetto. Come vedete ho montato un PIC16F877, ma presto passerò al PIC18F4550 per incominciare ad utilizzare l’USB. Dal momento che tra i miei utenti ci sono persone molto attente, ci tengo a fare alcune precisazioni per chiarire dei dubbi e rispondere a domande che potrebbero derivare dal guardare tali foto:

  • Non ho montato il transceiver CAN, per cui c’è uno zoccolo ad 8 pin vuoto.
  • Non ho montato il regolatore di tensione 7805 e ho cortocircuitato le piazzole destinate ad accogliere ingresso e uscita del regolatore. Ho fatto così perchè o utilizzo l’alimentazione fornita dal pickit2 o utilizzo un alimentatore da parete a 5 volt. Se utilizzate un alimentatore con tensione superiore montate il 7805 se non volete che vi si frigga tutto.
  • I distanziali usati per tenere sollevata la scheda sono quelli che si trovano normalmente nei pc per il montaggio della scheda madre.
  • La scheda che arriverà a voi sarà leggermente diversa da questa mia, che è la versione beta: sulla vostra vi saranno infatti delle resistenze affianco ai pulsanti e un gruppo di resistenze sotto all’lcd. Tali resistenze sono state aggiunte per aumentare la sicurezza.
  • Ho utilizzato dei jumper colorati per capire al volo quali funzioni attivare e disattivare a seconda di ciò che voglio fare. Ovviamente questo non è necessario dal momento che la funzione di ogni jumper è serigrafata sulla scheda e basta sapere che mettendo un jumper verso sinistra si attiva la funzione corrispondente, mettendolo verso destra la funzione viene disattivata.
  • Ho montato l’LDR a 90° verso l’esterno per evitare che venisse coperta dall’uso di LCD più grandi. Ho difatti un LCD da 4×20 che copre un’area molto grande. Per tale motivo è necessario anche utilizzare il connettore ICSP a 90°.
  • Se avete di intenzione di utilizzare fisso l’LCD da 16×2, tenete presente che sul pcb sono presenti 4 fori in corrispondenza dei fori dell’LCD in maniera da poterlo fissare più saldamente mediante 4 distanziatori a vite. Quindi come vedete è stato pensato proprio a tutto: cura e attenzione maniacali contraddistinguono questo prodotto.

Buona visione

Puoi andare alla fine dell'articolo e lasciare un commento. I trackback e i ping non sono attualmente consentiti.

  1. #1 da Jojo il 19 dicembre 2010

    E’ veramente un’ottima board, l’ho comprata e mi piace un sacco, si posso fare tantissime cose…

  2. #2 da neuro_79 il 11 febbraio 2011

    Ciao Giovanni, come già annunciato sul forum della lezione del display ti comunico che ho acquistato la FREEDOM II con PICkit2 e volevo chiederti due cosetta.

    Premetto che fin ora io usavo un ICD2 CLONE, in “MPLAB” dentro i “Settings” del programmatore era ben segnalata la possibilita di alimentare il circuito dal programmatore oppure no. Con una vistosa NOTA che metteva in guardia dal NON alimentare dal programmatore un circuito già con alimentazione estrena!!!

    1) Con PICkit2 nei “Settings” non ho trovato la stessa selezione….è quindi possibile alimentare la FREEDOM II dal programmatore? E’ possibile creare dei danni in questa operazione cambiando settaggi?

    2) Ho testato i due programmini qui forniti e con il secondo se mi metto in modalità DEBUG fa cose strane, ovvero il cicalino suona sempre e un led resta sempre acceso. Dipende solo dal fatto che i pulsante 3 2 4 nella FREDDOM II sono cablati su sui pin di programmazione?

    • #3 da Giovanni Bernardo il 11 febbraio 2011

      Con il pickit2 io alimento il circuito utilizzando l’apposita funzione presente sul programma, affianco a dove si seleziona la tensione… tu intendi da dentro MPLAB? Da li non lo so, in genere utilizzo sempre il programma del pickit, ora non ce l’ho nemmeno sottomano, non sto a casa.
      In ogni caso il circuito o lo alimenti dal pickit o esternamente, non dare entrambe le alimentazioni insieme. Non ho idea di cosa accadrebbe ma su due piedi direi che non dovrebbe accadere nulla, penso che il pickit prima di fornire tensione controlla se la tensione è già presente, ma non ne sono sicuro.
      Il difetto del programma si potrebbe essere dato dal fatto che due pulsanti utilizzano RB6 e RB7 che sono usati dal programmatore e quindi quei due pulsanti risultano sempre premuti se c’è il pickit collegato (ma questo l’ho detto già piu di una volta)

  3. #4 da MBrix il 26 marzo 2011

    Ciao Giovanni, sto seguendo le tue lezioni sui PIC e ti devo proprio ringraziare! Trovare queste informazioni così ben dettagliate mi ha sollevato da un periodo lavorativo non proprio esaltante…
    In merito a schede di sviluppo ti segnalo la Amicus18 (versione derivata dal noto Arduino) però con installato un PIC:
    http://www.myamicus.co.uk/
    In ogni caso trovo molto interessante le freedom2, quando avrò la capacità di sfruttarla credo che la adotterò.
    Spero di contribuire presto, in piccolo, con mie note. A presto!

    • #5 da Giovanni Bernardo il 26 marzo 2011

      Si Amicus18 lo conoscevo già ma io sono contro queste suite tutto in uno. In ogni caso Amicus18 non è l’unico dispositivo simile ad arduino con un pic sopra. Esiste pinguino, basato su 18F2550: http://www.hackinglab.org/pinguino/index_pinguino.html
      Unduino basato sul sPIC33FJ128MC202 : http://unduino.com/unduinodspic33-v1/

      • #6 da MBrix il 26 marzo 2011

        …preparatissimo come sempre!
        La cosa che non mi dispiace dell’idea Arduino (e derivate) è il fatto che non sia necessario il programmatore avendo il bootloader precaricato per cui sono direttamente programmabili da Usb. Per il resto anche a me piace (per la soddisfazione che ne deriva) arrivare a certi risultati per piccoli passi con schede millefori autocostruite. Certo che siti come questo danno una bella mano per “inquadrare” il tema e partire col piede giusto. Comunque l’idea di non aver bisogno di un programmatore è stuzzicante (anche se ormai con i costi e le informazioni disponibili si fa con poca spesa). In rete ho trovato qualcuno che ha equipaggiato la propria demo board con programmatore integrato: (!!!!)
        http://www.voti.nl/hvu/2PROJ5/DB036.doc
        Qualcuno ha altre idee?

      • #7 da Giovanni Bernardo il 26 marzo 2011

        Di schede con il bootloader precaricato ne esistono a migliaia. Io tra le altre uso anche la EasyUSB di Mauro Laurenti e la MuINUSB distribuita da robot-italy. Entrambe vengono fornite con il bootloader precaricato e il programma lo carichi tramite lo stesso connettore USB. Anche la freedomII si può usare con il bootloader, chiedi a Mauro se te la può fornire con un pic col bootloader precaricato. Però si parla di PIC18 e quindi programmazione in C18. Esistono anche i bootloader per pic16 però dato che i pic16 non hanno l’USB si deve usare una seriale RS232

  4. #8 da peppers il 22 ottobre 2011

    Ciao Giovanni, ti chiedevo solo un parere veloce…
    ho visto dalle foto che non hai messo lm7805, e che alimenti direttamente la scheda con il pickit2…
    E’ quello che ho fatto anche io da sempre, senza nessun problema…
    Il problema è nato quando mi sono trovato ad utilizzare i pulsanti BT3 e BT4 che come vedo dallo schema della scheda sono condivisi con il PGC/PGD, che sul pickit2 hanno delle resistenze di pull-down di 4.7k… e anche abilitando i pull-up su PORTB il livello rimane basso…quindi i suddetti pulsanti non sono utilizzabili.
    Secondo te corretto quello che scrivo?
    Grazie
    Pier

    • #9 da Giovanni Bernardo il 22 ottobre 2011

      Le resistenze sono di pullup, no di pulldown. E’ ovvio che se alimenti col pickit non puoi usare RB6 e RB7 dato che il pickit li tira a massa. Se vuoi usare RB6 e RB7 non devi alimentare col pickit

  5. #10 da peppers il 22 ottobre 2011

    Ok grazie!
    Era in sostanza quello che intendevo dire, il pickit tira a massa…
    Scollego e alimento con 5v stabilizzati…
    Pier

Devi essere collegato per lasciare un commento.

  1. Ancora nessun trackback
Settorezero.com e il logo Zroid™ ©2007÷2017 Giovanni Bernardo - E' vietata la copia e la distribuzione anche parziale dei contenuti di questo sito web senza l'esplicito consenso dell'autore. I contenuti di settorezero.com sono distribuiti sotto una licenza Creative Commons Attribuzione-Non Commerciale-Non Opere derivate 2.5 Italia e sono soggetti alle condizioni definite nel disclaimer. Settorezero.com e tutti i suoi contenuti sono tutelati dalla legge sul diritto d'autore per cui i trasgressori sono perseguibili a norma di legge. Settorezero fa uso dei cookie leggi l'informativa estesa. Il tema di questo sito è basato sul tema Fusion per wordpress, realizzato originariamente da digitalnature e fa uso del plugin Wassup per il computo delle statistiche. Per contattare l'autore siete pregati di utilizzare la sezione contatti. Siamo presenti anche su Facebook e, meno assiduamente, anche su Twitter - Tumblr - Google+ - Blogspot - Youtube.
Creative Commons BY-NC-ND 2.5