La gestione dell’alimentazione nel Raspberry PI 3

Raspberry Pi 3

Il single board computer (SBC) Raspberry Pi 3 è un progetto open source ma solo una parte dello schema elettrico è stata resa nota, in particolare la gestione dell'alimentazione, che poi è quello che la differenzia principalmente, a livello hardware, dalla versione precedente. Vediamo quindi nello specifico come viene gestita l'alimentazione in una delle schede più diffuse al mondo, analizzando a scopo didattico le tecniche di progettazione utilizzate.

Benvenuti su Elettronica Open Source, oggi analizziamo lo schema elettrico del Raspberry Pi 3, in particolare la parte che gestisce l'alimentazione.

Schema elettrico Raspberry Pi 3

Schema elettrico Raspberry Pi 3

Nello schema in alto a sinistra abbiamo il POWER IN che tramite connettore USB fornisce 5V alla scheda, questi 5V alimenteranno tutta la Raspberry Pi 3.

Successivamente possiamo notare il fusibile F1 che è autoripristinante e quindi permette di tenere sotto controllo la corrente di ingresso, poi abbiamo C5 che è un condensatore da 1uF e questo permette di avere un controllo su eventuali picchi o fluttuazioni di tensione che ci possono essere sui 5V di ingresso.

5V che si presentano poi su Q3 che è un mosfet a canale P che andrà in conduzione in base a come si trova il gate, che è connesso a un transistor PNP in configurazione base comune con un altro transistor PNP. Questo particolare circuito permette di far fluire la corrente solo in un verso, mentre invece il flusso di corrente è interdetto da source a drain.
Praticamente il mosfet si comporta come fosse un semplice diodo, con la differenza che praticamente non c'è caduta di tensione. Un diodo normale può avere 0.6/0.7V come caduta di tensione, uno schottky può arrivare a 0.5V ma il mosfet, avendo una RDSon quindi la resistenza di conduzione, molto bassa, può arrivare a cadute di tensione dell'ordine di 0.1V quindi è perfetto per riportare i 5V di ingresso anche in uscita.

Raspberry Pi Power In

Power in - Raspberry Pi

Continuando ad analizzare lo schema elettrico, sull'uscita (source) del mosfet DMG2305 abbiamo il componente D5 che è un trisil, praticamente un soppressore di transienti, denominato SMBJ5.0A perché considerando che stiamo parlando di 5V, questo componente deve essere scelto in base alla tensione alla quale verrà applicato. Poi abbiamo C1 che è un condensatore da 47uF e anche questo serve a tenere stabile la tensione. Come potete notare il condensatore da 47uf in uscita è più grande del condensatore da 1uF in ingresso, questo perché serve una maggiore stabilità, invece in ingresso serve una maggiore velocità, soprattutto per sopprimere i picchi veloci di transienti.

Alimentazione duale Raspberry Pi

Raspberry Pi alimentazione duale

I 5V che abbiamo presenti qui in uscita sono anche collegati all'ingresso di U3, PAM2306AYPKE che è un convertitore DC-DC converter switching che serve a fornire una tensione duale di uscita. Da notare i pin di enable, quindi EN1 connesso direttamente a Vcc quindi all'abilitazione, che permette di avere 3V3 in uscita mentre invece l'enable EN2 è connesso a Vcc, quindi all'abilitazione, tramite una rete RC 100K 100nF. Questo comporta un leggero ritardo rispetto all'enable 1. L'enable 2 permette di avere 1.8V in uscita. Questa configurazione sull'enable permette di avere prima 3.3V e poi una volta stabilizzati, abbiamo 1.8V.

A cosa servono queste tensioni?
3.3V serve ad alimentare alcune periferiche come ad esempio la camera, il display e il connettore GPIO (general purpose i/o) mentre invece 1.8V è la tensione di uscita che va sia al processore che alla ram.
Abbiamo un circuito che permette di avere il controllo sullo stato del processore, che quando è operativo, può gestire un led che ci permette di conoscere lo status.

Raspberry Pi 3  - Vcc core

Raspberry Pi Vcc core

Ora passiamo a questa parte del circuito dove troviamo un altro mosfet a canale P, nello specifico il DMG2305, che va in conduzione tramite un semplice transitor NPN (MMBT3904) che a sua volta va in conduzione quando ha in base 1.8V. Quei famosi 1.8V dei quali parlavamo prima e che comunque sono in uscita dopo che si è stabilizzata la 3V3.

Una volta che il mosfet è in conduzione, abbiamo i 5V riportati su 5V_Core che servono sia ad alimentare U16 che poi vedremo e ad avere un segnale di controllo enable sulla SDRAM.
Non abbiamo lo schema elettrico completo, perché solo una parte è open source, ma molto probabilmente anche la SDRAM è alimentata da 1.8V e quindi una volta alimentata appunto, viene abilitata solo quando sono presenti i 5V_Core cioè quando anche il processore è alimentato.

Questa tensione, i 5V dedicati al core, sono connessi all'ingresso di U16 (RT8088) che è un altro alimentatore switching DC-DC converter con una particolarità: oltre ad essere singola uscita, quindi differentemente dal primo analizzato, è anche programmabile tramite I2C.

Infatti tramite seriale possiamo gestire la tensione di uscita denominata VDD_Core perché appunto può essere variabile. Questa gestione è data da SCL e SDA, i due pin che vengono dal processore. Questo è stato fatto prima di tutto perché gli ARM (il BCM2837 è un SOC con core ARM Cortex A53) hanno bisogno di una tensione di ingresso che abbia vari livelli soprattutto al setup e questo circuito permette di avere la tensione di ingresso che vogliamo. Una volta a regime c'è un altro fattore, molto importante, che è la dissipazione. In base al controllo di temperatura che ha a bordo il processore, questo può abbassare la tensione di ingresso in caso di superamento della temperatura impostata e quindi può consumare di meno, avendo però meno performance (DVFS).

Infine i 5V di cui parlavamo prima, quelli in uscita dal primo mosfet, tramite l'RT4791 che è un semplice high side power switch, vengono trasformati in H5V che sono i 5V per il connettore HDMI. Questo tipo di componente è usato proprio per fare l'hot swap. Nessun stacca l'alimentazione prima di inserire il connettore HDMI, per far si che questo non crei disturbi, o che comunque non si creino dei picchi di extra tensione che possono danneggiare la scheda, si utilizza l'RT4791.

Raspberry Pi VDD core

Raspberry Pi VDD core

Ricapitolando, come alimentazioni abbiamo, 3V3 sul connettore "camera", 3V3 sul connettore "display", poi abbiamo sul connettore "GPIO" 3V3 e 5V. Ricordiamo che questi 5V sono protetti dal mosfet Q3, infatti se abbiamo la Raspberry Pi 3 alimentata dal connettere GPIO non avremo i 5V sul connettore USB di alimentazione che potrebbero comunque danneggiare l'alimentatore o l'eventuale PC al quale si collega. Sul connettore GPIO abbiamo anche i 3V3.

Il BC2837 è il processore, un ARM Cortex A53, con a bordo varie periferiche. Più che processore sarebbe meglio deifinirlo un SOC, perché ha a bordo sia il processore che la GPU video.
Per essere alimentato ha bisogno di 1.8V per il PLL, e poi della VDD_Core, la tensione variabile di cui parlavamo prima, gestita dal processore stesso.

Abbiamo visto lo schema elettrico della gestione dell'alimentazione nel Raspberry Pi 3, quindi in sintesi abbiamo potuto vedere tutte le particolarità di questo tipo di alimentazione, a fine video troverete i link all'articolo, dove ci sono i vari riferimenti, per poter approfondire, grazie e ci vediamo alla prossima

#EOSboard

RPI-3B-V1_2-schema-ridotto

6 Commenti

  1. Davide.Marzitelli 29 marzo 2017
  2. quantumleap quantumleap 29 marzo 2017
    • Emanuele Bonanni Emanuele Bonanni 30 marzo 2017
  3. Giampaolo Sacchetti 31 marzo 2017
    • Emanuele Bonanni Emanuele Bonanni 3 aprile 2017

Scrivi un commento

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