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.

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.