Asked — Edited

I2c Questions

I seemed to be having issues with I2C BlinkM's I keep adding the control to the layout and connect the blink M to one of the i2C ports and it disconnects the EZB, every single time. To make sure I have connected the wires correctly could someone point me to a call out that has the break down of the I2C ports, i.e +,-,c,d

Thanks in advance.


ARC Pro

Upgrade to ARC Pro

Stay at the forefront of robot programming innovation with ARC Pro, ensuring your robot is always equipped with the latest advancements.

Author Avatar
PRO
USA
#9  

Thanks Jeremie, I'll give it a try today!

Author Avatar
PRO
USA
#10  

@Jeremie,

I need your input:

Q1) I traced the EZB pcb and it seems EZB does not have pull-ups on SDA, SCL lines, neither a resistor in series, can you confirm this ?

Regarding the Pull-Up values, several times I've used 4.7K with STM32F103, STM32F205 and other 3.3v micro-controllers. When adding 2 devices with same values 4.7K brings down to 2.35K and still works, but if i bring down below <1.5K i had problems.

I know there are other factors:

  1. cable length (let's assume we are using normal distances 30 cms)
  2. I2c Bus speed

Q2) EZB I2c BUS Speed ? *** EDIT: The default value is 100 kbit/s and can be configured in the ARC

Q3) I never heard before the recommendation for 330 to 1K, Isn't the value too low ?

Q4) Can you explain why the recommendation is different for EZB when compared to other/same 3.3 micro-controllers ? *** EDIT 2: STM32F205 (EZB microcontroller) https://www.mouser.com/ds/2/389/stm32f205rb-956262.pdf page 114 When you have long wires, the series resistors limit the slew rate, but i believe we don't need them.