PDA

View Full Version : I2C With 3,3 Volt



savnik
- 7th February 2009, 18:15
All my programms with I2C are work.
I use 10K from 5v to pin of pic16f628a.
Now i want to control with i2c (pic16f628a) one NS73M which work at 3,3V.
May i have any problem if i use 10K from 5V to pin from NS73M.

aratti
- 7th February 2009, 19:00
I would suggest a 1/3 devider, see schematic.

Al.

savnik
- 7th February 2009, 19:20
Maybe you don't understand well because my english is not good.
I want to control the NS73M with 16f628a with I2C , but NS73M works at 3,3 volts.

mister_e
- 7th February 2009, 19:36
Set your pull-up to 3.3v and see what happen on the SCL/SDA line with a scope and a I2CREAD/WRITE tight loop.

I suspect the I2CREAD/WRITE would play with TRIS... worth to have a look at this.

Your device is not 5 volt tolerant (well as per the datasheet) so I would say you will have problem with direct connection. Arrati's suggestion might work, but I would be concerned about the shape of the data though AND I2C line work usually @4.7K or lower pull-up value...

There's still some I2C level shifter available. Philips use to do some. PCA9512A, P82B96 spring to mind now.

If at all possible, run the whole thing at 3.3 volt.

Acetronics2
- 7th February 2009, 19:46
All my programms with I2C are work.
I use 10K from 5v to pin of pic16f628a.
Now i want to control with i2c (pic16f628a) one NS73M which work at 3,3V.
May i have any problem if i use 10K from 5V to pin from NS73M.

Hi, Savnik

Mikroelektronika MMC/SD card module works like that : Pic with 5 volts and card with 3v3 ...
Everything fine.

But just verify you use TTL inputs of the PIC and not Schmitt trigger ones ...

or use translator chips ...

Alain

savnik
- 7th February 2009, 20:08
Always i use on my projects with I2C , 1OK resistor without problem.
Now i am afraid for the NS73M , because work at 3,3 volt.
I have make the PCB and tomorrow maybe i will test.
Maybe i Set pull-up to 3.3v to test , or i run all at 3,3 volt (and LCD).
Have any problem with 16f628a with 3,3 volt;

SmugWimp
- 8th February 2009, 03:50
You might not be able to get the LCD to work on 3.3v, but you can always put a regulator or resistors in to drop voltage for the NS73M...

I am having my own problems with this situation (http://www.picbasic.co.uk/forum/showthread.php?p=69890).

I hope you are successful, and I hope you share ;)

Cheers!

SmugWimp

nomad
- 11th February 2009, 05:57
curious, but doesn't PBP run the clock and data as open collector? (playing with tris).
the 628a doesn't have i2c hardware so would have to be done by PBP.
as I've seen the define to make the clock bipolar I've wondered about that.
and reading the lib seen :

i2chigh
ifndef I2C_INTERNAL
bsf FSR, 7 ; 1 Point to TRIS
endif
iorwf INDF, F ; 1 Set high (input)
or similar all about the i2c routines.

if so, then pullups to 3.3v appears to be all that's needed.?
(assuming the pic recognises 3.3v as a high)

maye that's why Acetronics said
But just verify you use TTL inputs of the PIC and not Schmitt trigger ones ...

Something I'm missing?

BigWumpus
- 11th February 2009, 22:53
You need a bidirektional Level-shifter !

Look here:
http://www.standardics.philips.com/support/documents/i2c/pdf/an97055.pdf
http://www.semiconductors.philips.com/markets/mms/protocols/i2c/facts/#levelshifting

You need only 2 little MOSFETs!

savnik
- 12th February 2009, 07:04
Yesterday i test it and all is ok.
I use 5volt for 16f628a + LCD and 3,3 volt for NS73M
My problem with NS73M is that have spurius near the local frequency.
Thanks all for help.