i2c read failed

I’m trying to connect beagle bone black and OV7670 via I2C. The BBB is rev c running with debian 7.9 and I’m using i2ctools for the i2c communication. Using i2cdetect I could find the camera and its device adrress. Also using i2cset I could write values in its register. But whenever I try i2cdump or i2cget, I get error. I’d like to copy the messages in my terminal so that you understand easily what is happening.

root@beaglebone:/home/debian# i2cdetect -r -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – -- – -- – -- – -- – -- – -- –
10: – -- – -- – -- – -- – -- – -- – -- – --
20: – 21 – -- – -- – -- – -- – -- – -- – --
30: – -- – -- – -- – -- – -- – -- – -- – --
40: – -- – -- – -- – -- – -- – -- – -- – --
50: – -- – -- UU UU UU UU – -- – -- – -- – --
60: – -- – -- – -- – -- – -- – -- – -- – --
70: – -- – -- – -- – --
root@beaglebone:/home/debian# i2cset -y 1 0x021 0x00 1
root@beaglebone:/home/debian# i2cget -y 1 0x021 0x00
Error: Read failed
root@beaglebone:/home/debian# i2cget -y 1 0x021 0x00
Error: Read failed
root@beaglebone:/home/debian# i2cset -y 1 0x021 0x00 1
root@beaglebone:/home/debian# i2cset -y 1 0x021 0x00 1
root@beaglebone:/home/debian# i2cdump -y 1 0x21
No size specified (using byte-data access)
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
10: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
20: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
30: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
40: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
50: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
60: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
70: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
80: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
90: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
a0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
b0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
c0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
d0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
e0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
f0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
root@beaglebone:/home/debian#

There are some additional informations

  • My Arduino Uno could read and write on the OV7670’s register memories. So I think the camera is fine.
  • This problem was found in debian 7.8 and I upgraded it to 7.9 yesterday. But it’s not fixed.
  • I tried using i2c-2, but the result was just same.

Could you please suggest what I can do to fix it?