MKR1000+MKR2UNO and 5V/3.3V I2C BUS using BD-LLC - why did i failed?


I’ve made quite simple sketch (schematic attached):
MKR1000+MKR2UNO with one I2C bus split to 3.3v part and 5v part by 4channel bi-directional level converter from Sparkfun. On 3.3v side a FRAM chip and TMP102 (tested without 5V - worked fine).

On 5V side, just a single PCF8574T with one output charged with red LED and 470Ohm resistor.

GND,5V,3.3V - from MKR2UNO board. Ground continous througout the whole circuit.

No pull-ups used, as all breakouts, and level converter allready had pull up resisors.

With this circuit I was able to fry my MKR1000, after downloading and running my code, which just tried to set high to one of PCF8574 output and read temperatire and first 23 bytes from RAM.
Circuit did’t made any harm to MKR1000 until I downloaded the code. After running my code all communication is lost and Arduino is dead, no reaction to resetting, no USB recognized etc…only power Supply led is On.

My question is: what error did I make that I should avoid in my next attempt.

Which pins on the MKR2UNO did you use?

From the documentation: “Unlike the Arduino UNO, the MKR2UNO Adapter do NOT have I2C signals on A4 and A5 and SPI on pins 11, 12 and 13.”

In your drawing there is no connection between the Vcc of PCF8574 and 5V. Did you forget to draw it or is it really missing?

Please provide links to the exact boards you’re using.

My guess is a miss-wiring resulting in a short-circuit.

Thank you for answering.

I use SDA,SCL pins of MKR2UNO board, which are placed exactly as on UNO but are wired on MKR2UNO adapter board to proper MKR1000 I2C digital pins (D11,D12).

MKR2UNO adapter changes form of MKR1000: To UNO form, connecting all pins (including I2C,SPI,ICSP,Supply...) but does not change logic to 5V.

Before experimenting with 5V, i was succesfully playing with different breakout I2C boards connected to SDA, SCL, and supplied form 3.3v.

My PCF8574 is connected to 5V, i forgot to draw the connection. 5V is taken from MKR2UNO adapter and supplies I2C expander and Logic Level Converter.

I am afraid that I missed something I shoud do to prevent connection 5V to 3.3v inputs of MKR1000. After powering the board , everything was working (note that uploading the code via USB was succesful), but after my code tried to write to I2C BUS something happen... I suspect that (due to some error in my connections) after driving the level converter 5V was somehow switched by mosfets in level converter to 3.3v part of I2C or maybe not? I wonder if (apart missing 5V to PCF :)) my schematic is correct?

After some tests I realized that my circuit is fine, at least it can't burn my Arduino. What caused my board to stop responding was some software issue (still to ivestigate).

Double tap reset, and loading simple code on bootloader USB made my board alive again.

Of course, I found this solution on this forum, THANKS!