Go Down

Topic: 5v to 3.3v level shifter IC in DIP format (Read 40459 times) previous topic - next topic

raschemmel

Very informative. (and comprehensive)
Thanks !
I was actually thinking of using this method (see attached).
Do you think I should use the 74LVC245 instead ?

hydrocontrol

Quote
HC series is not level shifting, they have full protection diodes on the
inputs - trying to feed them 5V signals whilst powered from 3.3V will pull the 3.3V
rail up to 4.5V or so and probably damage something...
Even though the post is old, I want to clarify this information. I believe it is wrong or only partially correct.

From the ST Microelectronics M74HC4050 datasheet, July 2001

Quote
Input protection circuits are different from those of
the high speed CMOS IC's.
The   Vcc   side   diodes   are   designed   to   allow
logic-level conversion from high-level voltages (up
to 13V) to low level voltages.
so it IS level shifting.

Maybe other 4050 manufacturers have differenct specs?

pmcamach

Can the 3.3v output be controlled by the microprocessor or is it always on? I need it to control a relay. Thanks!

hydrocontrol

Can the 3.3v output be controlled by the microprocessor or is it always on? I need it to control a relay. Thanks!
The arduino board has a 3.3V voltage regulator on board. The pin is the output of this voltage regulator. Therefore this pin can not be controlled by the microprocessor.

However I doubt you need 3.3V to control a mechanical relay. What relay are you talking about? Please post a link to the technical specification of your relay.
I am speculating here that you actually want to control a SSR relay. Here's a random SSR datasheet:
http://cdn-reichelt.de/documents/datenblatt/C300/WGA%205-6D25.pdf

The relevant info:
Quote
Control Voltage Range 3 - 32 DC
Control Current Max. 34 mA
Input Resistance 900 Ohm
This means ANY voltage between 3 and 32 V will be okay to control the SSR.

With 5V (output voltage of an Output pin), the SSR will draw

I = U/R
  = 5V/900 Ohm
  = 5.6 mA

The Arduino can supply max 200mA alltogether, and max. 20mA per Pin (if I remember the datasheet correctly). So as long as you don't have other big loads on the arduino, you can connect this kind of SSR directly.

You need a microprocessor output pin to control your relay. More information:

https://www.arduino.cc/en/Tutorial/DigitalPins

Thomas

hydrocontrol

Here's some more information on level shifters from another conversation.
Quote
Project is based on an arduino mega, which has to run at 16Mhz, therefore 5V power supply is mandatory. At the same time, I want to use one of the 2.4 inch ILI9341 SPI displays, which come with a built in SD card reader, which is nice.
These displays have a 5V to 3.3V power converter on board. However they are very cheaply made, and the signal level shifting is done with in series resistors. (implicitly relying on the built in clamping diodes of the display and the SD to do the level shifting)
This didn't work on some SD cards for me. I had sporadic errors, and downright failing SD cards.

With a level shifter, everything is fine now. The in series resistor on the display PCB doesn't harm.

The LCD modules and SD modules from adafruit, sparkfun etc. all have level shifters on their PCB (either with the 4050 IC, or discrete with transistors), so I believe this is a tried and tested method to connect 3.3V peripheral equipment to 5V microcontrollers.
Quote
That certainly is the most reliable method, particularly if you are going to use the maximum speed with hardware SPI.  For less than a Megahertz, the diodes and resistors (not resistive dividers) should work.  And these "super diode" level shifters:
http://www.ebay.com/itm/5PCS-5V-3V-2-CH-I2C-IIC-Logic-Level-Converter-Module-Bi-Directional-for-Arduino-/401234225236

pmcamach

The arduino board has a 3.3V voltage regulator on board. The pin is the output of this voltage regulator. Therefore this pin can not be controlled by the microprocessor.

However I doubt you need 3.3V to control a mechanical relay. What relay are you talking about? Please post a link to the technical specification of your relay.
I am speculating here that you actually want to control a SSR relay. Here's a random SSR datasheet:
http://cdn-reichelt.de/documents/datenblatt/C300/WGA%205-6D25.pdf

The relevant info:This means ANY voltage between 3 and 32 V will be okay to control the SSR.

With 5V (output voltage of an Output pin), the SSR will draw

I = U/R
  = 5V/900 Ohm
  = 5.6 mA

The Arduino can supply max 200mA alltogether, and max. 20mA per Pin (if I remember the datasheet correctly). So as long as you don't have other big loads on the arduino, you can connect this kind of SSR directly.

You need a microprocessor output pin to control your relay. More information:

https://www.arduino.cc/en/Tutorial/DigitalPins

Thomas
Hi Thomas,

Thank you for your reply, I apologize I was not very clear in my question.


What I am trying to do is heat up a small, enclosed environment with a small heater. I plan on connecting a temperature sensor to the arduino (using the 5v out), but once the temperature reaches a certain point, I need the arduino to send a signal to the relay (which is where I would think it would connect to the 3.3v), which will allow power to be sent through to the heater and it will turn on.

Here are the specifications for the relay (PN: R10S-E2Y1-J1.0K): http://www.te.com/commerce/DocumentDelivery/DDEController?Action=srchrtrv&DocNm=1308242_R10&DocType=DS&DocLang=English

It looks like the last link you referred me to will lead me in the right direction, but please let me know if you have any other insight or information that may help. Thank you again!

Paige

hydrocontrol

#21
Jun 29, 2017, 10:55 am Last Edit: Jun 29, 2017, 11:06 am by hydrocontrol
Quote
I plan on connecting a temperature sensor to the arduino (using the 5v out)
The 5V out will only provide the power for your sensor. Depending on the type of sensor, there are different ways in which the sensor will transmit the temperature to the arduino.

Quote
I need the arduino to send a signal to the relay (which is where I would think it would connect to the 3.3v)
I (and also the contributors in the cross post) have explained in the previous post, why this will not work. Read the part with arduino output pins again.




R10S-E2Y1-J1.0K

The "E2Y1" specifies 1 pole.

the "J1.0K" part specifies the coil.

From the datasheet:

coil operating current: 3.2 mA
coil resistance: 1000 Ohm

U = R * I
= 3.2mA * 1000 Ohm
= 3.2 V

P = U * I
= 3.2V * 3.2mA
= 10 mW

There is no maximum operating current specified, and the datasheet footnote says for this type:
1) Suggested for 5VDC operation

So you can operate it directly from any arduino output pin (these will provide 5V).
You will also need a free wheeling diode to protect the arduino pin. https://en.wikipedia.org/wiki/Flyback_diode

If you want to be on the safe side, you can add a series resistor to bring down the coil voltage to 3.2V.
I'll leave it to you to do the math.

Thomas

pjaj

It may be worth taking a look at another member of the 74xxx245 family, the 74LVC8T245. I've not used it myself, but the data sheet
http://www.ti.com/lit/ds/symlink/sn74lvc8t245.pdf
shows that it has two different Vcc inputs with a common ground. either of which can be as low as 1.8V, the other as high as 5.5V. It is made in a 24 pin DIL package. It is bidirectional. It is available on Ebay as a mounted smd component on a small board.

Go Up