Go Down

Topic: Sparkfun Bluetooth mate - weird 5V to 3.3V level shift (Read 1 time) previous topic - next topic

Mar 01, 2013, 07:13 pm Last Edit: Mar 01, 2013, 08:15 pm by snoozerman Reason: 1
Hi,
The Roving Networks RN42 is a 3.3V device so some level shifting is needed. I will design my own gadget with the RN42 so I looked how it was done on Sparkfun Bluetooth mate device. But it's quite strange when you look at the Sparkfun schematic, see the pdf http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Wireless/Bluetooth/BlueSMiRF-Gold-ChipAnt-v1_rotat2.pdf. I would expect a voltage divider at the rx pin, however, there is only a 10 kOhm resistance in serie but *no* voltage divider!

I connected my Arduino (5V version) to the Sparkfun module I have. Then, measured pin 14 on the RN42 (UART RX) with a oscillosopce and there certainly is 5V and not 3.3V  :smiley-eek:.

According the the RN42 datasheet http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Wireless/Bluetooth/Bluetooth-RN-42-DS.pdf max pin voltage should be VDD+0,4 i.e. 3.7 volt.

Is that perfectly ok anyway? Do I not need the voltage divider? Or is just bad design by Sparkfun? :~

(Last edit: Updated and clarified subject)

Riva

The pin names are probably for what pin they connect to on the arduino and not the actual pin function. TX_5V is the arduino TX pin and RX_5V is the arduino RX pin They are using a MOSFET on TX line to reduce the arduino 5V to 3.3V into the BT module but the RX pin level (output from BT module) does not need to to alter level. The 10K is probably just to limit current should RX be connected incorrectly.

Grumpy_Mike

Quote
Do I not need the voltage divider? Or is just bad design by Sparkfun?

Using a BSS130 is a very good design from Sparkfun, better than a voltage divider.

The bluetooth mate RX 5V is supposed to be connected to the Arduino TX pin. And that is strange (since the level will be 3.3V rather than 5V), isn't it?
Actually, Roving Networks themselves says;
Quote
When using a 5.0Vdc Input, PIO's require a voltage divider. A good choice is 10K ohm series with 20K to Ground. PIO's are 0-3.3Vdc not 5 volt tolerant.


Or am I missunderstanding the schematics for the Sparkfun bluetooth mate?

This is what is stated on the Sparkfun page https://www.sparkfun.com/products/10269;

Quote
The remote unit can be powered from 3.3V up to 6V for easy battery attachment. All signal pins on the remote unit are 3V-6V tolerant. No level shifting is required. Do not attach this device directly to a serial port. You will need an RS232 to TTL converter circuit if you need to attach this to a computer.


From that, I concluded I should be able to use it with my 5V Arduino only wiring it up to gnd, 5V, rx and tx pins. I have used one of these SF modules on my desk for a while. However just as I started looking in to this matter, the thing actually broke. But that might just be due to me touching some wires, creating sparks or something  :smiley-roll: - not very unlikely I guess.

I just found it hard to believe that Sparkfun designers would have missed that part. It is a very popular device as it seems so it just can't be that bad - so I thought.

oric_dan

The fact that you broke it could be due to several reasons, all guesswork. The modules
may be highly ESD sensitive, you may gave accidentally connected 5V to the Vcc pin, or
applied Vcc backwards, or something else entirely. ????

Also, sf indicates the I/O pins are 5V tolerant, but that doesn't seem to jibe with your
comment in reply #3. So, who knows? I would tend to believe what the manufacturer
says. The best I can say is, the RX wiring in the sf schematic, with the 10K series-R,
indicates sf either believes the RX pin really is 5V tolerant, or else they were lucky and
the 10K actually saves the RX pin.

Also, the use of the level-shifter in the TX line means the 3.3V output will always be
shifted up to 5V, so you can connect it to any 5V processor. Arduinos seem to be ok
with 3.3V into the 5V RX pin, but not all processors are. Eg, on PIC controllers, I have to
use additional pullup.

Go Up