Disaccoppiare alimentazione CPLD

Sezione dedicata alle logiche programmabili

Disaccoppiare alimentazione CPLD

Postby flz47655 » 17 May 2012, 23:57

Ciao a tutti,
Come mi è stato suggerito il modo idealmente migliore per ottenere un buon disaccoppiamento è inserire condensatori con valori che coprano tutte le decadi.

Leggendo qua e la però ho letto che usare valori diversi potrebbe avere dei contro-effetti indesiderati, ho trovato nel libro "Electromagnetic Compatibility Engineering" degli ottimi paragrafi a proposito del disaccoppiamento (par. 4.3).
La discussione http://www.microchip.com/forums/m191397-print.aspx è inoltre da dove ho preso spunto per i calcoli.

In genere per basse frequenze non si fanno calcoli e si utilizza 1 condensatore da 100nF per ogni IC, quando però le frequenze iniziano a salire e si vuole fare un buon lavoro trovo corretto fare due conti.

Questo il ragionamento che ho fatto per scegliere correttamente il valore dei condensatori per una CPLD con una frequenza di 50 MHz:

La capacità massima per pin di output della CPLD è da datasheet 8pF, considerando 2pF per il socket, 2pF per il convertitore PLCC->DIP, 4pF per 2 pin header (1 maschio e 1 femmina) e 8pF per il pin di input del IC in cui entrerà il segnale ottengo una capacità di carico approssimativa di 24pF.

Da datasheet il tempo di propagazione dell'EPM3064 è di 4.5 ns, la corrente per ogni commutazione sarà quindi di:
I = C(dV/dt)
I = 24pF * ( 3.3V / 4.5 ns ) = 18 mA

Considerando tutti e 34 gli IO la corrente assorbita in 4.5 ns sarà:
I * 34 = 612mA

Permettendo un ripple di 50mV, la capacità dei condensatori diventa:
C = I(dt/dv)
C = 612 mA * (4.5 ns / 0.05V) = 6.8nF

Fortuna vuole che il valore sia uno di quelli disponibili, credo che metterò 8 condensatori ceramici a disco di questo valore, cosa ne pensate di questi calcoli?
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Disaccoppiare alimentazione CPLD

Postby legacy » 18 May 2012, 12:41

flz47655 wrote:ho letto che usare valori diversi potrebbe avere dei contro-effetti indesiderati


Quali ?
legacy
 
Posts: 862
Joined: 12 Mar 2012, 11:30

Re: Disaccoppiare alimentazione CPLD

Postby deluca » 18 May 2012, 13:07

Per saperne di più dai uno sguardo a questo pdf della xilinx che alcuni anni fa mi è stato di aiuto nelle prime ingegnerizzazioni di pcb per fpga.

http://www.xilinx.com/support/documentation/application_notes/xapp623.pdf
http://klabs.org/richcontent/MAPLDCon03/papers/b/b6_jaynes_p.pdf

"questo ti confermerà quanto ti avevo già detto a proposito del numero e del mix dei valori sui banchi di I/O."

Chiaramente non dobbiamo fare confusione tra i condensatori di Bypassing e quelli di Decoupling.
Cmq al di sotto dei 50Mhz come ti avevo già detto bastano C di 0.1 e 0.01 nelle alimentazioni dei banchi I/O, quindi
se lavori con clpd del tipo che hai indicato, non ti preoccupare....... tutto funzionerà anche senza condensatori.

ciao
Ciao
Il mio sito: http://www.delucagiovanni.com ......e la chat: chat/
User avatar
deluca
Site Admin
 
Posts: 1104
Joined: 19 Jun 2011, 10:44
Location: 95123 - Catania (Italy)

Re: Disaccoppiare alimentazione CPLD

Postby flz47655 » 18 May 2012, 13:53

Ho letto di effetti indesiderati nelle frequenze intermedie, ad esempio prova a vedere la figura 5 di http://hsi.web.cern.ch/HSI/s-link/devices/g-ldc/decouple.pdf dove viene messo in parallelo un condensatore 22nF con uno 100pF.. l'impedenza a 150 MHz schizza alle stelle.. nell'immagine 7 è mostrato il parallelo tra 10nF e 22nF.. una situazione da evitare secondo me.

Probabilmente fissarsi e fare dei conti sui condensatori di disaccoppiamento per tale CPLD è eccessivo, più che per motivi pratici lo faccio per motivi "teorici" e per capirci meglio qualcosa. Poi siamo d'accordo, con 10nF e 100nF funzionerà tutto tranquillamente, ma riuscire a capire il perché e le equazioni che ci stanno dietro da tutt'altre soddisfazioni.
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Disaccoppiare alimentazione CPLD

Postby flz47655 » 22 May 2012, 19:39

Riporto il diagramma tratto da pag.444 di "Electromagnetic Compatibility Engineering" di Henry W. Ott, il libro dice che alcune persone comparano l'approccio di utilizzare condensatori di disaccoppiamento con molti valori diversi (tipicamente spaziati a decadi) con la "roulette russa".
Attachments
DecouplingNetwork.png
DecouplingNetwork.png (48.26 KiB) Viewed 24161 times
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Disaccoppiare alimentazione CPLD

Postby deluca » 22 May 2012, 20:21

Proprio Lui, Henry Ott, uno dei massimi esperti di EMC, è stato menzionato durante il corso su "Integrità dei segnali nelle moderne schede elettroniche" cui ho partecipato a Bologna nel 2007.
Il corso fu tenuto dai massimi esperti di MentorG.... un corso teorico/pratico interminabile durato 3 giorni full-immersion.

Proprio l'argomento che hai introdotto fu motivo di numerose riflessioni e polemiche da parte nostra (INFN)
che eravamo a conoscenza delle problematiche legate alla presenza di più condensatori !!!! su CMOS, TTL, e ECL.

MentorG, con il loro super simulatore, ci mostrarono su varie piattaforme e varie fpga cosa succedeva se procedevamo
con quell'approccio......... ma sistemando opportunamente i C e soprattutto i fori passanti delle piazzole degli smt nel PCB.

(erano sempre fortunati e non beccavano mai la pallottola random!!!! della roulette russa di Henry)

E' chiaro che è sempre necessario un equilibrio quando si regalano Cap al PCB.... diciamo che l'esperienza ti aiuta molto.
Non sempre puoi simulare anche il PCB..... diciamo che è costoso in termini temporali ed economici.
Ciao
Il mio sito: http://www.delucagiovanni.com ......e la chat: chat/
User avatar
deluca
Site Admin
 
Posts: 1104
Joined: 19 Jun 2011, 10:44
Location: 95123 - Catania (Italy)

Re: Disaccoppiare alimentazione CPLD

Postby legacy » 22 May 2012, 21:41

flz47655 wrote:"Electromagnetic Compatibility Engineering"


L'hai trovato in pdf ? E' consultabile in rete ?
legacy
 
Posts: 862
Joined: 12 Mar 2012, 11:30

Re: Disaccoppiare alimentazione CPLD

Postby legacy » 22 May 2012, 22:04

deluca wrote:E' chiaro che è sempre necessario un equilibrio quando si regalano Cap al PCB


Si e' un gioco di energie alla fine. Quando le frequenze dei segnali in gioco iniziano ad essere guide d'onda (praticamente appena sopra i 50Mhz) la parte di energia reattiva di tipo induttivo inizia ad avere le carte per creare ricircoli potenzialmente pericolosi perche' o viene assorbita completamente e nel modo giusto dalla controparte capacitiva oppure non e' compensata e quindi finisce per irradiare (e tra parentesi se irradia puo' anche auto indurre, cioe' ti trovi un segnale dalla parte opposta del circuito e non sai nemmeno tu da che parte arriva visto che non ci sono piste ne altro, ha volato nell'etere e si auto indotto, e queste cose succedono e vanno sotto il nome di ghost signal) o comunque dare fastidio perche' e' la manifestazione di fenomeni elettromagnetici, e da questo punto di vista si mettono condensatori nei punti giusti proprio per assorbirla, ma eccedere con i condensatori significa esattamente roversciare la siturazione e cioe' avere un eccesso di energia reattiva di tipo capacitivo che non irradia perche' non e' sede di fenomeni elettromagneici e' sede di polarizzazioni sul dielettrico, cioe' e' un po' meno fetente perche' l'effetto percepito e' di derivare o integrare i segnali, dando fastidio con gomiti o crespe ogni volta che il segnale nel tempo vede una singolarita' (i vari ginocchi dell'onda quadra ad ogni passaggio di stato logico, praticamente, che vengono pesantemente o sumssati o sovraelongati)

Da un punto di vista impedenziale complesso la faccenda si fa molto piu' semplice a livello di spiegazione perche' per quanto riguarda l'impendenza vista dai vari integrati non c'e' alcun problema se schizza all'infinito, anzi per assurdo va bene, una alta impedenza va venissimo, un gate di un mos ha impedenza idealmente infinita e va bene perche' su una impedenza infinita non si spilla corrente dai nodi, ergo non si rovinano i fonti, i guai arrivano se le impedenza si abbassano perche' danneggiano i fronti, ma un altro guaio ed e' quello vero il piu' grave, il Vero guaio in assoluto e' che fra sorgente e destinatario ci deve essere la stessa impedenza per massimizzare i trasferimenti di energia senza perdite o riflessioni e le riflessioni sono "male" perche' in controfase possono o annichilire un segnale, o amplificarlo, o comunque storpiarlo, e le cose digitali sono molto sensibili temporalmente parlando.
legacy
 
Posts: 862
Joined: 12 Mar 2012, 11:30

Re: Disaccoppiare alimentazione CPLD

Postby flz47655 » 22 May 2012, 22:10

Il libro è disponibile in formato Kindle (o PDF) ed è disponibile un anteprima su google books http://books.google.it/books?id=qePLhXyx9jIC&printsec=frontcover&hl=it

Io ho letto in PDF le parti che mi interessavano, l'ho trovato molto interessante. L'ISBN è 0470189304

Ciao
Last edited by flz47655 on 15 Jun 2012, 16:14, edited 1 time in total.
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Disaccoppiare alimentazione CPLD

Postby legacy » 22 May 2012, 22:19

a volte e' male, a volte e' bene

Prima abbiamo detto che e' male, quando e' bene ? E' bene per esempio dei DSO dove l'ADC ha banda analogica anche di 1GHz mentre la parte di amplificazione ha il primo polo a mettiamo 100MHz e tenderebbe a far calare il segnale di 20db/dec minimo attenuando di fatto il segnale cosi' tanto che oltre una decade dal primo polo e' praticamente irriconoscibile rispetto al rumore, ergo ... perso.

invece segnali con armoniche ad altra frequenza riescono con dei trucchetti a bypassare la parte di amplificazione (limitata in frequenze per banda passante di 100MHz) grazie al fatto che si autoinducono, e' studiata apposta la cosa per farle arrivare all'adc che le vedra' ovviamente NON amplificate, anzi pesantemente ridotte in ampiezza, anche di un bel po' di db, pero' ancora di energia sufficiente per essere distinte dal rumore e se l'adc le rileva poi il DSP puo' amplificarle numericamente per mostrare la loro presenza in DFT.

Il tempo equivalente fa proprio questo sui circuiti analogici, quando si accorge dai campioni che c'e' segnale oltre banda chiude dei transistor che mandano in corto dei filtri di compensazione per far cosi' bypassare la parte di amplificazione a bandapassante limitata in modo che il segnale possa arrivare (magari proprio perche' autoinduce) fino all'adc che e' invece ha bandapassante perfettamente in grado di rivelarli. Il resto lo fanno tecniche numeriche di windowing, e statistica di interpolazione molto intelligente che, sapendo che il segnale e' periodico, di tutto quel marasma rumorisissimo attraverso letture e riletture di diverse epoche posso tirar fuori correlazione, ma sopratutto autocorrelazione, quindi il periodo, quindi una descrizione spettrale coerente con le correzioni apportate dal windowing.
legacy
 
Posts: 862
Joined: 12 Mar 2012, 11:30

Re: Disaccoppiare alimentazione CPLD

Postby flz47655 » 23 May 2012, 09:28

Non credo che il mio DSO sia così intelligente, con equ-time la banda analogica rimane la solita anche se non ho verificato se nella FFT mi mostra maggiori armoniche..
Ad ogni modo volevo aggiungere che il libro è molto interessante, ho scoperto ad esempio che i ground loop non sempre sono il male, soprattutto a elevate frequenze dove quello che conta è l'induttanza e alla fine i segnali girano proprio in base all'induttanza ignorando le piste preposte.

Ciao
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Disaccoppiare alimentazione CPLD

Postby legacy » 23 May 2012, 10:54

se cosi' fosse non leggeresti NULLA oltre i 150MHz-180MHz perche' se ti fai due conti SNR ti accorgi che quel polo fa calare di parecchi db il guadagno, e' li ed e' evidente che cali di 6db appena lo incontri, e li finisce la banda per definizione di banda ma da li in poi stai gia' calando di 20db/dec (se non di 40db/dec) almeno e ben presto attenui cosi' tanto che il segnale non e' piu' distinguibile dal rumore (se consideri i bit equivalenti di rumore poi ... ti accorgi che serve stare su i db per il segnale sull'adc per essere distinto dal rumore), invece se tu riesci a leggere qualcosa oltrebanda e' proprio grazie a questi trucchetti, cosa che alla fine costa pure poco implementare per chi di mestiere da oscilloscopi.

Il tuo DSO poi e' un caso particolare: come ben sai e' hackerabile, cioe' con una modifica al firmware "diventa" il modello superiore che ha il doppio della banda passante, e questo fatto si porta dietro la spiegazione che i circuiti analogici che hanno marchiato come "modello a 100MHz di banda passante" in realta' e' uno scarto industriale del "modello a 200MHz di banda passante", e cioe' non ha passato i test dell'analizzatore di segnale che ha rilevato un polo e delle schifezzine ben prima del polo atteso a 200MHz, ergo gia' di suo non ha un polo veramente a 100MHz, e' il firmware che crede che cosi' sia e in real time fa un windowing selvaggio proprio per quella frequenza (ecco la stupidaggine dell'hack in cosa consiste: nel cambiare il valore di windowing, peccato che la funzione di trasferimento di circuiti analogici abbia delle schifezzine prima del solo polo atteso a 200MHz, cio' compromette non poco la lettura perche' si assume un funzione di trasferimento piatta quando piatta non e') oltre la quale tende ad annichilire il tutto. L'equ time e' piu' bovino e lo sfrutta grazie al fatto che se e' periodico puo' farci sopra autocorrelazioni che sono utili all'interpolaore per ricostruire, ma non andresti mai oltre i 150-180MHz senza il bypass e non leggeresti mai la terza armonica di una onda quadra con fondamentale a 100MHz (sarebe un 3x, quindi 300Mhz), cosi' come non leggeresti mai una onda quadra con fondamentale a 200MHz per la semplice ragione che i circuiti prima dell'adc non gli farebbero arrivare nulla e tu leggeresti solo rumore.

L'equ time - utile - e' una faccenda che non aumenta solo la risoluzione temporale grazie al fatto che sfasando di un quanto pari a 1/25 del periodo si riesce a campionare 25 volte campioni in piu', sta di fatto aumentado a manetta la frequenza di campionamento ma puoi fare oversampling quanto ti pare, se all'adc non arrivano armoniche poco puoi fartene di sovra campioni. In pratica invece quando funziona in equ timpe espandere il tempo di misura e' un trucco che serve ad espandere la banda analogica misurabile grazie ai trucchetti sui circuiti che fanno bypass in altra frequenza per sfruttare il fatto che l'ADC ha banda analogica mostruosamente piu' larga dei circuiti analogici di amplificazione che lo precedono, e il dsp con autocorrelazione sa gestire questione: senza il bypass, avresti soltanto oversampling.
Last edited by legacy on 23 May 2012, 11:39, edited 2 times in total.
legacy
 
Posts: 862
Joined: 12 Mar 2012, 11:30

Re: Disaccoppiare alimentazione CPLD

Postby deluca » 23 May 2012, 11:15

Guarda guarda che ho trovato proprio gli slide di quel corso relativi all'argomento in topic.

Ricordavo benissimo i MentorGraficisti proponevano proprio l' Approccio A (SI community).
e lo avevano pure dimostrato con i tools.
Attachments
SI_1.jpg
SI_1.jpg (44.41 KiB) Viewed 24114 times
SI_2.jpg
SI_2.jpg (44.85 KiB) Viewed 24114 times
SI_3.jpg
SI_3.jpg (60.19 KiB) Viewed 24114 times
SI_4.jpg
SI_4.jpg (62.37 KiB) Viewed 24114 times
Ciao
Il mio sito: http://www.delucagiovanni.com ......e la chat: chat/
User avatar
deluca
Site Admin
 
Posts: 1104
Joined: 19 Jun 2011, 10:44
Location: 95123 - Catania (Italy)

Re: Disaccoppiare alimentazione CPLD

Postby legacy » 23 May 2012, 11:31

Notare il discorso che facevo prima del bilancio di energia reattiva su reti circuitali dove si considera l'effetto guida d'onda in modo cosi' maniacale che ogni singola pista di interconenssione e' se stessa (per le frequenze in gioco, o per meglio dire per il maniferstarsi di fenomeni elettromagnetici che accadono quando cadono le ipotesi stazionarieta') una induttanza, dai grafici pero' l'effetto fortemente induttivo si vede comparire in modo vistoso sopra i 100MHz e non sopra i 50MHz come ho scritto prima, ed e' ottima sintesi il consiglio espresso nelle slide ridurre il piu' possibile l'induttanza tra i pin di I/O e il condensatore tank di disaccoppiamento, cioe' mettetlo il piu' vicino possiible, piu' la pista e' lunga e mal compensata piu' si comporta da induttanza, e la cosa peggiora tanto piu' aumenta la frequenza in gioco. Ottime quelle slide!

p.s. e col BGA c'e' da piangere, perche' necessariamente bisogna risolvere il pcb in 3d, su almeno 4 strati, povero masterista =P
legacy
 
Posts: 862
Joined: 12 Mar 2012, 11:30

Re: Disaccoppiare alimentazione CPLD

Postby flz47655 » 25 May 2012, 11:45

Interessante conoscere che c'è anche l'approccio SI che mette un numero di condensatori logaritmicamente crescente da una decade all'altra..
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Disaccoppiare alimentazione CPLD

Postby flz47655 » 01 Sep 2012, 14:14

La capacità massima per pin di output della CPLD è da datasheet 8pF, considerando 2pF per il socket, 2pF per il convertitore PLCC->DIP, 4pF per 2 pin header (1 maschio e 1 femmina) e 8pF per il pin di input del IC in cui entrerà il segnale ottengo una capacità di carico approssimativa di 24pF.

Da datasheet il tempo di propagazione dell'EPM3064 è di 4.5 ns, la corrente per ogni commutazione sarà quindi di:
I = C(dV/dt)
I = 24pF * ( 3.3V / 4.5 ns ) = 18 mA

Considerando tutti e 34 gli IO la corrente assorbita in 4.5 ns sarà:
I * 34 = 612mA

Permettendo un ripple di 50mV, la capacità dei condensatori diventa:
C = I(dt/dv)
C = 612 mA * (4.5 ns / 0.05V) = 6.8nF

Fortuna vuole che il valore sia uno di quelli disponibili, credo che metterò 8 condensatori ceramici a disco di questo valore, cosa ne pensate di questi calcoli?


Ehehe tanti calcoli e board realizzata poi oggi penso.. hey se metto 8 condensatori in parallelo la capacità diventa però 6.8nF * 8 = 54.4nF.... :shock: (tralasciando gli altri effetti parassiti)

Dovevo scegliere 6.8nF / 8 = 850pF :cry: comunque ormai è tardi, la scheda per fortuna funziona ugualmente bene
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Disaccoppiare alimentazione CPLD

Postby flz47655 » 01 Sep 2012, 14:24

Mumble... considerando però che avevo sbagliato a fare il conto :D

C = 612 mA * (4.5 ns / 0.05V) = 55.08 nF

Direi che sono stato fortunato, perché sommando la capacità in parallelo dei condensatori ho proprio il valore dei calcoli (corretti)
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Disaccoppiare alimentazione CPLD

Postby cyclone » 01 Sep 2012, 14:44

salve flz
la matematica non è un'opinione ma la scheda avrebbe funzionato comunque
i prb li potrai incontrare quando dovrai bilnaciare i C sui pin delle grosse fpga con molti gruppi di I/O.

Su quella potresti anche farne a meno
swapppp
User avatar
cyclone
 
Posts: 38
Joined: 27 Jan 2012, 11:49

Re: Disaccoppiare alimentazione CPLD

Postby flz47655 » 01 Sep 2012, 16:37

Diciamo che era una sorta di esercizio per capire come dimensionare i condensatori senza affidarmi sempre a regole empiriche (i famigerati 100nF)
Nella pratica mi è servito "fin li" perché i condensatori a causa dell'adattatore PLCC-DIP erano abbastanza distanti dal chip.. oltre che erano abbastanza anonimi e ad elevato ESR :D

Diciamo che mi piace però capirci qualcosa perlomeno in teoria

Ciao
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Disaccoppiare alimentazione CPLD

Postby syntronik » 22 Jun 2013, 10:40

Credo di aver trovato il pozzo di san Patrizio, in questo forum, ho imparato più cose leggendo qualche articolo e commento, che leggermi tutte le note tecniche Altera,
vedo anche che c'è molto affettato ancora da mangiare, inclusa relativa polenta, pertanto mi leggerò bene il tutto, prima di "eventualmente" chiedere chiarimenti,
a mè pare di essere ancora ad anni luce di distanza.
Saluti
Maurizio
Chi si ferma, è una cosa inutile.
syntronik
 
Posts: 4
Joined: 21 Jun 2013, 16:30
Location: Parma

Next

Return to FPGA & CPLD

Who is online

Users browsing this forum: No registered users and 11 guests

cron