I'm considering using the MPX4115 absolute pressure sensor for altitude, and the MPXV5004DP differential sensor for speed. These are both 5V parts, and my microcontroller is 3.3V. What would be the optimal way to connect these sensors to my uC's ADC inputs?

Would a voltage divider suffice? What if I were to put an RC filter on the output of the pressure sensors (as suggested in the application note (http://www.freescale.com/files/sensors/doc/app_note/AN1646.pdf) ? Should I buffer the output of the RC filter with an opamp, then use a resistor network to scale the voltage down to 3.3V? Or just put a resistor network immediately after the RC filter and tap the output to the ADC?

Views: 5455

Reply to This

Replies to This Discussion

Hi, MPXV5004DP zero pressure voltage is close to zero, so you can use it as is, assuming that you are not reaching speeds where sensor output voltage exceeds 3.3V. MPX4115 voltage, however, is close to VCC (5V), so I use resistor bridge to bring it down (I use 10k and 20k). I think that simpler is solution is better.
But, what if I were to use a simple RC filter on the output to clean up the signal? Can I use a simple voltage divider after the filter, or do I need to buffer it with an op amp first (as illustrated in the application note)?
Given that the RC world (servos and Rx) work at 5V, you might want to think about switching to a 5V microcontroller and running the whole board at 5V, like we do.
Hi, all my ADC inputs have low-pass RC filter in front of them. I used to use 10k resistor and 0.1uf capacitor, but will probably use 20k and 1uf for next board, as I find no reason for being aware of movements that are faster than servos can move. This 10k-20k bridge has capacitor as well, in parallel to 20k resistor. I'm not against using opamps, but any component tends to add noise and drifts with temperature, therefore I'd avoid them if its possibe to do without.

Why to run CPU on 3.3V
1. thermal resons. 5V dsPIC running close to half of its spec frequency gets noticeably warm.
2. interfaces with gps - EM-406 needs buffers when talking to PIC TTL serial port, its "high" voltage is not enough. With 3.3V PIC you can wire it directly
3. interface with RX - some modern RX'es output voltage high level is close to 2.7V, this will barely function with PIC CN inputs and will not funtion with IC inputs. But, it may be a good idea to have a buffer before RX anyway.
4. connection with SD-card - SD-cards run at 3.3V. If pic is also running on 3.3V then you can connect directly, otherwise you need to use buffers or resistor bridge.
5. Some gyros run at 3V, letting them talk to 5V adc will decrease prescision.
'Hi, MPXV5004DP zero pressure voltage is close to zero'
1V is close?
Only issue with interfacing 5v devices to 3.3v processors is where the 3.3v processor has to send data to the 5v device (e.g. with a UART interface). Otherwise, a simple resistor bridge as a voltage divider will scale your incoming voltages to the right range. Note that you can directly drive servos with 3.3v logic, even when the servo is powered at 5V. Also, most micro servos run fine from a 3.3v supply.
Hi, if I remember correctly, then airspeed is well over 100m/s before MPXV5004DP output reaches 3.3V. 100m/s is about 360km/h, so we should be safe until going over about 400km/h. F5 Open Aeroplane Electrical Motor Rechargeable Sources speed record is 420 km/h (or at least, was quite recently), we should be safe.
my both MPXV are 1V at stady state (0km/h), as confirmed in manual.
I think I've decided to use an instrumentation amplifier op-amp to interface the 5V pressure and differential pressure sensors to my 3.3V uC. I've been reading up on ADCs, precision measurements, etc ... and it seems that is the best way to go. Present the sensor with high impedance on one side, and a low impedance driver for the ADC on the other side.

* Additionally, I can adjust the gain of the op-amps as I please. For example, I would want to adjust the gain of the differential pressure sensor such that 0-100mph is full scale on the ADC. I can use a 3 or 3.3V zener diode to limit the voltage just in case.

* For the pressure sensor (altitude), since it's nominal reading is at the top end of the output range, I can use a difference amplifier to remove the DC-offset which is equivalent to the smallest output from it, and then amplify the left-over to some percentage of the ADC's full-scale input.

I believe taking the above measures would increase the quality and resolution of measurements.

Thoughts? Over-kill?
Hi, using opamps to zoom into interesting range of sensor output makes good use of them, I guess. You will get actual benefit from added complexity, so no overkill here imo. If I wouldn't be so lazy, then I would probably also shift&amplify interesting range of my mpx4115 output (currently it gives resolution of 2m per adc bit, I would not mind to get it down to 1m or even to 0.5m), but I would not bother with mpxv5004dp, its good as is with my 12-bit adc. I would not do anything with added bits.
you are correct, Krzysztof, mpxv5004dp offset is 1v. I did mean by saying that its close to zero that its, well, closer to zero than to vcc:-)
Well there's your approach, and the approach that thousands of other people take.

To start with 5V MCUs are not a viable solution. 5V MCUs also do consume more power at the same frequency than 3.3V MCUs. And this should be considered when developing an autonomous application. Not to mention that most 3.3V MCU usually do integrate more ROM/RAM/peripherals than 5V MCUs.

As shown in the following paper, interfacing 3.3V MCUs to 5V is simple, and it is commonly used:


Reply to Discussion



Season Two of the Trust Time Trial (T3) Contest 
A list of all T3 contests is here. The current round, the Vertical Horizontal one, is here

© 2020   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service