Pressure Transducer Types and Powering Them

@ Gene @ Dave McLaughlin

Hey again!

I’ve got a Cerberus and I’ve been re-reading some of the things you guys said trying to figure out exactly what I’ll be doing once I get my professor to order other parts.

I’ve changed my choice in pressure transducer since I last posted because the details of this one make it seem like it could be exposed directly to sea-water and it would be fine. I hope that’s right.

I have also been looking at the pin layout for the Cerberus board here,

It looks like if I hook up a ribbon cable to either socket 2, 3 and use a breakout board to expose 4 pins 3, 4 or 5 I could hook up a pressure transducer.

Gene said in a previous post that the maximum voltage my ADC (the Cerberus) can handle is the Vref. I read in the information to do with the Cerberus that the Cerberus is only supposed to be fed 3.3 V and is 5 V tolerant on all pins except the DAC pins.

  1. Is Vref for the ADC in the Cerberus 3.3 V?

  2. Of the two styles of output for the Dwyer Pressure transducer linked, which would be more convenient to hook up to the Cerberus? (Voltage out or current out)

  3. Could I use the +5V (pin 1) and GND (pin 10) from an available socket to power the pressure transducer?

4 and 5. If I can power the pressure transducer with the Cerberus board, the specification sheet says the output is 0.5 V to 4.5 V. Wouldn’t that be bad since the ADC pin is only supposed to get 3.3 V and is only 5 V tolerant? Could I just drop a resistor in series with it to alleviate some of the voltage?

  1. It’s been mentioned by Gene that 4 to 20 mA style Pressure Transducer outputs 4 mA at zero PSI and 20 mA at max PSI regardless of the actual excitation voltage to the pressure transducer (so long as the excitation voltage falls within the prescribed window.) Do I understand this correctly?

For example: zero PSI with 9 V excitation would read 4 mA. zero PSI with 30 V excitation would read 4 mA.

  1. All depends on what power you have available to power the sensor. The current type needs a higher voltage.

  2. With the voltage output type you would indeed be able to supply from the 5V

  3. A resistor in series will only limit the current into the ADC. You need to use a potential divider on the input to make sure you don’t exceed the

Remember to account for the resistance of the ADC input.

If you happen to have an Android phone, this little app is very handy for electronics calculations etc. It has the one above and can include the ADC resistance too.

  1. Correct. Output is CONSTANT CURRENT regardless of the supply voltage. It’s disadvantage to you is the higher power supply voltage.

As you will have the Cerberus and the transducer very close to each other and the fact you only have 5V available, I would go with the voltage output type and use a voltage divider to scale to the ADC input.

Thanks for helping out!

  1. Where/how can I find out what Vref is for the Cerberus ADC?

  2. Sweet!

  3. Would it break the ADC or Cerberus to connect 4.5 volts?

  4. I think I may have explained my question incorrectly. Please see the attached file for clarity.

  5. In reference to 5, would the attached wiring diagram be sufficient to power and read the pressure transducer?

I was thinking that I’d arrange R1 and R2 such that the voltage seen by pin 3 would be limited to a maximum voltage of Vref assuming that Vref is lower than the output range of the pressure transducer which is 0.5 V to 4.5 V.

VRef is 3v3 maximum on Cerberus. Make sure your voltage divider results in 3v3 maximum.

4: YES do not do that. Lets be really clear about ADC and “5v tolerant” pins. If you are using digital input, a pin can be tolerant to 5v input. If you are using the analog input, then the pin is NOT 5v tolerant. 5v logic level on digital input is fine, 5v (or even 4.5v) on analog input is NOT fine.

In general, what you’re doing with the diagram looks fine. The area you need to make sure about is whether your sensor needs a large amount of current that will exceed the power supply on the 5v line. The datasheet you refer to for your sensor doesn’t talk about current input requirements in the 5v (nominal) input mode, so you may have to monitor that.

@ Dave McLaughlin - I sat down with Kirchhoff and I see what you’re talking about. I’ve determined that R2 must be 2.7485 times larger than R1 to prevent the ADC pin from being exposed to a voltage over 3.3 V.

@ Brett - Thanks so much!

Where do I find the max allowable current to the ADC?

Where do I find the resistance of the ADC?

Where can I find the maximum current draw allowed by the Cerberus?

current capability is irrelevant. It will only draw what it needs, which will be minimal

Resistance of the ADC is a function of the chip - the only place that this will be documented is in the datasheet for the processor in question, STM32F4 family.

Max current is a function of the power path in your device. How are you supplying power, what is it’s capability? What other devices do you have connected? Typical LDO VReg’s that are in use across the modern GHI device families are limited to 800mA to 1A, if you have capacity on the inbound side to provide it.

I am currently planning on wiring it exactly as shown in the diagram I posted earlier.

The whole setup is as follows

1x Cerberus mainboard (idle consumption TBA)
1x Relay X1 module (3.3V consumption is 0mA, 5V consumption is 20mA)
2x Button Module (3.3V consumption is 10mA, 5V consumption is 0mA)
1x 16x2 Character Display (3.3V consumption is 0mA, 5V consumption is 30mA)
1x TPT R01 Pressure Transducer (Power consumption not listed)
1x UC Battery 4xAA Module (3.3V supply is 800mA, 5V supply is 800mA)

Solenoid Valve, 33.2 Watts, 24 Volts ~1.383 A

I will investigate the STM32F4 family of ADCs to find their resistance. Thank you.

“Typical LDO VReg’s…” What’s an LDO VReg? I would assume it’s the Voltage Regulator of LDO, what’s LDO?

I gather I should not worry about the current draw of the pressure transducer.

I assume that I should be able to find the current input limit of the STM32F4 family of ADC the same place I find its resistance.

My chip says “ARM Z, STM32F405, RGT6, GH236 V6, CHN GH 249” and the corresponding datasheet is here

P130 has table 67 which is ADC Characteristics.
“Rain” (external input impedance) has 50 kOhm
"Radc" (sampling switch resistance) has 6 kOhm
P 131 has a formula calculating “Rain”

I’m not sure what all this means. I think the diagram on P 131 means that the resistance of the ADC is “Radc” and that the maximum resistance over which the input voltage can be dropped “Rain.”

Can anyone confirm?

For example, the resistance of the ADC is 6 kOhm and the maximum resistance I can drop 3.6VDC is 50 kOhm in the table but variable if using the equation on page 131.

I would try to calculate “Rain” using their formula but it refers to sampling periods, K, which is defined by ADC_SMPR1, the ADC sampling register, but I cannot find it anywhere else in the whole datasheet. Just looking at the formula though, I can see that as K increases the overall value of “Rain” will increase and if they set a max I’m sure it’s because they know what the maximum number of samples is. I guess the moral of that story is to aim for 50 kOhm then?

It’s a Low DropOut version. A linear voltage regulator requires a supply voltage that is higher than the output by some minimum. Typical values are in the 1.5V range, LDO values can be much lower, lik 0.6 or 0.3.

I’m sorry to see that this thread has fizzled, since I’m in a similar situation. The advantage for me is that my ADC input is based on a voltage divider already. I looked at the datasheet as well, and can only add that the input is listed as impedance (not resistance) because you’re looking at a non-DC signal, so things like capacitance and inductance come in to play, as well as settling time.

It’s not really that simple, because you’re dealing with a time-varying signal. That means the capacitance and inductance of the circuit are non-trivial and will cause the signal to “ring” or oscillate as it changes. The reason that the sample clocks (K) are important is due to the settling time of the oscillation: if you try and read the value too soon, it will probably be over/under the “infinitely long time” value. Increasing the number of cycles gives the signal more time to settle before reading. The interface for that is in the reference manual:

As far as working with the input impedance, I’m a bit stumped. The solution proposed by a more experienced coworker was to just treat the ADC as a simple first-order circuit (i.e. only resistors), use the max value (50k), use that model to calculate the value of any needed components, and then test empirically.

At my school there is a very experienced electronics wizard who teaches labs about electronics.

He was a big help.

He confirmed my idea to make a voltage divider and then helped me build it with surface resistors on a spare breakout module I have. We prepared for a maximum of 5V from my pressure transducer in the case that something goes wrong with it.

My voltage divider was a 10kOHM resistor in series with a 20kOHM resistor and I took the voltage out of the middle and put it into the ADC of the Cerberus.

Also, in parallel with the 20kOHM resistor we placed a small capacitor. He said it would smooth out the signal.

To prevent issues with feedback on the board I tried ripping pins out of one breakout board. That didn’t work so well. So I just cut some wires so that only pins 1, 2, 3 and 10 were connected to the Cerberus.