I may have bricked I2C(2)

The official PYBD running MicroPython, and its accessories.
Target audience: Users with a PYBD
User avatar
mathieu
Posts: 88
Joined: Fri Nov 10, 2017 9:57 pm

I may have bricked I2C(2)

Post by mathieu » Wed Oct 02, 2019 5:43 pm

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

User avatar
Roberthh
Posts: 3667
Joined: Sat May 09, 2015 4:13 pm
Location: Rhineland, Europe

Re: I may have bricked I2C(2)

Post by Roberthh » Wed Oct 02, 2019 6:30 pm

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.

User avatar
mathieu
Posts: 88
Joined: Fri Nov 10, 2017 9:57 pm

Re: I may have bricked I2C(2)

Post by mathieu » Wed Oct 02, 2019 6:47 pm

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.
Thanks, but adding the following does not solve the problem:

Code: Select all

Pin.board.EN_3V3.value(1)
I might look for a simple way to hack my own pull-up resistors, or is this unlikely to help?

User avatar
Roberthh
Posts: 3667
Joined: Sat May 09, 2015 4:13 pm
Location: Rhineland, Europe

Re: I may have bricked I2C(2)

Post by Roberthh » Wed Oct 02, 2019 6:59 pm

This is on a PYBD_SF6W, and switching to the latest firmware does restore I2C(2) functionality.
Did it restore or not?

User avatar
mathieu
Posts: 88
Joined: Fri Nov 10, 2017 9:57 pm

Re: I may have bricked I2C(2)

Post by mathieu » Wed Oct 02, 2019 7:06 pm

This is on a PYBD_SF6W, and switching to the latest firmware does restore I2C(2) functionality.
Did it restore or not?
Duh. Of course I would leave out the critical word!

No, I meant that switching to the latest firmware (PYBD-SF6-20191002-v1.11-381-g4102320e9.dfu) did NOT restore I2C(2) functionality.

User avatar
Roberthh
Posts: 3667
Joined: Sat May 09, 2015 4:13 pm
Location: Rhineland, Europe

Re: I may have bricked I2C(2)

Post by Roberthh » Wed Oct 02, 2019 8:14 pm

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?

User avatar
mathieu
Posts: 88
Joined: Fri Nov 10, 2017 9:57 pm

Re: I may have bricked I2C(2)

Post by mathieu » Wed Oct 02, 2019 9:01 pm

Can you measure 3.3v at the 3.3V output?
No. Whether with or without Pin.board.EN_3V3.value(1), the 3V3 pin reads 4.22 V (same voltage as VIN).
Can you still use Y9 and Y10 as normal GPIO ports in and out?
Y10 works as expected (switch between 0 V and 3.3 V when mode=Pin.OUT, reads fine when mode=Pin.IN)
But Y9 is unresponsive in OUT, and always reads back high (Pin('Y9',mode=Pin.IN).value() = 1) even when connected to GND.

User avatar
jimmo
Posts: 2754
Joined: Tue Aug 08, 2017 1:57 am
Location: Sydney, Australia
Contact:

Re: I may have bricked I2C(2)

Post by jimmo » Wed Oct 02, 2019 10:36 pm

Roberthh wrote:
Wed Oct 02, 2019 6:30 pm
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.
There 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?
mathieu wrote:
Wed Oct 02, 2019 9:01 pm
No. Whether with or without Pin.board.EN_3V3.value(1), the 3V3 pin reads 4.22 V (same voltage as VIN).
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.

User avatar
mathieu
Posts: 88
Joined: Fri Nov 10, 2017 9:57 pm

Re: I may have bricked I2C(2)

Post by mathieu » Thu Oct 03, 2019 12:44 pm

jimmo wrote:
Wed Oct 02, 2019 10:36 pm
There 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?
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.
mathieu wrote:
Wed Oct 02, 2019 9:01 pm
No. Whether with or without Pin.board.EN_3V3.value(1), the 3V3 pin reads 4.22 V (same voltage as VIN).
Hrmm that's surprising... and this is with nothing connected to the pybd?
Correct.
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 checked both the pinhole and two different WBUS connectors. Same value for both.

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.

chuckbook
Posts: 135
Joined: Fri Oct 30, 2015 11:55 pm

Re: I may have bricked I2C(2)

Post by chuckbook » Thu Oct 03, 2019 2:11 pm

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.

Post Reply