'How connect 5V I2C master with 3.3V slave? [Ramble'
Richard G. Thomas wrote:
> But the 84 shouldn't be driving the lines high.
Absolutely, 100% correct there. I like that approach.
>> Zener is just to protect 3.3V slave if PIC puts 5V on SDA or SCL
>> line, which happens when PIC is misconfigured or during power-up.
Just to review those situations: During power-up, all I/O are inputs,
so will *not* be sourcing current. On initialisation, you set the
corresponding port bits to zero *first*, then use the TRIS instruction
to control the pull-downs. Just remember *never* to use read-modify-
write instructions on the port.
Failure to follow these rules does then count as "misconfiguration"
but does it matter? The only thing that matters is damage to chips in
which respect you must ask whether a} the 3.3V chip will be harmed by
excess voltage and 2} the PIC could source enough current to cause any
such damage. If so on both counts, you may need limiting diodes of some
I am inclined to suggest however that if you misconfigure it, it won't
actually work. Once you accept this fact, it makes little sense to try
and produce hardware to correct magically for software that can't work.
> I am inclined to suggest however that if you misconfigure it, it won't
>actually work. Once you accept this fact, it makes little sense to try
>and produce hardware to correct magically for software that can't work.
I think the aim is to produce hardware that won't be damaged when (not if
:-)) the software does something unexpected.
What is required is "fail safe" - not "fail working".
After the failure, when normal service is restored it will be nice if normal
service is in fact restored.
Software which runs away into the weeds and does unconscionable things is
Software that damages the hardware when it runs off is worse.
Software that damages the customers is worse still.
More... (looser matching)
- Last day of these posts
- In 2000
, 2001 only
- New search...