Page 1 of 1

I2C slave without pullups

Posted: Sun Jun 10, 2018 6:51 am
by OutoftheBOTS_
I am looking at wanting to use the OpenMV cam as a I2C slave for a Lego EV3 brick. The Lego EV3 brick requires 82K pullups on I2C devices so I want to be able to run the OpenMV cam in I2C slave mode but without using the internal pullups and I will put 82K pullups on the cable to the EV3.

The OpenMV cam runs a STM32 chip and uses the pyb Micopython port.

Re: I2C slave without pullups

Posted: Mon Jun 11, 2018 5:45 am
by pythoncoder
This is really a question about OpenMV hardware. If the pullups are implemented by means of physical resistors connected to 3.3V (as on the Pyboard) the only solution is to remove them. But it's possible that they have implemented a means of switching them off. You'd need to consult a schematic to find out.

However I'd be surprised if any action is actually necessary. Having pullups of less than 82KΩ is unlikely to pose a problem unless the Lego brick has extraordinarily weak drivers.

Re: I2C slave without pullups

Posted: Mon Jun 11, 2018 10:01 am
by OutoftheBOTS_
However I'd be surprised if any action is actually necessary. Having pullups of less than 82KΩ is unlikely to pose a problem unless the Lego brick has extraordinarily weak drivers.
Yes it is necessary with Lego Brick and is a known issue for anyone that has ever tried to interface with Lego brick. Lego tries as hard as possible to to be compatible with anything else so to make it very hard to non genuine hardware with Lego.

The OpenMV cam doesn't have any external pullups on the PCB but I assumed the pullups are internal on the STM32F765VI chip???

Re: I2C slave without pullups

Posted: Mon Jun 11, 2018 10:20 am
by OutoftheBOTS_
OK I think the OpenMV may not have any pullups on it at all and your suppose to put external ones on. I put my scope on the I2C pins and ran a script to start up the I2C bus and the pins stayed low the whole time so I assume this means there isn't any pullups on it.