On Thu, 15 Mar 2001 22:52:47 +1100, you wrote:
>Mike, I have a question, hope you can help! :o)
>I am just finishing off a board design using a
>16F876 talking to 24LC256 eeprom.
>I am using the PIC MSSP outputs for clk and data,
>do these go open drain? I have no direct experience of using the on-board I2C module, but the
datasheet shows that it uses the pins as open-drain to be able to
implement the full spec for the devices that need it, so you'd need
>Must they have pullup
>resistors? I wanted to keep the option of using
>bit-banging I2C (not the MSSP module) and in this
>mode the data and clk will be normal PIC output
If you're bit-banging and driving SCL fully, you don't need the
pullup. Yuu always need an SDA pullup.
>So do I read you right that I need 2 pullup
>resistors, AND also 2 pass resistors to stop
>problems when the PIC pins go high and the eeprom
>pins may hold low??
No - you never need series resistors. If you have slave devices which
can stretch the clock, you use a pullup and drive it open-drain.
> I really don't want to switch
>the PIC pins from outputs to inputs at high
>frequencies. I prefer to leave them always as
>outputs, at least the clk pin.
You will always have to switch SDA in/out to fake an open-drain
output. Unless you implement clock-stretching you can keep SCL as an
output all the time.
To summarise, If you're just talking to an eeprom, you don't need an
SCL pullup if bit-bashing, but would if using the MSSP. I'd allow for
an SCL pullup on the PCB - it won't hurt if you don't use it but would
be a pain to add later if you decided to use the MSSP!
http://www.piclist.com hint: The PICList is archived three different
ways. See http://www.piclist.com/#archives for details.
In reply to: <3AB0AD0F.5A9D@ezy.net.au>
See also: www.piclist.com/techref/i2cs.htm?key=i2c
You must be a member of the
piclist mailing list
(not only a www.piclist.com member) to post to the