progettare una scheda linux un caso reale
DESCRIPTION
hardware linuxTRANSCRIPT
-
Ing. Daniele Basile
Progettare una scheda Linux,un caso reale.
Conferenza Better EmbeddedFirenze, 8-9 luglio 2013
1venerd 12 luglio 2013
-
Daniele Basile [email protected]
Premessa
Identificazione dei punti critici per la progettazione
Uno sguardo alle offerte del mercato per quanto riguarda le prestazioni dei componenti e le varie tipologie di montaggio
Problemi con l'integrit dei segnali
Uno sguardo sul problema dell'alimentazione
Layout del circuito stampato
Breve panoramica sui tool di sviluppo e di simulazione
Cosa debbuggare se va tutto male
Dove trovare il software e documentazione
2venerd 12 luglio 2013
-
Identificazione dei punti critici
Analisi delle criticit
3venerd 12 luglio 2013
-
Daniele Basile [email protected]
Perch progettare una scheda con Linux?
Applicazioni?
Non si trova nulla di pronto Personalizzazione a vari livelli Prestazioni e consumi migliori Realizzazione di prodotti pi complessi Disponibilit di soluzioni software gi pronte No Royalty Costi pi bassi in produzione ...
Consumer Industriale Medicale Applicazioni particolari ...
Identificazione dei punti critici
4venerd 12 luglio 2013
-
Daniele Basile [email protected]
Quale la vita del mio prodotto? Va mantenuta nel tempo E un oggetto consumer (smartphone, pda, ecc..)
Come lo realizzo? Architettura del prodotto Prestazioni del sistema Tecnologie da utilizzare
Come lo faccio funzionare? Tipo di boot Modalit di programmazione Applicativo software
Identificazione dei punti critici
5venerd 12 luglio 2013
-
Daniele Basile [email protected]
Quali sono i principali problemi tecnici? CPU con frequenze di clock molto alte USB Ethernet Alimentazione ...
Quanto costa? Componenti utilizzati Display o no Tipo di memorie ...
.. e il software? Supporto del kernel di Linux Driver del costruttore Librerie disponibili per l'architettura Ambiente di sviluppo e compilatore Supporto tecnico Licenze del software ...
Identificazione dei punti critici
E le certificazioni? CE Normative particolati e/o specifiche
(es. medicale, industriale, ecc..)
6venerd 12 luglio 2013
-
Cosa offre il mercato
Costruttori e architetture Prestazioni Tipologie di montaggio
7venerd 12 luglio 2013
-
Daniele Basile [email protected]
Principali architetture per l'embedded:
ARM (Cortex-A8 - A15, ARM9 - 11)
MIPS
Coldfire
PowerPC (PPC)
Geode AMD
Atom Intel
altre ...
Architetture con MMU dove pu girare un sistemaoperativo completo
Cosa offre il mercato
8venerd 12 luglio 2013
-
Daniele Basile [email protected]
Produttori di silicio:
Texas: OMAP, DaVinci, Sitara, KeyStone
Freescale: iMX, Vybrid, ColdFire
Atmel: SAMA, SAM9
NXP: LPC Command
ST: SPEAr
Broadcom
altri ...
Cosa offre il mercato
9venerd 12 luglio 2013
-
Daniele Basile [email protected]
Caratteristiche principali: 200MHz a 1,5GHz da 1 a 4 core SDRAM, DDR, DDR1, DDR2, DDR3 accelerazioni grafiche 2D e 3D periferiche (USB, ETH, Camera, MIPI, CAN, ecc..) ...
e le memorie.. RAM : DDR @200-300MHz, 200400 [MT/s], V=2,5-2,6V DDR2 @ 200-533MHz, 400-1066 [MT/s], V=1,8V DDR3 @ 400-1066MHZ, 800-2133 [MT/s], V=1,5V
Flash: NAND, NOR, AND
Cosa offre il mercato
10venerd 12 luglio 2013
-
Daniele Basile [email protected]
Packaging e modalit di montaggio:
Cosa offre il mercato
Ball Grid Array (BGA), e varianti (FBGA, CABGA, ecc..) Quad Flat Package (QFP, QFN, LQFP, ecc..) Thin small-outline packages (TSOP, ecc..)
11venerd 12 luglio 2013
-
Daniele Basile [email protected]
Packaging e modalit di montaggio:
Esempi: BeagleBoard RaspberryPi
Package on Package (PoP) moduli pronti board pi piccole e meno problemi con il routing
Cosa offre il mercato
[1] http://www.ti.com/lit/an/spraav1b/spraav1b.pdf
PCB
CPU
Memoria
12venerd 12 luglio 2013
-
Un caso reale
Problemi con SI Lalimentazione Sbroglio e layout Simulazione Debug Software EMI e prove di tipo Documentazione
13venerd 12 luglio 2013
-
Daniele Basile [email protected]
Dove iniziare?
Scelta del processore, in base alle esigenze di progetto, costo e reperibilit sul mercato
Stima di massima delle prestazioni del sistema e della capacit di memoria (volatile e non)
Definizione dell'architettura della vostra applicazione
Ok, con idee chiare si parte..
Evaluation board
Prove preliminari, sia SW che HW Scelta preliminare dei componenti Considerazioni sullo sbroglio
Un caso reale
[2] http://designsomething.org/leopardboard/default.aspx/
Texas DaVinci TMS320DM368: 432-MHz ARM926EJ-S LPDDR-336, DDR2-680
14venerd 12 luglio 2013
-
Daniele Basile [email protected]
Primi passi..
Ci sono problemi di integrit dei segnali?
Quanto consuma la mia scheda, e l'alimentatore?
Quanti strati mi servono e di quali piani ho bisogno nella mia scheda?
Come faccio a sapere se funzioner, prima di realizzare il prototipo?
E se non funziona nulla come faccio?
Come faccio a mettere i programmi nella mia scheda?
Un caso reale
15venerd 12 luglio 2013
-
Daniele Basile [email protected]
Cosa sono?
Descrivono la qualit con cui i segnali si propagano lunghi i fili
La velocit con cui variano i segnali determina quali leggi si utilizzano per descrivere i fenomeni elettrici
Problemi con l'integrit dei segnali
Rise TimeTr 10-90
t
v(t)
Nei circuiti elettronici digitali il tempo di salita dei segnali influisce molto sul SI
Il contenuto armonico dei fronti dei segnali determina se il circuito a parametri concentrati o distribuiti
16venerd 12 luglio 2013
-
Daniele Basile [email protected]
Cosa sono?
Problemi con l'integrit dei segnali
Se il rise time di un segnale, paragonabile al tempo che ci mette il segnale stesso a percorre lintera linea, allora il circuito pu essere considerato linea di trasmissione
t0t1t2t3
L1
L2
-
Daniele Basile [email protected]
Un esempio:Ritardo di propagazione nel mezzo:
Dove:
Lunghezza del fronte di salita:
Dove:
Rise time 1ns => L= 2,3cmRise time 100ps => L= 0,23cm
Tr = Rise Time [ps]Tp = Delay Time [ps/cm]
Tp = 33,4 [ps/cm] con r = 1Aria:Tp = 70,7 [ps/cm] con r = 4,5PCB FR-4:
Problemi con l'integrit dei segnali
Esempio DDR2-800: clock fino a 533Mhz Rise Time ~0,8ns 0,3ns
Per lunghezze pi piccole si parla di circuiti a parametri concentrati
18venerd 12 luglio 2013
-
Daniele Basile [email protected]
Quali sono le parti con problemi di SI?
Hanno molte linee per comandi, indirizzamento e dati, se i segnali non arrivano sincronizzati il dato corrotto Piste vicine si possono influenzarsi (Cross-talk) ...
RAM
Sono linee differenziali, e devono avere una impedenza specifica per evitare riflessioni
Eth, USB
BUSVeloci
Sia seriali che paralleli
Problemi con l'integrit dei segnali
19venerd 12 luglio 2013
-
Daniele Basile [email protected]
La RAM qualche problema in pi..
Problemi con l'integrit dei segnali (RAM)
Per avere grosse capacit di RAM bisogna connettere pi banchi insieme
Il numero dei banchi dipende anche dal bus dati della CPU (x8bit, x16bit, x32bit), o quanti banchi pu gestire
Il bus delle RAM veloci (es. DDR2), sono linee di trasmissione, e quindi necessitano di essere terminate (ODT, resistenze esterne)
20venerd 12 luglio 2013
-
Daniele Basile [email protected]
Problemi con l'integrit dei segnali (RAM)
La RAM qualche problema in pi..
Problemi con la distribuzione del clock, tra pi banchi (Distribuzione a T, Fly-by, Tree, ecc..)
Distribuzione a T Distribuzione Fly-By
21venerd 12 luglio 2013
-
Daniele Basile [email protected]
Data Lines: (DQ0:7, 1 DataMask DM0,1 Data strobe DQS0)Address e command lines: (A0:12, BA0:2 CS, CAS, WE, RAS, CE)Clock lines (CLK, CLK#)
Il bus parallelo impone vincoli temporali:
La lunghezza delle piste di ogni gruppo di segnali non devono differire di pi di 2,5mm (100mils)
Il clock delle DDR un segnale differenziale, dove la lunghezza tra le due piste accoppiane non deve superare i 0,5mm (20mils)
Non necessario che le piste dei segnali di clock DQS, siano simili tra tutti gli altri clock
Problemi con l'integrit dei segnali (RAM)DDR2 Address/Cmd/Clk
Data
22venerd 12 luglio 2013
-
Daniele Basile [email protected]
Capacit di bypass e test point.
Le capacit di bypass, devono essere messe pi vicino possibile ai piedini di alimentazione.
Package piccoli (es. 0402) hanno minore induttanza parassita.
L'alimentazione della RAM deve essere opportunamente disaccoppiata
L'aggiunta di alcuni test point su alcune linee, pu essere utile nelle fasi di debug
Problemi con l'integrit dei segnali (RAM)
23venerd 12 luglio 2013
-
Daniele Basile [email protected]
Terminazioni serie.
Pu essere utile inserire resistenze serie da pochi ohm lungo le linee per migliorare la qualit del segnale e ridurre le EMI
Le dimensioni massime e minime di queste resistenze a volte vengono specificate negli Application Note del costruttore del silicio.
Si possono utilizzare anche array di resistenze, per diminuire lo spazio sullo stampato e facilitare lo sbroglio, anche se sono pi soggette a cross-talk
Problemi con l'integrit dei segnali (RAM)
24venerd 12 luglio 2013
-
Daniele Basile [email protected]
Di quante tensioni ho bisogno?
In generale le CPU hanno bisogno di una o pi alimentazioni (core, bus ram, USB, RTC, GPIO, flash, ecc..)
Ogni tipo di RAM ha una sua tensione di alimentazione (DDR2, DDR3, SDRAM, ecc..)
Altri tipi di dispositivi, come sensori CMOS, bus LVDS, ecc..
Esempio il TMS320DM368: +1,35V per il core, RTC +1,8V per bus RAM, RTC +3,3V per USB, GPIO e FLASH bus
L'alimentazione
25venerd 12 luglio 2013
-
Daniele Basile [email protected]
Quanto consuma la mia scheda?
I consumi indicativi della CPU, sono indicati sul datasheet (dipendono anche dalla frequenza del clock)
Per le RAM il calcolo complesso, perch dipende dal tipo di utilizzo e dalle resistenze di terminazione, per una stima esistono fogli di calcolo (es. micron[3]), o ci si basa sulle schede di sviluppo
[3] http://www.micron.com/~/media/Documents/Products/Power%20Calculator/ddr2_power_calc_web.xls http://www.micron.com/products/support/power-calc
USB se di tipo Host o OTG
Altri dispositivi ..
Ethernet
Memorie (Flash, SD, ecc..)
L'alimentazione
26venerd 12 luglio 2013
-
Daniele Basile [email protected]
Dimensionamento e considerazioni.
Protezione in ingresso (filtri, diodo, tvs)
Lineare o di switching
Range tensione in ingresso
Dispositivo con batteria (ed eventuale caricatore)
Sovra-dimensionare lalimentatore per aumentare il margini e migliorare lefficenza
Batteria per RTC, o batteria tampone per shutdown in sicurezza
Spesso le CPU hanno bisogno di precise sequenze di attivazione
Piani di massa e di alimentazione!
Problemi termici
Per debug e stime energetiche, utile aggiungere dei ponticelli a monte di ogni sorgente di tensione e di zona del circuito
L'alimentazione
27venerd 12 luglio 2013
-
Daniele Basile [email protected]
Soluzioni sul mercato. Alimentatore multi-tensione on-chip (sia switching che lineare)
Alte capacit di corrente
Possibilit di programmare una sequenza di avvio
Sistemi integrati con gestione della batteria (per vari tipi di batteria)
Buona efficienza
Facilit nella progettazione
Dimensione contenuteEsempio il TPS65251[4]: 3 DC/DC Switch Converters 3 A (Buck 1), 2 A (Buck 2 and 3) Vin da 4V fino a +18V
[4] http://www.ti.com/product/tps65251
Gestione del reset
Pochi componenti esterni
L'alimentazione
28venerd 12 luglio 2013
-
Daniele Basile [email protected]
Considerazioni.
Esempio di uno stack di un PCB (6 strati):
Sbroglio e layout
GND Plane
GND Plane
Inner
Power
Top layer
Bottom layer
Con componenti BGA a molti pin, servono pi piani di routing Per migliorare SI, bisogna prevedere pi piani di massa, e di alimentazione Pu essere necessario utilizzare piani con spessore diverso del rame per
potere realizzare piste e clearance pi sottili (es. top, bot 17m, interni 35m) Verificare le capability del produttore del PCB (es. BGA passo 0,65mm, vias:
hole 0,2mm pad 0,35mm, wire 0,12mm)
preferibile che le linee della RAM siano su piani con stessa impedenza
29venerd 12 luglio 2013
-
Daniele Basile [email protected]
Considerazioni. Esempio di uno sbroglio di una RAM:
TOP
BO
TTO
M
Sbroglio e layout
Per i segnali con vincoli temporali, le piste devono avere la stessa lunghezza entro i limiti della tolleranza (RAM, linee differenziali, ecc..)
Separare zone analogiche da quelle digitali
Disaccoppiare con filtri passivi le varie alimentazioni (es. filtri LC)
Ridurre il pi possibile limpedenza delle masse e dellalimentazione
30venerd 12 luglio 2013
-
Daniele Basile [email protected]
Alcuni consigli.
T = spessore rame PCB [mm] D1 = Diametro via Pad [mm] D2 = Clearance nel piano di massa [mm] r = Costante elettrica relativa del PCBC = capacit parassita [pF]
Sbroglio e layout
I vias hanno una capacit e possono aggiungere ritardi, e questo dipende dalla loro geometria
Nel routing della RAM bisogna:
cercare di avere lo stesso numero di vias in ogni classe di segnale
una differenza di un 1 vias per i segnali single ended accettabile
i segnali differenziali devono avere lo
stesso numero di via per ogni lato della
linea accoppiata (CK e CK#; DQS
eDQSn#)
Diametro PAD
Diametro Clearance
Spessore del ram
e
31venerd 12 luglio 2013
-
Daniele Basile [email protected]
Alcuni consigli.
Sbroglio e layout
I vias per i piani di massa meglio vicini al componente
preferibile non fare piste con angoli retti, perch varia la sezione e quindi anche limpedenza
preferibile uscire diagonalmente dai pad
preferibile evitare collegamenti a t.
32venerd 12 luglio 2013
-
Daniele Basile [email protected]
Funzioner?
Simulazione
Si possono simulare gli effetti dei segnali, nelle parti di circuito dove ci sono problemi di SI (cross-talk, ringing, ecc..)
Le simulazioni si possono fare sia sullo sbroglio che schemi filati
Si possono provare possibili fix
I produttori di silicio mettono a disposizione i modelli degli IC per i programmi di simulazione
Simulazione di una scrittura dati di una DDR2
33venerd 12 luglio 2013
-
Daniele Basile [email protected]
Simulazione
34venerd 12 luglio 2013
-
Daniele Basile [email protected]
Software di simulazione.
Simulazione
HyperLynx, http://www.mentor.com/pcb/hyperlynx/ Cadence, http://www.cadence.com/ Altium design, http://www.altium.com/ SiSoft, http://www.sisoft.com/ Altri..
35venerd 12 luglio 2013
-
Daniele Basile [email protected]
Se tutto va male..
Ci voglio strumenti performanti(DDR2 @533MHz -> Bw3a = 2,66GHz)
Debug
Problemi con il montaggio dei BGA (non parte neanche il boot hw)
Problemi con lalimentazione, tensioni non generate correttamente, o corrente non sufficiente
Non si riesce a leggere dal flash (configurazioni errate, possibile incompatibilit con la cpu o kernel)
Non si riesce ad avviare applicativi dalla RAM
Ci sono problemi di SI
36venerd 12 luglio 2013
-
Daniele Basile [email protected]
Possibili problemi di SI:
Clock non pulito o fronti non sincronizzati tra pi rami
Loop di massa
Disturbi sulle linee di trasmissione
Cross-talk tra linee vicine
Ringing eccessivo
Linee non correttamente terminate
Linee con impedenza controllata fuori tolleranza
Debug
Rumore sullalimentazione
Misura di una scrittura dati di una DDR2
37venerd 12 luglio 2013
-
Daniele Basile [email protected]
Ok, la nostra scheda funziona ma il software?
Software
Il produttore fornisce porting funzionanti del kernel di Linux (BSP)
Demo fornita con scheda di sviluppo (sorgenti e binari)
Librerie di terze parti
Community (Distribuzioni complete)
Software house che vendono servizi custom
Prima di pro
gettare ver
ificare che il
software su
pporti o
pu support
are il vostro
hardware!
38venerd 12 luglio 2013
-
Daniele Basile [email protected]
Ok, ho il software ma come lo faccio girare sulla mia scheda?
[5] http://it.wikipedia.org/wiki/Trivial_File_Transfer_Protocol[6] http://it.wikipedia.org/wiki/Network_File_System[7] http://it.wikipedia.org/wiki/Secure_shell[8] http://it.wikipedia.org/wiki/Telnet
Software
Via rete (TFTP[5], NFS [6], ecc..) Console via rete (SSH [7], telnet [8], ecc..) Console seriali JTAG, e programmatori supportati dal produttore del silicio Flash, SD o dispositivi di memoria esterni USB
39venerd 12 luglio 2013
-
Daniele Basile [email protected]
Problematiche con le EMI
EMI e Prove di tipo
I problemi delle EMI vanno affrontante durante la progettazione
Schede elettroniche con componenti performanti possono generare vari tipi di disturbo, sia condotti che irradiati (es. alimentatore, bus paralleli, loop di corrente, clock o segnali digitali con fronti molto ripidi)
Bisogna anche proteggere la scheda dai disturbi che provengono dallesterno (cavi che provengono dallesterno, irradiati da disturbatori vicini, altro..)
Disturbi non filtrati possono causare malfunzionamenti della scheda stessa (es. RAM, ecc..)
40venerd 12 luglio 2013
-
Daniele Basile [email protected]
EMI e Prove di tipo
I problemi delle EMI vanno affrontante durante la progettazione
Sono difficili da debuggare Prove pre-compliance possono aiutare a risolvere problemi
di EMI in fase di protipaggio migliorando la sua qualit
Problematiche con le EMI
Connessione di condensatori di filtro (classe X o Y) in parallelo allalimentazione e allo shield
Utilizzo di common mode choke, per filtrare disturbi in ingresso che in uscita
Schermi metallici sulle parti pi delicate, in caso di assenza di shield Utilizzo di ferriti per bloccare disturbi ad altra frequenza altro..
Esempi di accorgimenti per EMI
41venerd 12 luglio 2013
-
Daniele Basile [email protected]
Dove cerco..
Documentazione
Application note del produttore
Datasheet (occhi agli errata!)
Letteratura
Community (Distribuzioni complete)
JDEC (http://www.jedec.org/)
ONFI (http://www.onfi.org/)
High-speed Digital Design,
Howard Johnson, Martin Graham.
42venerd 12 luglio 2013
-
Fine.
e-mail
web
www.develer.com
twitter@_asterix
43venerd 12 luglio 2013
-
License.
Creative Commons Attribution 3.0 Unported
44venerd 12 luglio 2013