Lolin/wemos & i2C #11998
Replies: 2 comments 4 replies
-
On the ESP8266 (D1 Mini v4.0.0), IO0 and IO2 are bootstrapping pins. They have to be pulled high to boot. Those 12k resistors aren't I2C pull-ups. Judging by the schematics, IO4/IO5 are missing onboard I2C pull-ups. I assume this was on purpose, as most I2C peripherals have their own pull-ups on board and by not having them on the D1 mini means the pins can be used as plain old GPIO for any purpose. The pin order on the Lolin I2C connector is also different from Stemma/QT.
Same applies for the other boards with onboard I2C socket, D1 mini pro, D32 pro, S2 pico etc. They all have the same I2C socket pin order. S2 pico does have onboard I2C pull-ups, as there is an OLED onboard on the bus. The same bus exposed by the Lolin I2C connector. On the C3 pico, you're right. The schematics show 10k pull-ups on IO8/IO2, but the I2C connector uses IO8/IO10. |
Beta Was this translation helpful? Give feedback.
-
I guess that this is for the convenience of people using breakout boards. If one designs the an own board with various I2C devices, there would most probably only one pair of pull.up resistors on the board. With 10k pull-up at boards, you can connects quite a few of them in parallel before the impedance get's too low. The ESP32 can sink up to 40mA, so it could drive ~100 boards with 10k pull-ups. Not having pull-up resistors at the MCU board is good as well, because these would impede using the pins for other purposes. Unless the pull-up can be switched off, like at the PYBD boards. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
I'm having trouble understanding the placement of pull up resistors on the D1 mini & the C3 pico. Both boards bring out the i2c bus on a dedicated 4 pin socket which would be super convenient if only it had pull resistors.
The D1 mini, https://www.wemos.cc/en/latest/_static/files/sch_d1_mini_v4.0.0.pdf, has the i2c socket on io4 & i05 but the likely pullups are on io0 & io2. The C3 pico, https://www.wemos.cc/en/latest/_static/files/sch_c3_pico_v1.0.0.pdf, has the i2c socket on io8 & io10. There is a pullup for SDA on io8 but the likely SCL pullup is on io2 not i010.
Since the i2c socket is hardwired to the io pins SCL & SDA can't be re-assigned & I'm left scratching my head as to why the i2c pullups seem to be on the wrong pins?
Beta Was this translation helpful? Give feedback.
All reactions