Warning: touch() [function.touch]: Unable to create file /home/starterkit/starterkit.ru/html/error.log because Permission denied in /home/starterkit/starterkit.ru/html/errorhandler.php on line 51 устройство по I2C - Embedded Linux - Форум - starterkit.ru
Объясните пожалуйста подробней, как работать с I2C.
У меня AT91SAM9260 нужно подключить две мкросхемы по I2C: PCF8563T и PCA95554D.
В \arch\arm\mach-at91\board-sam9260ek.c добавил:
В ядре включил I2C_GPIO.
В итоге в /dev/ появилось i2c-0 (89 0).
Теперь если выполнить echo "2">i2c-0, то на SDA и SCL видим передачу четырех байтов 0x01. Разве это правильно?
Если в программе обратиться так:
то функция ioctl(fd, I2C_SLAVE, adr) возращает -1.
Что я делаю не правильно?
Похоже разобрался сам. Неправильно задавал адреса. Надо было не 0xA2, a 0x51. Но все равно хотелось бы выслушать мнения специалистов, все ли я правильно делаю для работы с I2C.
Обращаюсь к знатокам, так как с шиной i2c сталкиваюсь впервые...
нужно соединить 2 платы на at91sam9xe512 по шине i2c.
почитав эту темку понял что нужно описать в файле борды адреса...
только подставить адреса те которые мне нужны...
и потом читать и писать как в обычный файл с помощью read, write
я так полагаю это будет мастер ...
At this time, Linux only operates I2C (or SMBus) in master mode; you can't use these APIs to make a Linux system behave as a slave/device, either to speak a custom protocol or to emulate some other device.
а то, что вы желаете - это вообще мультимастеринг, имхо, самый клинический случай на несчастной шинке..
не владею информацией.. могу добавить, что например у семейства pxa3хх существует поддержка режима slave, но реализация и жизнеспособность мне неизвестна..
смотрите исходники ядра в разделе drivers/i2c
что значит "не дадут"? в эмбеддед системе рут - это царь и бог, и может завалить АРМ одним движением.. читайте о mmap
хмм обновил ядро до 2.6.39
и походу i2c шина пропала
делаю # echo 2 > /dev/i2c-0
sh: write error: No such device or address
устройств на шине, если я правильно понял пока нету...
в ядре вроде i2c включена ...
куда копать ?
для начала хочеться просто асцилом увидеть что на пинах что то происходит...
и ещё какая конфигурация для наших плат для i2c должна быть в ядре ?
уважаемые , все таки если на конце устройства нету i2c плата должна или нет посылать байты...
скопипастил и изменил кое что...
в принцыпе девайс открывает и слейв присваивает...
ругаеться только на чтение, запись...
вот как то так...
чу все так сложно с мульти мастерингом Т___Т