cancel
Showing results for 
Search instead for 
Did you mean: 

How to apply bitbang on i2c lines to 11 bit shift register in code ?

ACart.1
Associate III

I am using vcsel driver that i thought uses i2c but it uses two wire serial interface with 11 bit shift registor 3 for address less than the usual 7 bit address and I heard I could bitbang but I couldn't find it possible anywhere please look at datasheet incase I missed a solution. I also have other i2c devices connected I don't have issue with them. the datasheet on https://www.ti.com/lit/ds/symlink/onet4291va.pdf?HQS=dis-mous-null-mousermode-dsf-pf-null-wwe&ts=1666295090566&ref_url=https%253A%252F%252Fwww.mouser.com%252F. Thank you

6 REPLIES 6
ACart.1
Associate III

I need real help I just need few examples or fundemtals that I can go with.

You're driving pins up and down, like you would with an LED, in a fashion mapped out in the data sheet.

Will I2C and non-I2C device play well on the bus together? Hard to say, assume you've got a unique combination of hardware, and nobody on Google/GitHub has prebuilt the answer. You're going to have to experiment.

Perhaps there are people on the TI forums with more direct experience of the behaviour of VCSEL driver ICs?

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
S.Ma
Principal

Asking 3 times thw same question won't bring 3 times more answers....

eewiz
Associate III

Your vcsel driver chip has no chip select pin and also does not pay any attention to the I2C defined 7- or 10-bit addressing scheme.

Your chip has a dumb shift register that co-opts I2Cs Start and Stop mechanism apparently due to not having a pin available for chip select.

Your chip requires that it is the only thing in the world that is attached to your I2C bus.

This chip can work on your micro's hardware I2C with no bit banging but it must be the only chip on the I2C bus.

Your chip has a dumb shift register.

It does not care how many bits you clock through it.

Send it a Start then a 7-bit address (any number from 0 to 127 will do) then 2 bytes of data.

Just make sure that the 11 bits that matter to you are the last 11 bits sent before your software sends a stop.

The Stop bit which will clock those last 11 bits sent into your chip's register.

All for now

ACart.1
Associate III

thank you very much