I may have bricked I2C(2)
I may have bricked I2C(2)
Hi all,
I was previously able to communicate with a GY-521 breakout board for the MPU-6050 gyro/accelerometer using I2C on pins Y9 and Y10. I suddenly find myself unable to connect using these pins. The problem is unaffected by switching to another GY-521, but is solved if I use I2C(1) instead (pins X9 and X10). This is on a PYBD_SF6W, and switching to the latest firmware does restore I2C(2) functionality.
Is there anything I can do to further investigate the issue? I'd be grateful for any advice.
- Mathieu
I was previously able to communicate with a GY-521 breakout board for the MPU-6050 gyro/accelerometer using I2C on pins Y9 and Y10. I suddenly find myself unable to connect using these pins. The problem is unaffected by switching to another GY-521, but is solved if I use I2C(1) instead (pins X9 and X10). This is on a PYBD_SF6W, and switching to the latest firmware does restore I2C(2) functionality.
Is there anything I can do to further investigate the issue? I'd be grateful for any advice.
- Mathieu
Re: I may have bricked I2C(2)
The pull-up resistors for Y9/Y10 are driven by the 3.3V output line, which was not enabled by default. See e.g. viewtopic.php?f=20&t=6803&p=39680&hilit=EN_3V3#p38663
A more recent firmware does now enable it, but maybe only if the MMC is used.
A more recent firmware does now enable it, but maybe only if the MMC is used.
Re: I may have bricked I2C(2)
Thanks, but adding the following does not solve the problem:The pull-up resistors for Y9/Y10 are driven by the 3.3V output line, which was not enabled by default. See e.g. viewtopic.php?f=20&t=6803&p=39680&hilit=EN_3V3#p38663
A more recent firmware does now enable it, but maybe only if the MMC is used.
Code: Select all
Pin.board.EN_3V3.value(1)
Re: I may have bricked I2C(2)
Did it restore or not?This is on a PYBD_SF6W, and switching to the latest firmware does restore I2C(2) functionality.
Re: I may have bricked I2C(2)
Duh. Of course I would leave out the critical word!Did it restore or not?This is on a PYBD_SF6W, and switching to the latest firmware does restore I2C(2) functionality.
No, I meant that switching to the latest firmware (PYBD-SF6-20191002-v1.11-381-g4102320e9.dfu) did NOT restore I2C(2) functionality.
Re: I may have bricked I2C(2)
Can you measure 3.3v at the 3.3V output? And
Can you still use Y9 and Y10 as normal GPIO ports in and out?
Can you still use Y9 and Y10 as normal GPIO ports in and out?
Re: I may have bricked I2C(2)
No. Whether with or without Pin.board.EN_3V3.value(1), the 3V3 pin reads 4.22 V (same voltage as VIN).Can you measure 3.3v at the 3.3V output?
Y10 works as expected (switch between 0 V and 3.3 V when mode=Pin.OUT, reads fine when mode=Pin.IN)Can you still use Y9 and Y10 as normal GPIO ports in and out?
But Y9 is unresponsive in OUT, and always reads back high (Pin('Y9',mode=Pin.IN).value() = 1) even when connected to GND.
Re: I may have bricked I2C(2)
There are no built-in pull-up resistors on the Y bus, only on the X bus. See viewtopic.php?f=20&t=6541Roberthh wrote: ↑Wed Oct 02, 2019 6:30 pmThe pull-up resistors for Y9/Y10 are driven by the 3.3V output line, which was not enabled by default. See e.g. viewtopic.php?f=20&t=6803&p=39680&hilit=EN_3V3#p38663
A more recent firmware does now enable it, but maybe only if the MMC is used.
Does your breakout board have pullups?
Hrmm that's surprising... and this is with nothing connected to the pybd?
Which 3.3v pin are you checking. It's possible the rail controlled by ev_3v3 is only accessible on the wbus/tile headers. I'll check later today.
Re: I may have bricked I2C(2)
No I tested with a 10K resistor between Y9 and X8 set to high, but no success. I assume the resistor value is too large. Will try with a smaller R later.jimmo wrote: ↑Wed Oct 02, 2019 10:36 pmThere are no built-in pull-up resistors on the Y bus, only on the X bus. See viewtopic.php?f=20&t=6541
Does your breakout board have pullups?
Correct.
I checked both the pinhole and two different WBUS connectors. Same value for both.Which 3.3v pin are you checking. It's possible the rail controlled by ev_3v3 is only accessible on the wbus/tile headers. I'll check later today.
I must add that I was previously (couple of days ago) able to use I2C(2) without a glitch, so it's likely that there is some sort of physical damage.
Re: I may have bricked I2C(2)
Getting voltages above 3.3V from X15 might result from a broken LDO or some kind of shortcut to VIN.
PYBD works fine even if the 3.3V LDO is broken as long as the SD card is not used!
Re: I2C2 not working
I2C2 works pretty well with some I2C slaves as long as very short wires are used and pull-up is enabled for B10 & B11.
But this operation mode is clearly out of I2C specs.
PYBD works fine even if the 3.3V LDO is broken as long as the SD card is not used!
Re: I2C2 not working
I2C2 works pretty well with some I2C slaves as long as very short wires are used and pull-up is enabled for B10 & B11.
But this operation mode is clearly out of I2C specs.