L’integrato Si4703: come realizzare una radio FM con pochissimi componenti

radio FM

Qualche anno fa costruire un ricevitore FM da zero facendo uso di componenti discreti (diodi e transistor) non era così semplice, occorreva avvolgere induttori, essere attenti nella disposizione dei componenti sul circuito stampato, curare attentamente anche il reparto audio da cui dipendeva la qualità con cui si potevano ascoltare le stazioni, ecc. Con l'evoluzione dell'elettronica digitale tutto è cambiato, ormai il mercato mette a disposizione soluzioni integrate estremamente versatili e potenti che permettono in poco tempo di assemblare una completa radio FM.

L'integrato Si4703

Tra i vari circuiti integrati capaci di assolvere tutte le funzioni di un completo ricevitore FM commerciale c'è sicuramente il Si4703. Prodotto  inizialmente dalla Silicon Labs, ceduto poi alla Skyworks, il chip non solo è in grado di ricevere le trasmissioni in modulazione di frequenza ma può anche decodificare sia le informazioni Radio Data Service (RDS) sia le Radio Broadcast Data Service (RBDS). Sfruttando questa caratteristica si possono ottenere informazioni aggiuntive che alcune emittenti radiofoniche trasmettono, come ad esempio il nome del brano in ascolto o il nome della stazione sulla quale si è sintonizzati. La copertura  della banda radio FM è molto ampia (76-108MHz) con una sensibilità media sotto i 2μV. In Figura 1 è visibile lo schema a blocchi dell'integrato.

schema a blocchi Si4703

Figura 1: Schema a blocchi Si4703

Come si può vedere, il front-end è composto da un amplificatore a basso rumore (LNA) il cui livello di amplificazione è gestito da un sistema di controllo automatico del guadagno (AGC) che ne ottimizza il funzionamento. A seguire, troviamo il mixer a quadratura che mescolando il segnale ricevuto con quello prodotto dall'oscillatore locale genera il segnale di media frequenza che viene successivamente amplificato, filtrato e digitalizzato tramite appositi convertitori analogico digitali. L'architettura utilizzata, basata sul processamento digitale del segnale permette di ottenere migliori performance rispetto ad un'architettura analogica tradizionale. In uscita al demodulatore FM, troviamo il segnale in formato MPX (Figura 2) da cui è possibile estrarre non solo la componente audio (stereo/mono) ma anche le informazioni RDS/RBDS eventualmente presenti.

spettro del segnale MPX

Figura 2: Spettro del segnale MPX

Tutte le funzioni del Si4703 sono accessibili tramite una interfaccia di controllo connessa normalmente ad un microcontrollore. Nel nostro semplice progetto il compito di sintonizzare le stazioni e regolare il volume è demandato a un comune ATTiny84 il quale, peraltro, si occuperà anche di mostrare, su un piccolo display OLED, le informazioni RDS ricevute dalle varie emittenti. Il chip SMD di dimensioni minuscole é prodotto in due versioni: la prima Si4702 si differenzia dalla seconda Si4703 per l'assenza della componente che permette l'elaborazione dei segnali RDS/RDBS. L'etichetta é composta da una serie di codici stampigliati sull'involucro dove le prime quattro cifre identificano per l'appunto il modello 4702 o 4703 (02/03) e il numero di revisione del firmware (19), quindi nel nostro caso, come visibile nell'immagine in evidenza dell'articolo, troviamo la sigla 0319. Queste e molte altre informazioni le trovate naturalmente nel datasheet del componente.

Schema elettrico e montaggio

Per semplificare quanto più possibile la realizzazione circuitale, invece di utilizzare direttamente il "microscopico" chip,  si fa uso di una "Breakout Board", acquistabile su internet a pochi euro (ad esempio su Amazon), che oltre ad ospitare il Si4703 rende disponibile una presa audio jack per normali cuffiette auricolari e i pin dell'interfaccia di controllo da collegare al microcontrollore (Figura 3).

Breakout board Si470x

Figura 3: Breakout board Si470x

Il circuito elettrico visibile in Figura 5 é molto semplice. Oltre alla sopra menzionata breakout board, troviamo un display OLED (Figura 4), il microcontrollore ATTiny84 e due coppie di pulsanti da utilizzare rispettivamente per la ricerca delle stazioni e la regolazione del volume. Completano il circuito un condensatore filtro e un diodo di protezione per eventuali accidentali inversioni di polarità dell'alimentazione.

display OLED da 1.3"

Figura 4: Display OLED da 1.3"

La comunicazione tra microcontrollore (master) e periferiche (slave) avviene utilizzando il sistema di comunicazione seriale I2C, che prevede l'uso di due soli pin:

  • SDA (Serial Data) per la trasmissione dei dati
  • SCL (Serial Clock) per il clock

Nel nostro caso, le due periferiche slave sono naturalmente il display e il chip Si7403 posizionato sulla relativa breakout board.

Schema elettrico

Figura 5: Schema elettrico

 

Lista componenti
D1S1 display OLED 1.3" (128x64) SH1106
U3 breakout board Si4703
U1 ATTiny84A-PU
D1 1N4148
C1 100nf ceramico
4 x pulsanti momentanei normalmente aperti
Alimentazione 3.3 Volt massimi

Visto l'esiguo numero di componenti, il circuito può essere facilmente assemblato su una scheda sperimentale o se si é interessati ad una realizzazione più robusta e stabile si consiglia l'uso di un apposito circuito stampato (Figura 6).

circuito stampato

Figura 6: Circuito stampato

Il risultato finale del ricevitore é quello visibile in Figura 7.

ricevitore FM assemblato su circuito stampato

Figura 7: Ricevitore FM assemblato su circuito stampato

Le librerie

Come anticipato, la board contenente il chip Si4703 deve essere gestita da un apposito microcontrollore che abiliti di volta in volta le funzioni necessarie alla sintonizzazione delle stazioni, alla decodifica dei segnali RDS, alla demodulazione dei segnali radio e quant'altro. Nel nostro caso, tutto questo, se pur in forma molto elementare, é svolto dall'ATTiny84. Il microcontrollore può essere facilmente programmato utilizzando l'ambiente di sviluppo di Arduino, nella fattispecie é stata utilizzata la versione classica dell'IDE (Arduino IDE 1.8.19) integrata con le opportune librerie che andremo a descrivere di seguito.

Per prima cosa, occorre importare tramite l'ambiente di gestione schede, l'ATTinyCore di Spence Konde, questo permetterà all'IDE di programmare attraverso un'interfaccia ISP o USBASP tutta una serie di microcontrollori della serie ATTiny tra cui appunto il nostro ATTiny84.

La procedura per l'installazione é la seguente:

  1. Avviate l'IDE di Arduino
  2. In File->Preferenze  inserite  nel campo "URL aggiuntive per il gestore schede",  l'indirizzo : "http://drazzy.com/package_drazzy.com_index.json"
  3. Nel menu Strumenti -> Schede -> Gestore schede, selezionate "ATTinyCore by Spence Konde" e avviate l'istallazione

Se tutto é andato bene, nel menu Strumenti -> Schede dovreste trovare la voce ATTinyCore, a questo punto selezionate la voce ATTiny24/44/84 (No bootloader) come visibile in Figura 8.

Arduino IDE, gestore schede

Figura 8: Gestore schede

Il secondo passo é quello di installare le librerie per la gestione del chip Si7403 e del display OLED. Per quanto riguarda la gestione del modulo radio la libreria presa a riferimento é quella di PU2CLR, l'autore ha sviluppato una interessante libreria poco ingombrante utilizzabile con diverse tipologie di microcontrollori che spaziano dall'ESP32 fino al piccolo ATTiny85. Le funzioni messe a disposizione dalla libreria sono moltissime e permettono di sfruttare pienamente tutte le caratteristiche del Si7403 compresa la ricezione e l'elaborazione delle informazioni RDS. L'elenco completo delle API é consultabile sul sito dell'autore: https://pu2clr.github.io/SI470X/extras/apidoc/html/.

L'istallazione in questo caso é ancora più semplice, essendo la libreria presente nell'elenco di quelle distribuite con IDE, é sufficiente andare su sketch->#include libreria->gestione librerie e attendere il caricamento della lista, dopo di che va cercata e installata la libreria che fa riferimento a "pu2clr SI470x".

L'ultima libreria da installare é quella per la gestione del display OLED. In questo caso, si è scelta la libreria "Tiny4kOLED" di Stephen Denne, specifica per i microcontrollori della serie ATTiny, che mette a disposizione tutta una serie di funzioni per la gestione di display OLED 128x64 da 0,96" o 128x32 da 0,91" con controller SSD1306. Qui, occorre fare una precisazione, nel prototipo è stato utilizzato un display OLED da 1,3" che basa il suo funzionamento sul controller SH1106 molto simile all'SSD1306 ma non proprio uguale. Si è scelto di utilizzare quest'ultimo display perché più grande e quindi sono più facilmente leggibili le informazioni RDS trasmesse dalle  emittenti radiofoniche. Dopo aver installato la libreria "Tiny4kOLED" con le stesse modalità utilizzate per l'installazione della libreria "pu2clr SI470x",  occorre  sovrascrivere la cartella contenente i file della libreria con una variante scaricabile all'indirizzo https://github.com/datacute/Tiny4kOLED/issues/32. Naturalmente, se si vuole utilizzare un display OLED 0,96" con controller SSD1306 non occorre eseguire l'operazione di sovrascrittura descritta sopra, ma occorre però modificare il circuito stampato proposto in quanto la piedinatura del display potrebbe essere differente.

[...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2499 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend