Tell me more ×
Electrical Engineering Stack Exchange is a question and answer site for electronics and electrical engineering professionals, students, and enthusiasts. It's 100% free, no registration required.

The Arduino Leonardo has an interesting difference with previous boards: the AVCC pin of the ATMEGA32U4 is connected to +5V through a MH2029-300Y ferrite beads and to GND through a 1uF capacitor.

In ArduinoUno and ArduinoMega2560, this pin was simply connected to VCC. According to the atmel datasheet, this pin should be connected to a Low-Pass filter when the ADC converted is used.

enter image description here

Arduino Leonardo schema

Is this really a low pass filter? If yes, how does it work? How would you call that type of circuit? How do you model it?

share|improve this question
1  
Well the ferrite bead provides inductivity and the capacitor provides capacitance, so it's a form of LC filter. – AndrejaKo Jul 20 '12 at 8:53
1  
Whoa, terrible schematics. – Connor Wolf Jul 20 '12 at 20:50
It turns out that you can not use a traditional RC filter - read comments below to find out more about this. Also, page 302 of the Atmega 32u4 datasheet has some explanation for this (24.7.2 Analog Noise Canceling Techniques). – sarfata Aug 10 '12 at 20:26

2 Answers

up vote 6 down vote accepted

enter image description here

The inductor plus capacitor form a frequency-dependent voltage divider.

\$ \dfrac{V_{OUT}}{V_{IN}} = \dfrac{Z_C}{Z_C + Z_L} \$

For DC and low frequencies the impedance of L1 (\$Z_L\$) is low, and that of C1 (\$Z_C\$) high, so the input voltage won't be attenuated much. At high frequencies it's the other way around: \$Z_L\$ is high, and \$Z_L\$ is low. The attenuation is high, and the higher the frequency the higher the attenuation. So this is indeed a low-pass filter.

The inductor they used is not a good one, however. It's a high frequency EMI suppressor, targeted at frequencies of tens of MHz. (The used type has an impedance of 30 Ω at 100 MHz.)

enter image description here

The impedance curve shows a 0.5 Ω/MHz slope, so at 100 Hz the reactive part of the inductance is negligible.

What is actually needed is suppression of low frequency noise, like 100 Hz ripple from the power supply. Then this inductor is pretty useless, and it's like just having the capacitor.

For low frequencies inductors can be impractically large, then a resistor instead of the inductor would have been a better choice. The datasheet says AVCC shouldn't be lower than VCC - 0.3 V, but I couldn't find how much current AVCC uses. That won't be much, say 10 µA maximum. The cutoff frequency of an RC filter is

\$ f_C = \dfrac{1}{2 \pi RC} \$

So if we use a 15.9 kΩ resistor with the 1 µF capacitor, we have a 10 Hz cutoff frequency, and the frequency response will look like this:

enter image description here

The 10µA through 15.9 kΩ is a 159 mV drop, so that's within spec. A 100 Hz ripple will be attenuated by 20 dB, that's 1:10, which isn't much, but VCC should have been decoupled properly already, so the 20 dB is just extra. Above 1 kHz noise will be reduced by at least 40 dB, that's a factor 1:100.

share|improve this answer
Great answer Steven. Thanks a lot! (and thanks for the added picture in the question ;) – sarfata Jul 20 '12 at 18:11
@sarfata - my pleasure, thanks for the accept. But I didn't upload the picture, that was jippie. I removed your signature :-) (they're not allowed on the site) – stevenvh Jul 20 '12 at 18:15
Well thanks to you, I now know how to look at edit history ;) Thanks to everyone who cleaned up the question and made it better! – sarfata Jul 20 '12 at 22:18
1  
IMPORTANT - READ THIS BEFORE USING A RESISTOR! I build a card with a Atmega 32U4 and the low-pass filter described on this page comments (15.8k resistor + 1 uF capacitor). It turns out that the current drawn on AVCC is much higher than expected: I measure 2.58V on AVCC with VCC at 3.30V (so I = (3.30-2.58)/15.8) = 45uA. The voltage drop is 0.72V, which is twice the allowed drop. The result is that the chip can not be programmed. You can read it but write fails all the time. I removed the resistor and connected AVCC directly to VCC and can now program the chip. [CC @stevenh] – sarfata Aug 10 '12 at 20:19
Also, in the datasheet, page 302, they describe the circuit used by Arduino and explain that they are trying to reduce EMI generated by the device. (fyi @stevenh) – sarfata Aug 10 '12 at 20:28
show 1 more comment

Yes, it's a low pass filter. The ferrite bead is a lossy inductive component that acts somewhat like a frequency dependent resistor, with L dominating at low frequencies and R dominating at high frequencies. The capacitor shunts higher frequencies to ground. Combined they form an LC filter with low Q, which does not experience the sharp resonant peak (as long as the cutoff is in the resistive region of the bead) that can cause problems in a "standard" LC filter.
However as Steven notes this part is not particularly suitable for this application, since it is a high frequency part and the ADC is relatively low frequency. It would be of use in something that requires filtering at much higher frequencies, like an FPGA design, high frequency ADC, etc.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.