PicOne, UNA SCHEDA CON UN PIC18F47Q10

Per una nuova realizzazione mi sono messo a cercare una MCU che potesse soddisfare una serie di requisiti. Alla fine l’unica che ho trovato adatta è stata una MCU PIC18F47Q10 che è disponibile anche in package DIL 40. Ho così deciso di realizzare una schedina per iniziare a giocarci…

 
 
 
 



 

INTRO

Pur non essendo un “fan” dei PIC devo ammettere che il PIC18F47Q10 ha una serie di caratteristiche veramente notevoli anche considerando il costo abbastanza basso (circa 1.7€ + tasse per la versione DIL).
Qui di seguito le caratteristiche principali (prese dal datasheet):

  • Internal 64MHz oscillator
  • 128 KB Flash Program Memory with self read/write capability
  • 3728 Bytes Data SRAM Memory
  • 1024 Bytes of EEPROM
  • 10-bit ADC, 35 channels
  • 8 x Configurable Logic Cell (CLC)
  • 2 x I2C/SPI
  • 2 x EUSART

In particolare si noti che a differenza dei suoi predecessori ha ben 2 unità I2C/SPI e 2 EUSART, senza parlare del modulo CLC che in pratica è una sorta piccola CPLD che permette di sintetizzare 8 funzioni logiche e di associarle anche ai pin esterni.

Ho così deciso di realizzare una piccola scheda (PicOne) per poter eseguire dei test, una sorta di “dev board” a modo mio.
Come ho già fatto in precedenza per altre MCU ho utilizzato un “form factor” che mi permettesse anche l’inserimento diretto nelle breadboard. Ho anche aggiunto la possibilità di alimentare il PIC sia a 5V che a 3.3V, due led utente, due tasti utente, un convertitore USB-seriale e un socket per microSD con relativo traslatore di livelli logici (necessario quando la MCU lavora a 5V).

Per programmare la MCU sarà necessario disporre di un programmatore come il PicKit4 da collegare al connettore ICSP (J2) posto sulla scheda stessa.

 



 

SCHEMA

Lo schema elettrico è disponibile insieme al resto della documentazione allegata nella sezione DOWNLOAD. Per comodità comunque inserisco qui le due immagini che lo compongono:

L’alimentazione è fornita direttamente dal connettore USB (USB mini) che provvede anche a collegare il convertitore USB-seriale realizzato con un CH340G (U2).

I vari segnali disponibili su J4 e J5 sono duplicati su JB1 e JB2 (posti sul lato inferiore del PCB) per fornire accesso agli stessi da breadboard.

Sulla scheda è presente un regolatore AMS1117-3.3 (U1) per l’alimentazione della microSD e del relativo traslatore di livelli logici (U4). Inoltre, attraverso il doppio deviatore SW1 (PWR-SEL), è possibile scegliere se alimentare la MCU (U3) ed i pin di I/O del CH340G (U2) a 5V o a 3.3V, permettendo in questo ultimo caso di collegare la scheda a logiche operanti a 3.3V senza problemi. In ogni caso la microSD sarà comunque sempre alimentata a 3.3V e con i relativi segnali anch’essi a 3.3V attraverso U4.

L1 insieme a C13 hanno lo scopo di evitare che un eventuale inserimento di una microSD quando la scheda è alimentata (hot plug) e SW1 è posto a 3.3V, possa generare un reset della MCU. Le SD in generale hanno una certa capacità interna sull’alimentazione, per cui il picco di corrente che si crea quando si inserisce la microSD a scheda alimentata potrebbe mandare “in crisi” l’alimentazione con conseguente reset della MCU per alimentazione non sufficiente.

Sono inoltre presenti i due led utente LED1 e LED2, il led dell’alimentazione PWR, i due led del convertitore USB-seriale RX e TX, ed il led SD che indica attività sulla microSD.

Per quanto riguarda i tasti, troviamo i due tasti utente USR1 e USR2 ed il tasto RST di reset della MCU.

Nel seguito alcuni punti di attenzione.

SW1 (PWR-SEL)

Il deviatore SW1 permette di selezionare la tensione di lavoro della MCU e del convertitore USB-seriale tra 5V e 3.3V. Ciò si riflette naturalmente sui livelli logici dei relativi pin di I/O. In ogni caso è garantito il corretto utilizzo della microSD (attraverso U4) indipendentemente dalla posizione di SW1.

ATTENZIONE!: Il deviatore SW1 deve essere azionato solo quando la scheda non è alimentata.

CONDENSATORI C6 E C7

Se viene utilizzato uno zoccolo ZIF per la MCU (U3) C6 e C7 devono essere da 22pF. Se viene invece utilizzato uno zoccolo “normale” C6 e C7 devono essere da 27pF. Ciò tiene conto della maggior capacità parassita tra pin dello zoccolo ZIF rispetto a quello standard (non ZIF).

Nella foto seguente una scheda PicOne con uno zoccolo standard (precedente revisione del PCB):

SJ1 E SJ2

Per rendere operativi i due led utente LED1 e LED2 devono essere chiusi i due jumper a saldare SJ1 e SJ2 posti sul lato inferiore del PCB:

JP1 (SD-EN)

Per abilitare la microSD è necessario chiudere il jumper JP1 (SD-EN).

Se si vogliono utilizzare i pin della MCU RA4, RC5, RC3, RC4 come normali pin (non collegati alla microSD) è necessario aprire il jumper JP1. Questo disabiliterà il traslatore di livelli U4 ponendo le relative uscite in alta impedenza.

Si noti che in questo caso (JP1 aperto) attraverso la resistenza R9 (connessa a RC4) potrebbe scorrere una corrente di circa 3mA nel caso in cui la MCU fosse alimentata a 5V ed un eventuale logica esterna (o la stessa MCU) presentassero un segnale HIGH (circa 5V) su RC4. Questo è dovuto alla presenza dei diodi di protezione (clamp diode) sui pin di uscita di U4 la cui alimentazione è connessa a 3.3V, attivi anche quando l’uscita di U4 è disabilitata. Di conseguenza una eventuale logica esterna deve essere in grado di fornire una tale corrente.

IL CONNETTORE ICSP (J2)

Per programmare la MCU (U3) è necessario utilizzare un programmatore esterno (come il PicKit4) da collegare al connettore ICSP (J2). Si noti che sul PCB è presente un piccolo triangolo che indica il pin 1 e che deve corrispondere con l’analogo presente sul PicKit come mostrato nella foto seguente:

ATTENZIONE!: quando si collega o scollega il PicKit assicurarsi che la scheda non sia alimentata (per maggiori informazioni si veda il manuale del PicKit).

ATTENZIONE!: il programmatore deve essere configurato per non fornire alcuna alimentazione al target (power the targed from the board):

INSERIMENTO DELLA MCU NELLO ZOCCOLO ZIF

Quando si inserisce la MCU (U3) nello zoccolo ZIF assicurarsi che il pin 1 della MCU sia in corrispondenza dell’apposito segno triangolare posto sul PCB (che indica il pin 1) come mostrato nella foto seguente:

 

ESEMPI SW

Nella sezione DOWNLOAD sono presenti alcuni esempi che ho utilizzato per testare la scheda stessa. Tutti gli esempi sono stati realizzati con MPLABX v5.40 utilizzando il Code Configurator (MCC) che deve essere installato da MPLABX (menu Tools -> Plugins. Il PC deve essere connesso ad internet):

  • PicOne_Blink.X (Lampeggio dei led LED1 e LED2);
  • PicOne_Keys.X (Test dei pulsanti USR1 e USR2);
  • PicOne_I2C_Scanner.X (Scanner I2C. SDA = RC2, SCL = RC1);
  • PicOne_I2C_OLED.X (Demo SSD1306 Oled 128×32. SDA = RC2, SCL = RC1. SW1 = 3.3V);
  • PicOne_microSD.X (Demo microSD. Inserire una microSD formattata FAT o FAT32 1-32GB. No microSD SDXC, SDUC, …).

Quando li provate per la prima volta sarà necessario selezionare da MPLABX il programmatore da utilizzare (PicKit4).

Se la prima volta avete degli errori di compilazione attivate MCC e fategli installare i plugin che richiede (il PC deve essere connesso ad internet).

 

DOWNLOAD

Tutta la documentazione necessaria per realizzare la scheda (file Gerber per la produzione del PCB, schema elettrico, guida del layout del PCB per l’assemblaggio, lista componenti, esempi con MPLABX) è disponibile qui.

Inoltre ho preparato un link “rapido” per ordinare direttamente un piccolo lotto di PCB (min. 5 pezzi) qui.

 

CONSIGLI PER L’ASSEMBLAGGIO

L’assemblaggio della scheda richiede una certa dimestichezza con i componenti SMD ed un minimo di attrezzatura. Ciò non significa che chi non ha mai provato a cimentarsi con una scheda SMD non possa provare a realizzarla…

Nel seguito elenco alcuni suggerimenti per chi è alle prime armi con gli SMD, o vorrebbe provare ma non sa da dove iniziare. Questo non vuole essere una corso di saldatura ma solo uno spunto per iniziare.

ATTREZZATURA

Per la saldatura dei componenti SMD consiglio di usare un saldatore ad aria calda (hot air gun).

Ovviamente sarà necessaria anche la pasta di stagno (solder paste), possibilmente una confezione a siringa in modo da semplificare la fase di stesura.

ed un flussante anch’esso in siringa:

Ovviamente non possono mancare delle pinzette per SMD:

Consiglio fortemente anche un “estrattore di fumi” almeno come questo (i vostri polmoni ringrazieranno):

Inoltre un microscopio ottico per ispezioni come questo (AmScope SE400Z) renderà l’assemblaggio molto più agievole:

Vale la pena anche di citare anche un saldatore TS100 con punta BC2 per poter saldare gli integrati SMD con la tecnica del “drag soldering“:

ORGANIZZAZIONE DEL LAVORO

Una scheda come PicOne presenta sia componenti classici TH (through holes) che SMD. In questo caso bisogna dividere l’assemblaggio in due parti. Nella prima saranno saldati prima i componenti SMD con il saldatore ad aria calda e poi quelli “classici” con un normale saldatore a punta.

Per quanto riguarda la saldatura dei componenti SMD, se avete a disposizione un saldatore TS100 (o comunque uno con punta “piatta”) consiglio di utilizzarlo con la tecnica del “drag soldering” per tutti gli integrati SMD tranne i regolatori (come U1) e per i connettori SMD come J1 e J3.

Per gli altri componenti SMD (compreso U1) useremo il saldatore ad aria calda con la pasta di stagno. Consiglio di saldare prima i componenti che richiedono il saldatore ad aria calda e successivamente i componenti SMD rimanenti con il saldatore TS100 usando il “drag soldering”, avendo cura di “fissare” preventivamente il componente con un paio di saldature a due pin “estremi” e successivamente i rimanenti pin.

Ricordo che per il “drag soldering” è fondamentale l’uso del flussante che deve essere distribuito sui pin prima della saldatura.

PER LA VOSTRA SICUREZZA

Come mostrato la saldatura di componenti SMD (ma anche “normali”) richiede l’uso di attrezzature potenzialmente pericolose per le elevate temperature di esercizio come saldatori tradizionali o ad aria calda. Bisogna quindi prestare molta attenzione nella organizzazione del “banco di lavoro” ed in genere nell’uso.

lo stesso vale per i prodotti chimici utilizzati come pasta di stagno ed il flussante (ma anche il classico rocchetto di stagno). Quando maneggiate la pasta di stagno usate dei guanti in lattice per evitare che residui di pasta saldante (micro sfere di stagno immerse in flussante gelatinoso) possano inserirsi sotto le vostre unghie con il rischio di poter essere ingeriti successivamente quando maneggiate dei cibi.

Deve essere prestata attenzione anche ai residui gassosi che si formano (fumi) mettendo possibilmente in campo le accortezze necessarie come l’uso di un estrattore di fumi e areazione periodica del locale dove si opera. L’uso di una mascherina durante le fasi di saldatura è sicuramente consigliato.

Per nessun motivo il locale dove operate deve essere raggiungibile da bambini, che come è noto, sono imprevedibili. Conservate tutte le sostanze chimiche in contenitori di plastica chiusi ed in luogo sicuro, ed apponete delle etichette opportune per evidenziare il pericolo.

In rete si vedono filmati di individui che usano queste sostanze come se fossero marmellata. Evitate assolutamente di seguire questi esempi sconsiderati!

 



 

[Voti Totali: 0 Media Voti: 0]
Segui la Nostra Pagina Facebook: Facebook

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *