Q:What pins should be used when interfacing a PIC or SX to IIC devices? Would open-drain pin RA4 would be the pin to use for SDA on an PIC xF84 then to make life a little easier ?
A: from Ken Webster
Perhaps. I actually found the ordinary pins quite easy to use on a 16C74, particularly because it is ok to use BCF and BSF directly on the TRISA, TRISB, or TRISC registers (thus you needn't use a mirror register like you do with PORTA, PORTB, or PORTC with read-modify-write instructions).For example, with an open-drain pin:
BSF PORTA_MIRROR,2 MOVF PORTA_MIRROR,W MOVWF PORTAWith an ordinary pin:
Initialization:CLRF PORTAToggling a pin high:
BSF STATUS,RP0 BSF TRISA,2 BCF STATUS,RP0A shortcut I often used was to point FSR at TRISA at the start of a subroutine that talks to the EEPROM. Then, in the body of ths subroutine, I could use the following (instead of switching STATUS,RP0 back and forth):
BSF INDF,2So, actually, I think it is easier to not use an open-drain pin as long as you can use 2 pins on the same port and point FSR to that port. For the 17C756 I chose to use the open-drain pins only because they were not useful for anything else and I was short on pins.