progettare una scheda linux un caso reale

44
Ing. Daniele Basile Progettare una scheda Linux, un caso reale. Conferenza Better Embedded Firenze, 8-9 luglio 2013 1 venerdì 12 luglio 2013

Upload: mirkoitaly

Post on 24-Nov-2015

19 views

Category:

Documents


1 download

DESCRIPTION

hardware linux

TRANSCRIPT

  • 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

    [email protected]

    www.develer.com

    twitter@_asterix

    43venerd 12 luglio 2013

  • License.

    Creative Commons Attribution 3.0 Unported

    44venerd 12 luglio 2013