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

Take control of your robot's destiny by subscribing to Synthiam ARC Pro, and watch it evolve into a versatile and responsive machine.

PRO
USA
#1  

Will,

is this one ? http://thingm.com/fileadmin/thingm/downloads/BlinkM_datasheet.pdf

d = I2C SDA c = I2C SCL

User-inserted image

source: https://www.ez-robot.com/Tutorials/Files/EZ-Bv4%20Datasheet.pdf

PRO
USA
#2  

Yup that's the one thanks! Seems I have I wired correctly. Not sure what's happening with the disconnect.

PRO
Synthiam
#3  

There's ONLY two ways an i2c can cause a disconnect...

  1. It's not wired correctly - which is why it's disconnecting.

  2. the i2c address is specified incorrectly

PRO
USA
#4  

EZB v4 I2C ports are a single bus, do you have anything else connected ?

PRO
USA
#5  

Nope nothing else connected. Checked the 4 wires again and they are connected correctly. (Black Neu, red pos, white D, Yellow C) All are addressed at 0x09. This is for Alans eye color control. User-inserted image

User-inserted image

PRO
USA
#6  

Will,

There are a few different blinkm versions and revisions.

blinkm min product info: https://thingm.com/products/blinkm-minm/

Quote:

3.6-5v operating voltage, 60mA max 5-volt standard TTL inputs

EZB is 3.3v

did you used that device before with EZB ?

PRO
USA
#7  

Hmm good point. The Original Alan was built with the same product. They still work and I can change colors for his eyes using the control for it. But that was 4/5 years ago. Perhaps the product has changed. I won't put too much energy into it. For this project I can just select a color and set that with the programmer, then just Apply voltage .

PRO
Canada
#8  

I agree with @PTP it looks like the BlinkM operating voltage may have changed.

Their pull-up resistor values on the SDA and SCL lines may also have changed. You could try placing low value (330 to 1kohm) resistors on your wiring harness (SDA to VCC & SCL to VCC) to place them in parallel with the pull-up resistors on the board. Putting these parallel resistors in place with decrease the resistance on the SDA and SCL lines pulling them up stronger.

PRO
USA
#9  

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

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) http://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.