There was some bug related to pull, but I think in MicroPython. I know this one because there are only 2 bits per pin in config registers, PU and PD, 4 combinations.
But given the generated signals, if stopping the scan at 0x1F, then it might be this line of the example being modified:
for (int addr = 0; addr < (1 << 7); ++addr) {
Better check if that loops works on the full range, maybe I will try later.
BTW Interestingly, by default in this hardware block, I2C clock is adaptive to delays generated by pull-ups, with weak ones, the clock stretches (decrease frequency).
But given the generated signals, if stopping the scan at 0x1F, then it might be this line of the example being modified:
for (int addr = 0; addr < (1 << 7); ++addr) {
Better check if that loops works on the full range, maybe I will try later.
BTW Interestingly, by default in this hardware block, I2C clock is adaptive to delays generated by pull-ups, with weak ones, the clock stretches (decrease frequency).
Statistics: Posted by gmx — Sat Mar 29, 2025 4:31 pm