Pages: [1]   Go Down
Author Topic: Sparkfun Bluetooth mate - weird 5V to 3.3V level shift  (Read 1012 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 30
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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? smiley-confuse

(Last edit: Updated and clarified subject)


* rn42_rx.png (21.24 KB, 415x312 - viewed 35 times.)

* oscilloscopew.png (5.95 KB, 672x299 - viewed 15 times.)
« Last Edit: March 01, 2013, 02:15:59 pm by snoozerman » Logged

Norfolk UK
Offline Offline
Edison Member
*
Karma: 66
Posts: 2482
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

There is no such thing as a stupid question but there are a lot of inquisitive idiots.

Manchester (England England)
Online Online
Brattain Member
*****
Karma: 603
Posts: 33416
Solder is electric glue
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 30
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 30
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

the land of sun+snow
Offline Offline
Faraday Member
**
Karma: 159
Posts: 2895
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Pages: [1]   Go Up
Jump to: