Skip to main content
added 452 characters in body
Source Link
bobflux
  • 81.9k
  • 3
  • 97
  • 237

If you want to filter the power supply for the module, you can always use a LC filter with a ferrite bead. Three 0805 components don't use much space.

enter image description here

In the application I plan to use a 4 layer board with a 5 V power plane

Unless you're using many other 5V components, you don't need a 5V power plane. A plane won't magically make your power rail noise free. It will provide very low impedance between everything on it, especially decoupling caps, so it works very well at the frequencies handled by the caps. But at lower frequency the supply impedance of the power rail is the output impedance of whatever power source feeds it, LDO or USB "charger".

Your mcu is 3V3, so maybe you need a 3V3 power pour.

If you want to filter the power supply for the module, you can always use a LC filter with a ferrite bead. Three 0805 components don't use much space.

enter image description here

In the application I plan to use a 4 layer board with a 5 V power plane

Unless you're using many other 5V components, you don't need a 5V power plane. A plane won't magically make your power rail noise free. It will provide very low impedance between everything on it, especially decoupling caps, so it works very well at the frequencies handled by the caps. But at lower frequency the supply impedance of the power rail is the output impedance of whatever power source feeds it, LDO or USB "charger".

Your mcu is 3V3, so maybe you need a 3V3 power pour.

added 452 characters in body
Source Link
bobflux
  • 81.9k
  • 3
  • 97
  • 237

Is the issue just that breadboards suck? 28 AWG jumpers too thin?

They usually have rather high contact resistance, so yeah. Besides, resistance will change if you wiggle the wire or connect/disconnect, which makes it impossible to makemeans it's non-repeatable: this does not help with the kind of comparisons you're making with low value filter resistors...

However if you expect it to be USB powered, it should be able to work with all the resistance from the cable, connectors, plus the output impedance of the USB port it's plugged into. So it should be designed to work with noisy 5V, and 100mV noise is definitely not out of spec, it should tolerate more, otherwise it will be picky about what 5V source you use with it.

So you have ADC noise issues. Possible causes:

  • Noise in the signal: for example the signal comes from a sensor that's powered from noisy +5V, and the sensor has low PSRR.

  • Noise coupling into the signal: for example due to the wires to the sensor being near wires to the display

  • ADC voltage reference noise: in your case, the ADC reference is +3V3 for the microcontroller, so it will have some ripple depending on mcu dynamic power consumption or other loads on +3V3.

An ADC outputs the digital value of VIN divided by VREF, so it's only as accurate as its VREF.

In your case the 5V to 3V3 LDO on the board has decent PSRR, so I doubt it's transmitting enough noise from 5V to 3V3 to matter. Doesn't hurt to probe 3V3 with the scope. Make sure you take your scope ground on the mcu module, not the breadboard.

If you're using a ratiometric sensor (with output proportional to VCC, or if the output is centered on VCC/2), or dependent on VCC, then the "VCC" in question should be the micro's ADC VREF. For example if your sensor is a voltage divider fed from ADC VREF, its output voltage is DividerRatio * VREF, so the ADC measures DividerRatio * VREF / VREF... taking VREF out of the equation. In this case you can get good accuracy with an high drift/inaccurate VREF.

If your sensor outputs a voltage that is not related to VCC, and you want high accuracy or low drift, maybe you need a more accurate reference chip instead of a LDO. Can't say more without knowing what sensor you're using.

  • Ground noise

If the 100mV drop on +5V is due to contact resistance on your breadboard... there are the same contacts on the ground side of your breadboard, so there should be similar voltage drop.

While +5V does not influence your ADC readings directly, any voltage on GND between the mcu module and the sensor is directly added to the voltage you want to measure.

So if your sensor is independent, I'd recommend trying to connect its ground and VCC to the mcu module directly, not via breadboard. If there's no pins facing up you can always solder them on the Feather M4.

Is the issue just that breadboards suck? 28 AWG jumpers too thin?

They usually have rather high contact resistance, so yeah. Besides, resistance will change if you wiggle the wire, which makes it impossible to make the kind of comparisons you're making...

So you have ADC noise issues. Possible causes:

  • Noise in the signal: for example the signal comes from a sensor that's powered from noisy +5V, and the sensor has low PSRR.

  • Noise coupling into the signal: for example due to the wires to the sensor being near wires to the display

  • ADC voltage reference noise: in your case, the ADC reference is +3V3 for the microcontroller, so it will have some ripple depending on mcu dynamic power consumption or other loads on +3V3.

An ADC outputs the digital value of VIN divided by VREF, so it's only as accurate as its VREF.

In your case the 5V to 3V3 LDO on the board has decent PSRR, so I doubt it's transmitting enough noise from 5V to 3V3 to matter. Doesn't hurt to probe 3V3 with the scope. Make sure you take your scope ground on the mcu module, not the breadboard.

If you're using a ratiometric sensor (with output proportional to VCC, or if the output is centered on VCC/2), or dependent on VCC, then the "VCC" in question should be the micro's ADC VREF. For example if your sensor is a voltage divider fed from ADC VREF, its output voltage is DividerRatio * VREF, so the ADC measures DividerRatio * VREF / VREF... taking VREF out of the equation. In this case you can get good accuracy with an high drift/inaccurate VREF.

If your sensor outputs a voltage that is not related to VCC, and you want high accuracy or low drift, maybe you need a more accurate reference chip instead of a LDO. Can't say more without knowing what sensor you're using.

  • Ground noise

If the 100mV drop on +5V is due to contact resistance on your breadboard... there are the same contacts on the ground side of your breadboard, so there should be similar voltage drop.

While +5V does not influence your ADC readings directly, any voltage on GND between the mcu module and the sensor is directly added to the voltage you want to measure.

So if your sensor is independent, I'd recommend trying to connect its ground and VCC to the mcu module directly, not via breadboard. If there's no pins facing up you can always solder them on the Feather M4.

Is the issue just that breadboards suck? 28 AWG jumpers too thin?

They usually have rather high contact resistance, so yeah. Besides, resistance will change if you wiggle the wire or connect/disconnect, which means it's non-repeatable: this does not help with the kind of comparisons you're making with low value filter resistors...

However if you expect it to be USB powered, it should be able to work with all the resistance from the cable, connectors, plus the output impedance of the USB port it's plugged into. So it should be designed to work with noisy 5V, and 100mV noise is definitely not out of spec, it should tolerate more, otherwise it will be picky about what 5V source you use with it.

So you have ADC noise issues. Possible causes:

  • Noise in the signal: for example the signal comes from a sensor that's powered from noisy +5V, and the sensor has low PSRR.

  • Noise coupling into the signal: for example due to the wires to the sensor being near wires to the display

  • ADC voltage reference noise: in your case, the ADC reference is +3V3 for the microcontroller, so it will have some ripple depending on mcu dynamic power consumption or other loads on +3V3.

An ADC outputs the digital value of VIN divided by VREF, so it's only as accurate as its VREF.

In your case the 5V to 3V3 LDO on the board has decent PSRR, so I doubt it's transmitting enough noise from 5V to 3V3 to matter. Doesn't hurt to probe 3V3 with the scope. Make sure you take your scope ground on the mcu module, not the breadboard.

If you're using a ratiometric sensor (with output proportional to VCC, or if the output is centered on VCC/2), or dependent on VCC, then the "VCC" in question should be the micro's ADC VREF. For example if your sensor is a voltage divider fed from ADC VREF, its output voltage is DividerRatio * VREF, so the ADC measures DividerRatio * VREF / VREF... taking VREF out of the equation. In this case you can get good accuracy with an high drift/inaccurate VREF.

If your sensor outputs a voltage that is not related to VCC, and you want high accuracy or low drift, maybe you need a more accurate reference chip instead of a LDO. Can't say more without knowing what sensor you're using.

  • Ground noise

If the 100mV drop on +5V is due to contact resistance on your breadboard... there are the same contacts on the ground side of your breadboard, so there should be similar voltage drop.

While +5V does not influence your ADC readings directly, any voltage on GND between the mcu module and the sensor is directly added to the voltage you want to measure.

So if your sensor is independent, I'd recommend trying to connect its ground and VCC to the mcu module directly, not via breadboard. If there's no pins facing up you can always solder them on the Feather M4.

Source Link
bobflux
  • 81.9k
  • 3
  • 97
  • 237

Is the issue just that breadboards suck? 28 AWG jumpers too thin?

They usually have rather high contact resistance, so yeah. Besides, resistance will change if you wiggle the wire, which makes it impossible to make the kind of comparisons you're making...

So you have ADC noise issues. Possible causes:

  • Noise in the signal: for example the signal comes from a sensor that's powered from noisy +5V, and the sensor has low PSRR.

  • Noise coupling into the signal: for example due to the wires to the sensor being near wires to the display

  • ADC voltage reference noise: in your case, the ADC reference is +3V3 for the microcontroller, so it will have some ripple depending on mcu dynamic power consumption or other loads on +3V3.

An ADC outputs the digital value of VIN divided by VREF, so it's only as accurate as its VREF.

In your case the 5V to 3V3 LDO on the board has decent PSRR, so I doubt it's transmitting enough noise from 5V to 3V3 to matter. Doesn't hurt to probe 3V3 with the scope. Make sure you take your scope ground on the mcu module, not the breadboard.

If you're using a ratiometric sensor (with output proportional to VCC, or if the output is centered on VCC/2), or dependent on VCC, then the "VCC" in question should be the micro's ADC VREF. For example if your sensor is a voltage divider fed from ADC VREF, its output voltage is DividerRatio * VREF, so the ADC measures DividerRatio * VREF / VREF... taking VREF out of the equation. In this case you can get good accuracy with an high drift/inaccurate VREF.

If your sensor outputs a voltage that is not related to VCC, and you want high accuracy or low drift, maybe you need a more accurate reference chip instead of a LDO. Can't say more without knowing what sensor you're using.

  • Ground noise

If the 100mV drop on +5V is due to contact resistance on your breadboard... there are the same contacts on the ground side of your breadboard, so there should be similar voltage drop.

While +5V does not influence your ADC readings directly, any voltage on GND between the mcu module and the sensor is directly added to the voltage you want to measure.

So if your sensor is independent, I'd recommend trying to connect its ground and VCC to the mcu module directly, not via breadboard. If there's no pins facing up you can always solder them on the Feather M4.