2
\$\begingroup\$

This is my stereoscopic system:

enter image description here enter image description here enter image description here enter image description here

I'm using a zedboard to pilot two i2c-camera MT9D111: http://www.dragonwake.com/download/camera/MT9D111/mt9d111_rev5.pdf

Camera PCB Information: https://drive.google.com/file/d/0B2_rhDNAxM4sMWM2MmQ5MWMtNTFjMS00Y2YzLTgzNGUtYjEwMWZlMDg1NjM2/view

I'm encountering problem using i2c-cadence driver on an ArchLinux Distro.

The two i2c cameras are always detected by i2cdetect tool, but if i try to write to them sometimes they work correctly, but other times i get:

Something went wrong with write()! Error: 11 - Resource temporarily unavailable (addr:93)

or worst:

Something went wrong with write()! Error: 6 - No such device or address (addr:93)

I do not know why this error are popping out totally randomly, can someone explain this weird behaviour? Are the wire to long for I2C protocol (400KHz)? Is something related to the power supply?

I'm going crazy about this issue, any help will be useful.

\$\endgroup\$
11
  • \$\begingroup\$ I could be wrong, but I'm preeeettty sure that the black foam your board is on is conductive, which is bad if your Zedboard is on \$\endgroup\$
    – Funkyguy
    Commented Feb 4, 2016 at 21:02
  • \$\begingroup\$ i always tought it was isolant .-. \$\endgroup\$
    – Luca
    Commented Feb 4, 2016 at 21:04
  • 1
    \$\begingroup\$ There are some that aren't, tahts I why put the disclaimer at the front of the last one. Its generally not advised to run the electronics on top of the packaging you receive them in though. It is advised to run them on top of something you know for sure won't harm the devices \$\endgroup\$
    – Funkyguy
    Commented Feb 4, 2016 at 21:05
  • \$\begingroup\$ It's always possible one of the two I2C devices is holding the line. I am not to familiar with doing this through Linux though, so not sure if that would give you that error. \$\endgroup\$
    – mcmiln
    Commented Feb 4, 2016 at 21:35
  • 1
    \$\begingroup\$ @Luca Are these signals well shaped? Voltage levels, timings? Can you post a picture of them when it doesn't work? \$\endgroup\$ Commented Feb 5, 2016 at 11:11

1 Answer 1

1
\$\begingroup\$

Despite the fact that Vivado assure a PULL UP on the selected pins it is a WEAK PULL UP, adding an external PULL UP resistor has solved the problem.

\$\endgroup\$
3
  • 2
    \$\begingroup\$ Reading the question in combination with this answer it doesn't seem like it would be all that helpful to anyone else. Perhaps you could share the init code that worked? \$\endgroup\$
    – PeterJ
    Commented Feb 5, 2016 at 13:45
  • \$\begingroup\$ i'm working on it \$\endgroup\$
    – Luca
    Commented Feb 5, 2016 at 14:12
  • \$\begingroup\$ @PeterJ After other experiments the final solution was to add external pull up resistor. \$\endgroup\$
    – Luca
    Commented Feb 7, 2016 at 15:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.