Differing voltages serial comms pins between PIC MCU and Zigbee module

Status
Not open for further replies.

TokTok12

Junior Member level 2
Joined
May 6, 2014
Messages
20
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Visit site
Activity points
281
Hi all,

As per my schematic below and my breadboard set up I’m already executing serial communications successfully between the PIC18F2580 and the ETRX357HR Zigbee module but I’m being advised by my board house there is the potential for serial communication issues to arise due to the differing voltages powering the PIC18F2580 and the ETRX357HR Zigbee module.

Here's my schematic:

Their advice is based on the absolute maximum ratings of the Zigbee module whereby in the Zigbee module manual it is stated:
Absolute Maximum Ratings:
Inputs: -0.3V to Vcc + 0.3V

Essentially this means the voltage on any input pin should not be above 3.6V in this design, since it is being powered from 3.3V. This is violated on Pin 17, in the PIC18F2580 Tx to Zigbee module Rx. Having looked around for a solution I believe I can improve the situation by adding something like a 10k resistor.

This will limit the current that will flow through the Zigbee module's input pin protection diode, but since a max current rating for it is not given, you just have to guess at the resistor value.

Does anyone see a problem with having a 10k resistor between the serial communications lines? If so any ideas for a better solution?

Here are the respective datasheets:
Zigbee module - **broken link removed**
PIC18F2580 - http://ww1.microchip.com/downloads/en/DeviceDoc/39637b.pdf

Thanks,
TokTok.
 

Hi,
A 10k resistorcan be sufficient.
Better is to add a 20k resistor to Gnd.
This forms a voltage divider. 5V in 3.3V out.

The 10k in series combined with the traces' capacitance and the receiver input capacitance form a lowpass filter.
So with the 20k the resulting impedance is 6k67. This give a higher cutoff frequency . Faster.

You can use lower value resistors. 1k and 2k for example.


Another way is to use a buffer with 5v compatible inputs while supplied with 3v3.

Hope this helps

Klaus
 

@Klaus:

Thanks for the reply. I'll go for the voltage divider approach similar to the very 1st diagram on this link - https://learn.sparkfun.com/tutorials/voltage-dividers/all.

Essentially I'll test using the values of R1 and R2 as 1700ohms and 3300ohms respectively. Ideally my understanding is that R2 should be double of R1.

These should give me 3.3V as my Vout (with Vin as 5) which should be OK drive the Rx pin of my zigbee module from the Tx pin of my PIC18F2580.

I'll look into the voltage level translator (level shifter) option.

Regards,
ToKTok
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…