реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> I2C и SPI - как использовать под Линуксом ?
slava2005
сообщение Jul 26 2007, 16:09
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 168
Регистрация: 26-05-05
Из: Москва
Пользователь №: 5 423



Вообщем опять у меня вопрос - хочу общаться с вышеуказанными интерфейсами. Желательно из шелла.

Подскажите направление поиска ...
Go to the top of the page
 
+Quote Post
Lelick
сообщение Jul 27 2007, 09:46
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 14-06-05
Пользователь №: 6 007



Цитата(slava2005 @ Jul 26 2007, 20:09) *
Вообщем опять у меня вопрос - хочу общаться с вышеуказанными интерфейсами. Желательно из шелла.

Подскажите направление поиска ...


Работаю с i2c через ioctl /dev/i2c (c 89 0), spi не пользую
Go to the top of the page
 
+Quote Post
Vishay
сообщение Jul 30 2007, 13:47
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 47
Регистрация: 7-12-06
Пользователь №: 23 243



Вопрос работы из shell с i2c и spi - интерфейсами меня тоже интересует. С нетерпением жду продолжения топика.
Go to the top of the page
 
+Quote Post
dch
сообщение Aug 4 2007, 11:56
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1 179
Регистрация: 15-09-04
Из: 141070 г. Королев МО, улица Горького 39-121
Пользователь №: 661



как устроийство SPI видно, из под консоли у вас под Linux не густо средств чтобы поработать с устройисвами, можно записать, считать

Пример использования последовательной flash, подцепленной к SPI интерфейсу лежит на:
http://www.heavy-online.ru/arm-linux/
Go to the top of the page
 
+Quote Post
Vishay
сообщение Aug 6 2007, 09:00
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 47
Регистрация: 7-12-06
Пользователь №: 23 243



2 dch

Интересует нечто вроде программы gpio для чтения/записи состояния выводов general purpose input /output процессора ( см. http://electronix.ru/forum/index.php?showtopic=34444 ) , но только для интерфейсов i2c и spi процессора AT91RM9200 - средство, которое можно было бы использовать вместе с платой Rainbow для подключения к другим устройствам в качестве логического анализотора их i2c, spi интерфейсов.
Это теоретически. Практически видна опасность повреждения DataFlash на плате Rainbow при подключении к интерфейсу spi процессора случайного потока данных. Но против этого можно принять меры аппаратного характера.

P.S. В описании u-boot'a такие средства для i2c и spi вроде бы есть, но в том варианте u-boot, который пропатчен в соотвестввии с http://www.heavy-online.ru/arm-linux/ этого нет. Надо будет как-нибудь попробовать собрать u-boot с поддержкой этих тестовых функций.

Сообщение отредактировал Vishay - Aug 6 2007, 09:00
Go to the top of the page
 
+Quote Post
dch
сообщение Aug 14 2007, 12:22
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1 179
Регистрация: 15-09-04
Из: 141070 г. Королев МО, улица Горького 39-121
Пользователь №: 661



Цитата(Vishay @ Aug 6 2007, 13:00) *
P.S. В описании u-boot'a такие средства для i2c и spi вроде бы есть, но в том варианте u-boot, который пропатчен в соотвестввии с http://www.heavy-online.ru/arm-linux/ этого нет.

Начиная с 1.1.1 в u-boot есть поддержка SPI flash - в конфигурационном файле нужно раскомментировать строчку. Даете коман дочку flinfo если SPI флэш не видна - лезете в конфигурационный файл.
Go to the top of the page
 
+Quote Post
Vishay
сообщение Oct 30 2007, 16:26
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 47
Регистрация: 7-12-06
Пользователь №: 23 243



Фирма ST для поддержки своего выпускаемого железа содержит свой STLinux, и в документации на него есть примеры программ для работы с i2c и spi интерфейсами :

i2c:
http://www.stlinux.com/docs/manual/distrib...tion_guide6.php

spi:
http://www.stlinux.com/docs/manual/distrib...tion_guide7.php
Go to the top of the page
 
+Quote Post
Vishay
сообщение Nov 5 2007, 07:50
Сообщение #8


Участник
*

Группа: Свой
Сообщений: 47
Регистрация: 7-12-06
Пользователь №: 23 243



Для тренировки работы с i2c интерфейсом платы Rainbow я припаял к ней на проводках микросхему EEPROM M24256 фирмы ST с неким примерно известным запрограммированным до меня содержимым, с закороченными на землю адресными выводами ( адрес на шине i2c 0x50 ) и резистором 5 кОм на выводе /WC для защиты от записи.
Попробовал считать ее содержимое при помощи готовых средств Linux'а, для чего первоначально использовал ядро с поддержкой EEPROM - в каталоге /sys/bus/i2c/devices/0-0050/eeprom видны первые 256 байт EEPROM'а.

cat /sys/bus/i2c/devices/0-0050/eeprom | hexdump -C

Далее попробовал почитать другие адреса EEPOMa при помощи утилит из пакета lm-sensors: i2cdump считала те-же 256 байт, а выше по адресам считывала не совсем-то, что ожидалось.

i=0; /usr/sbin/i2cdump -y 0 0x50 c $i; while [ "$i" -le 128 ]; do echo "i=$i" ; /usr/sbin/i2cdump -y 0 0x50 c $i; let i+=1; done;

Для верификации содержимого EEPROMa пришлось считать его без Linux'а модифицированной программой BasicTWIEeprom из тестовых примеров для AT91RM9200 от Atmel (файл eeprom_read.zip).

Имея т.о точное содержимое EEPROMa в файле, я предпринял еще несколько попыток стандартными средствами Linux'a считать все содержимое EEPROM'a, но они оказались безуспешными.

Далее, я попробовал написать свою программу на Си для решения этой задачи ( файл i2c_program.zip ). Для еe работы необходимо ядро с выключенной поддержкой EEPROM, иначе в адреса 0x50 ... 0x57 шины i2c ничего нельзя записать при помощи вызова ioctl.

Вот скрипт, который я использую для создания устройства /dev/i2c и загрузки программы из компьютера в файловую систему платы Rainbow на ram-диске:

if [ ! -c "/dev/i2c" ] ; then mknod -m 600 /dev/i2c c 89 0 ; fi ; cd /home ; prgn="./i2c_program"; echo -e "binary\nget $prgn" | ./tftp 192.168.2.41 ; if [ -e $prgn ] ; then chmod 544 $prgn ; fi ; ls -l ;

Команда для запуска программы:

#./i2c_program 50 0 255
где параметры командной строки: address_i2c, mem_addr, nbytes.


P.S.
Начал я практическое изучение i2c - интерфейса под Linux-ом на плате Rainbow с такого скрипта:
mknod /dev/i2c c 89 0
ls -l /dev/i2c
dmesg > /dev/i2c
, но при просмотре сигналов интерфейса i2c в осциллограф выяснилось, что текст из dmesg пишется в i2c-адрес 0x7f. ):- .

Сообщение отредактировал Vishay - Nov 5 2007, 08:01
Прикрепленные файлы
Прикрепленный файл  i2c_program.zip ( 6.41 килобайт ) Кол-во скачиваний: 70
Прикрепленный файл  eeprom_read.zip ( 111.71 килобайт ) Кол-во скачиваний: 59
 
Go to the top of the page
 
+Quote Post
path_finder
сообщение Nov 20 2007, 12:46
Сообщение #9


Участник
*

Группа: Новичок
Сообщений: 30
Регистрация: 28-01-05
Пользователь №: 2 260



Цитата(Vishay @ Nov 5 2007, 09:50) *
/sys/bus/i2c/devices/0-0050/eeprom видны первые 256 байт EEPROM'а.

cat /sys/bus/i2c/devices/0-0050/eeprom | hexdump -C

остальные части eeprom должны быть:
/sys/bus/i2c/devices/0-0051/eeprom
/sys/bus/i2c/devices/0-0052/eeprom

и так далее
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 15th July 2025 - 14:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.01415 секунд с 7
ELECTRONIX ©2004-2016