Comprensione del cablaggio dei pin AVCC su ArduinoLeonardo (filtro passa-basso?)


10

Arduino Leonardo ha un'interessante differenza rispetto alle schede precedenti: il pin AVCC di ATMEGA32U4 è collegato a + 5 V tramite un tallone in ferrite MH2029-300Y e a GND tramite un condensatore da 1uF.

In ArduinoUno e ArduinoMega2560, questo pin era semplicemente collegato a VCC. Secondo la scheda tecnica atmel, questo pin deve essere collegato a un filtro passa-basso quando viene utilizzato il convertitore ADC.

inserisci qui la descrizione dell'immagine

Schema di Arduino Leonardo

È davvero un filtro passa basso? Se sì, come funziona? Come chiameresti quel tipo di circuito? Come lo modelli?


1
Bene, il tallone di ferrite fornisce induttività e il condensatore fornisce capacità, quindi è una forma di filtro LC.
Andreja Ko

3
Whoa, terribili schemi.
Connor Wolf,

Si scopre che non è possibile utilizzare un filtro RC tradizionale: leggi i commenti qui sotto per saperne di più. Inoltre, la pagina 302 del foglio dati Atmega 32u4 ha alcune spiegazioni per questo (24.7.2 Tecniche di eliminazione del rumore analogiche).
sarfata,

Risposte:


11

inserisci qui la descrizione dell'immagine

L'induttore più il condensatore formano un divisore di tensione dipendente dalla frequenza.

VOUTVIN=ZCZC+ZL

Per le frequenze CC e basse, l'impedenza di L1 ( ) è bassa e quella di C1 ( ) alta, quindi la tensione di ingresso non sarà molto attenuata. Alle alte frequenze è il contrario: è alto e è basso. L'attenuazione è alta e maggiore è la frequenza maggiore è l'attenuazione. Quindi questo è davvero un filtro passa-basso.Z C Z L Z CZLZCZLZC

L'induttore che hanno usato non è comunque buono. È un soppressore EMI ad alta frequenza, mirato a frequenze di decine di MHz. (Il tipo utilizzato ha un'impedenza di 30 Ω a 100 MHz.)

inserisci qui la descrizione dell'immagine

La curva di impedenza mostra una pendenza di 0,5 Ω / MHz, quindi a 100 Hz la parte reattiva dell'induttanza è trascurabile.

Ciò che è effettivamente necessario è la soppressione del rumore a bassa frequenza, come un'ondulazione di 100 Hz dall'alimentatore. Quindi questo induttore è piuttosto inutile, ed è come avere solo il condensatore.

Per gli induttori a basse frequenze può essere impraticabilmente grande, quindi una resistenza anziché l'induttore sarebbe stata una scelta migliore. Il foglio dati dice che AVCC non dovrebbe essere inferiore a VCC - 0,3 V, ma non sono riuscito a trovare quanto AVCC utilizza attualmente. Non sarà molto, diciamo 10 µA massimo. La frequenza di taglio di un filtro RC è

fC=12πRC

Quindi se utilizziamo una resistenza da 15,9 kΩ con il condensatore da 1 µF, abbiamo una frequenza di taglio di 10 Hz e la risposta in frequenza sarà simile a questa:

inserisci la descrizione dell'immagine qui o qui

Da 10µA a 15,9 kΩ è una caduta di 159 mV, quindi rientra nelle specifiche. Un'ondulazione di 100 Hz verrà attenuata di 20 dB, ovvero 1:10, il che non è molto, ma VCC avrebbe dovuto essere già disaccoppiato correttamente, quindi i 20 dB sono solo extra. Al di sopra di 1 kHz il rumore verrà ridotto di almeno 40 dB, fattore 1: 100.


Ottima risposta Steven. Molte grazie! (e grazie per l'immagine aggiunta nella domanda;)
sarfata

@sarfata - piacere, grazie per l'accettazione. Ma non ho caricato l'immagine, era jippie . Ho rimosso la tua firma :-) (non sono ammessi sul sito)
stevenvh

Bene grazie a te, ora so come guardare la cronologia delle modifiche;) Grazie a tutti coloro che hanno ripulito la domanda e l'hanno migliorata!
sarfata,

1
IMPORTANTE: LEGGERE PRIMA DI USARE UN RESISTORE! Costruisco una scheda con un Atmega 32U4 e il filtro passa-basso descritto nei commenti di questa pagina (resistenza da 15,8k + 1 condensatore uF). Si scopre che la corrente assorbita su AVCC è molto più alta del previsto: misuro 2,58 V su AVCC con VCC a 3,30 V (quindi I = (3,30-2,58) / 15,8) = 45uA. La caduta di tensione è di 0,72 V, che è il doppio della caduta consentita. Il risultato è che il chip non può essere programmato. Puoi leggerlo ma la scrittura non riesce sempre. Ho rimosso la resistenza e collegato AVCC direttamente a VCC e ora posso programmare il chip. [CC @stevenh]
sarfata

1
@sarfata - Allora puoi ancora usare un resistore, ma devi usare un valore più basso, come 4.7 k.
Stevenvh

9

Alcune risposte davvero buone. La mia opinione è che l'obiettivo del filtro LC non è filtrare l'ondulazione dell'alimentazione. Ciò viene fatto meglio con tappi rigidi (ESR bassi) sulle linee elettriche / sui piani e selezionando la parte giusta del regolatore per iniziare. Inoltre, se si alimenta il tuo Arduino da una porta USB, il rumore di ondulazione a bassa frequenza sarebbe trascurabile. Una verruca da parete cheapo è un commutatore tra le decine e le centinaia di KHz e sarà elettricamente rumorosa ma il regolatore di tensione e la capacità sul le rotaie di alimentazione digitali dovrebbero aiutare lì.

Ciò che il filtro LC L / P sta facendo è rimuovere i bordi taglienti dei segnali digitali che si fanno strada sulle linee di alimentazione digitali e se collegati direttamente ai pin AVCC troverebbero posto nei circuiti di conversione A / D.

Il motivo per cui la scheda non si avvia con il resistore più grande (nel circuito RC) è che il PLL nella parte ATMega è un circuito analogico e utilizza gli stessi pin AVCC dei convertitori A / D e non ha avuto abbastanza energia . Forse in realtà non usa entrambi i pin allo stesso modo nella parte, ma non c'è differenziazione nella scheda tecnica (entrambi sono chiamati AVCC). Per quanto riguarda il layout, è un problema avere i pin 24 e 44 come quelli che vanno all'AVCC poiché si trovano su lati opposti del chip e chi si preoccuperà di dedicare loro un intero piano di potenza? Si finisce per instradare un segnale attraverso la parte probabilmente con vie su entrambi i lati, ecc. Doloroso. Il datasheet menziona a malapena questo brutto pezzo di realtà, quasi come se il pin extra fosse un secondo pensiero di ATMEL.

Ad ogni modo, questi segnali rumorosi provengono dal microprocessore stesso quando cambia internamente e non danneggiano la logica digitale, ma cercare di ottenere una precisione analogica a 10 bit richiede un po 'più di sforzo sul lato dell'alimentazione. Quei bordi del rumore digitale sono forse in decine di tempo nS (100 Mhz-ish), quindi i filtri con questa caratteristica funzioneranno abbastanza bene. Se si analizzano i numeri, utilizzando AVCC = 5 V e 10 bit di A / D ogni LSB è di circa 5 mV. Sembra che dovresti averne meno della metà come regola empirica per avere un rumore "basso".

La scheda tecnica MH2029-300Y mostra 20 Ohm a 100 Mhz. Se il ragazzo che ha provato il filtro RC avesse impostato la frequenza del ginocchio a 1 Mhz, probabilmente avrebbe funzionato meglio perché avrebbe potuto scegliere una resistenza molto più piccola. Qualcosa di simile a un resistore da 22 Ohm (per abbinare l'impedenza dell'induttore a 100 Mhz) e un cappuccio da .01uF avrebbe avuto una caduta di tensione CC abbastanza piccola a causa del carico in ingresso (45uA x 22 Ohm = 1 mV circa dai suoi numeri). Sarebbe in calo di 40 dB nella frequenza di interesse.

Non scommetterei un passaggio di layout su di esso, ma se le parti avessero un po 'di impronta potrei dargli un colpo (scegliere un'impronta di 0805 per entrambi?) Ma con l'induttore che è una parte di $ 0,10 da Mouser, perché non limitarsi a farlo ?


1

Sì, è un filtro passa basso. Il tallone di ferrite è un componente induttivo con perdita che agisce in qualche modo come un resistore dipendente dalla frequenza, con L che domina alle basse frequenze e R che domina alle alte frequenze. Il condensatore sposta le frequenze più alte verso terra. Combinati formano un filtro LC con Q basso, che non presenta il picco risonante acuto (fintanto che il taglio è nella regione resistiva del tallone) che può causare problemi in un filtro LC "standard".
Tuttavia, come osserva Steven, questa parte non è particolarmente adatta per questa applicazione, poiché è una parte ad alta frequenza e l'ADC è una frequenza relativamente bassa. Sarebbe utile in qualcosa che richiede il filtraggio a frequenze molto più alte, come un design FPGA, ADC ad alta frequenza, ecc.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.