Voltage level shifting for RFM69HW (Voltage divider vs SN74LVC245 help)

Hi all,

I'm trying to wire up a RFM69HW chip to my arduino nano. The RFM69HW uses logic level of 3.3V so I need to shift the signals on the arduino output pins down from 5V to 3.3V.

Having done some research about level shifting I came across the SN74LVC245 in DIL package and it seemed to meet my needs so I ordered a few.

I've wired it up but unfortunately I can't get the RF chip to work.

I've double checked my wiring against the datasheet for the SN74LVC245 and it seems correct. DIR (Pin1) and Vcc (Pin20) are both connected to connected to 3.3V. GND (Pin10) and OE (Pin19) are both connected to GND. I've got D10, D11 and D13 from the arduino going into A6, A7 and A8 respectively on the level shifter, with the corresponding B pins going to the RFM69HW.

In order to verify the rest of the wiring/RFM69HW were OK, I replaced the level shifter with 3 pairs of voltage dividers. The RF chip worked, I then replaced the voltage dividers with a different level shifter from the pack and the RF chip stopped working again.

Any ideas on where I'm going wrong with this level shifter chip and/or why its not working for me? Have I over looked something?

Thanks in advance for your help

What are you using for SCK ? I assume this would have to be connected if it works with the voltage dividers. You wiring is correct for A->B | A= UNO , B = RF CHIP.

SCK is D13 on the arduino, it connects to A8 on the shifter and then B8 connects to SCK on the RF chip.

I’m really puzzled but your best clue is going to be the current through the voltage divider. Draw a schematic of the voltage divider and measure the voltages and calculate the current. We can compare this
with the input current specs for the 74hvc245. At the moment I don’t have a clue. I would consider trying
the 74HC4050

tavalin:
I've got D10, D11 and D13 from the arduino going into A6, A7 and A8 respectively on the level shifter, with the corresponding B pins going to the RFM69HW.

Seems u have A1 thru A5 floating.

Refer section 12 of the datasheet - Says unused inputs must be high or low and not floating.

Interesting spot asic. I'd not seen that but strangely none of the other projects I saw using the chip had wired it that way either.

For now I've bought some 74HC4050s and I'm getting more positive results, however its still not as reliable as when I used the voltage divider. Using voltage dividers on both the TX and RX nodes I overflowed a uint16 packet count without getting any failures. Now that I've changed over to the 4050s I get communication failures within 10-20 packets. I've even noticed the sketch restarting a couple of times.

Could this be due to the new current draw as I'm not using resistors anymore? Or is it likely to be something else?

Thanks

Interesting spot asic

FYI, it's AISC, not ASIC.
ASIC

Oops, sorry for the typo.

My issue with the 74HC4050s definitely seems to be power related. Running the 3.3v pin to power the RF chip AND provide the reference voltage for the 4050 makes communication intermittent.

However if I run the RF chip directly from the 3.3v pin and voltage divide the 5v pin to produce the reference for the 4050s then I get no packet loss.

I then tried creating a lower resistance voltage divider to try and enable me to power both RF and 4050 from the 5v pin but this didn't work as I'd hoped either. I guess my calculations are off both I figured if I used 33R and 68R resistors it'd give me roughly 3.3v and would be able to draw about 140ma.

Can you point me to where I'm going wrong?

Thanks

The LCX245 is 5V tolerant on its inputs, ie OE and DIR. The rest of the pins are input/output and
will NOT be 5V tolerant I believe.

You need to use the LCX244 for such level shifting.

MarkT:
The LCX245 is 5V tolerant on its inputs, ie OE and DIR. The rest of the pins are input/output and
will NOT be 5V tolerant I believe.

You need to use the LCX244 for such level shifting.

The LVC245 (which may be different to the LCX245) definitely has a max input of 5.5V.

I think what the OP is trying to say is that he thinks the RF chip is robbing power from the level shifter chip
causing errors.
@OP,
FYI, that's not a "voltage reference" for the level shifter chips. It is the POWER PIN. As already stated, the
pins are 5V tolerent. Putting 3V or 3.3V on the Power Pin CONFIGURES the OUTPUT voltage. You can think
of it as a voltage reference as long as you don't call it that because it is a Vcc (or Vdd) power pin , and is
totally different that what everyone else thinks of when you say "voltage reference" . Call it the power pin.

Since your issue seems to be power, as a test, why don't u try powering the RFM69HW from a separate 3.3V battery and do level shifting only on the Arduino outputs/RF inputs?

I am very interested to know how u fare because I have a project I have started and will also be using the RFM69W & RFM69HW - still waiting for the RF modules to arrive.

tavalin:
The LVC245 (which may be different to the LCX245) definitely has a max input of 5.5V.

Both families will run at 3.3V and tolerate 5V inputs, my point is that there
are only 2 input-only pins on a '245. However looking at another datasheet
it seems the 74LVC245 is truly tolerant of 5V on pins that are currently selected
as inputs, so it should definitely work as a level shifter. Perhaps decoupling
capacitor was omitted? Might explain it.

my point is that there are only 2 input-only pins on a '245.

74LVC245

Not sure what you mean by that since A0 -A7 are data inputs, DIR & OE-NOT are control inputs. One Vcc.