Manually driving pins which are also used for I2C | Cypress Semiconductor
Manually driving pins which are also used for I2C
A device I am working requires that I can manually drive the same 2 lines that are connected to an I2C Fixed Function Block.
I have a fixed function I2C Slave block connected to a 2-pin Bidirectional 'Pins' component.
The device it is connected to sends a message by I2C then goes into a passive state, tri-states it's two lines and waits for a specific signal shape on the 2 lines.
I have attached a picture of the scehmatic from Psoc Creator.
In order to communicate with this device, my PSoC 5 design has the I2C Slave block as described above, and when the special message is received I want to be able to drive the 2 lines which are used for SCL and SDA in a specific sequence.
I see that there are APIs generated for the 2 pins, and for the pin block, but when I use the generated API's I do not see any output on the pins - they seem to be constantly driven high, even if I do: RPC_PINS_Write(0x00);
I tried connecting a MUX but the fitter gave an error saying there were multiple drivers on the line. Probably becuase the pins are bi-directional.
Is there anyway to drive the SCL and SDA lines directly? Can I change my schematic in some way that the I2C will work, then I can disable it and drive the lines directly?