Pin 17 and 18 belong to /dev/i2c-0 in my opinion.

So try to change your code to
fd = open("/dev/i2c-0", O_RDWR);

or use pin 19 and 20.

To find your device use the i2cdetect command.
For i2c-0 use:
sudo i2cdetect -r 0

and for i2c-1 use
sudo i2cdetect -r 1


2014-12-11 20:59 GMT+01:00 Jesse Cobra <[email protected]>:
>
> If i2c tools are not working your script won't work either.
>
> Your really need to show more info to troubleshoot this...
>
> Chip address conflict perhaps?
> On Dec 11, 2014 12:39 AM, <[email protected]> wrote:
>
>>
>>
>> On Thursday, December 11, 2014 11:39:35 AM UTC+5:30, [email protected]
>> wrote:
>>>
>>> Hi,
>>>
>>> I am trying to read two bytes of data from a board(slave) using
>>> BBB(master) through i2c interface.
>>>
>>> I connected my board's SDA and SCL lines to P9_18 and P9_17 of BBB
>>> respectively.
>>>
>>> My code is
>>>
>>> #include <stdio.h>
>>> #include <errno.h>
>>> #include <string.h>
>>> #include <fcntl.h>
>>> #include <stdlib.h>
>>> #include <unistd.h>
>>> #include <linux/i2c-dev.h>
>>> #include <sys/ioctl.h>
>>>
>>>
>>> int main()
>>> {
>>> int fd,i;
>>>     int addr = 0x43;
>>> char buffer[10] = {0};
>>>
>>> fd = open("/dev/i2c-1", O_RDWR);   // opening i2c-1 file. returns a file
>>> descriptor used by read
>>> if(fd < 0)
>>> {
>>> printf("i2c failed to open\n");
>>> }
>>>
>>> if(ioctl(fd, I2C_SLAVE, addr) < 0)
>>> printf("failed to acquire bus\n");
>>>
>>> if(read(fd,buffer,2) != 2)     //reading 2 bytes of data
>>> {
>>> printf("i2c read failed\n");
>>>
>>> }
>>> else
>>> {
>>> for(i=0;i<2;i++)
>>> printf("the data is %d \n",buffer[i]);
>>> }
>>>
>>>
>>> return 0;
>>> }
>>>
>>>
>>>
>>>
>>>
>>>
>>> I got output --- "i2c read failed"
>>>
>>> What is the problem in my code? Or any problem in hardware? When I
>>> checked the following command, I got output like
>>>
>>> root@beaglebone:~# i2cdetect -l
>>> i2c-0   i2c             OMAP I2C adapter                        I2C
>>> adapter
>>> i2c-1   i2c             OMAP I2C adapter                        I2C
>>> adapter
>>> root@beaglebone:~# ls -l /sys/bus/i2c/devices/i2c-*
>>> lrwxrwxrwx 1 root root 0 Jan  1  2000 /sys/bus/i2c/devices/i2c-0 ->
>>> ../../../devices/ocp.3/44e0b000.i2c/i2c-0
>>> lrwxrwxrwx 1 root root 0 Jan  1  2000 /sys/bus/i2c/devices/i2c-1 ->
>>> ../../../devices/ocp.3/4819c000.i2c/i2c-1
>>>
>>>
>>> Can anyone find problem? Please reply.
>>>
>>
>>
>> I tried i2cget command but it also showing Error: Read failed.
>>
>> What it means? Any hardware problem? How i trace the problem?
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> --
>> For more options, visit http://beagleboard.org/discuss
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "BeagleBoard" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> For more options, visit https://groups.google.com/d/optout.
>>
>  --
> For more options, visit http://beagleboard.org/discuss
> ---
> You received this message because you are subscribed to the Google Groups
> "BeagleBoard" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to