Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как в Linux наладить обмен данными через интерфейс SPI?
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Linux
Oops
Здравствуйте.
Имеется отладочная плата Memec FX12LC с ПЛИС фирмы Xilinx FX12 с
встроенным в эту ПЛИС процессором PPC405, на нее скомпилировал Linux XLNX :

http://git.xilinx.com .

Linux загружается и работает замечательно.

Не получается наладить обмен данными по интерфейсу SPI.
В ядре подключил SPI как рекомендуют тут:

http://xilinx.wikidot.com/osl-spi-driver

Цитата
1 From the device drivers menu, select SPI support
2 Select the Xilinx SPI controller


Смонтировал sysfs:

Код
bash>mkdir /sys
bash>mount - t sysfs sysfs sys


В отличии от примера у меня в этой папке: /sys/bus/spi/devices/ пусто.
Но есть папка с описание SPI устройства: /sys/class/spi_master/spi32766 ,
это и есть необходимый мне SPI, подскажите как с ним работать?

Почитал документацию на SPI в ядре Linux, ничего толком не понял ((.
Посмотрел тестовые файлы для SPI в ядре Linux "linux-2.6-xlnx.git/Documentation/spi".
В этих файлах работа с SPI ведется через устройство /dev/spi* , но у меня в папке /dev нет
никаких устройств spi* (( .



PS:
В dts файле который генерирует EDK для Linux, описание SPI выглядит так:
Код
        xps_spi_0: xps-spi@83400000 {
            compatible = "xlnx,xps-spi-2.01.b", "xlnx,xps-spi-2.00.a";
            interrupt-parent = <&xps_intc_0>;
            interrupts = < 5 2 >;
            reg = < 0x83400000 0x10000 >;
            xlnx,family = "virtex4";
            xlnx,fifo-exist = <0x1>;
            xlnx,num-ss-bits = <0x1>;
            xlnx,num-transfer-bits = <0x8>;
            xlnx,sck-ratio = <0x2>;
        };



Помогите плиз!!!

Большое спасибо!!!
Oops
Здравствуйте!!!
Ребята, неужели никто не работал с SPI интерфейсом из под Linux???
В интернете не могу найти нормального разъяснения crying.gif
Вроде один из самых популярных низкоскоростных интерфейсов.

Вопрос вкратце:

В ядре подключил SPI драйвер.
Система видит SPI устройство так:
/sys/class/spi_master/spi32766 ,
где spi32766 каталог содержимое которого сейчас не припомню

Подскажите как работать с SPI-ем в LINUX!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Хорошо было бы пример кода поглядеть, любой совет будет полезен.
Спасибо!!!
Idle
ну я вот начал работать со spi, но помочь ничем не могу - у меня драйвер отдельный, со фреймворком не связан
в любом случае, нужен файл в /dev, разбирайтесь, почему его там нет

http://lxr.linux.no/#linux+v2.6.33/drivers/spi/spidev.c
Цитата
* SPI has a character major number assigned. We allocate minor numbers
* dynamically using a bitmask. You must use hotplug tools, such as udev
* (or mdev with busybox) to create and destroy the /dev/spidevB.C device
* nodes, since there is no fixed association of minor numbers with any
* particular SPI bus or device.

*/
#define SPIDEV_MAJOR 153 /* assigned */
#define N_SPI_MINORS 32 /* ... up to 256 */

как-то так
Oops
Цитата(Idle @ Apr 23 2010, 22:49) *
ну я вот начал работать со spi, но помочь ничем не могу - у меня драйвер отдельный, со фреймворком не связан
в любом случае, нужен файл в /dev, разбирайтесь, почему его там нет

http://lxr.linux.no/#linux+v2.6.33/drivers/spi/spidev.c

как-то так


Спасибо. Будем разбираться.
stas17
Здравствуйте!У меня тоже вопрос по поводу SPI. Просто говоря SPI соединяет 2 объекта:один - Master, другой - Slave. У меня двумя этими объектами являются Linux и FPGA, причем, чтобы Linux был Slave, но по умолчанию он не может быть Slave.
Google пока не помог решить эту проблему...Буду рад всем советам!
Idle
в linux реализован только мастер, насколько мне известно

Цитата
At this writing, Linux has no slave side programming interface.

http://lxr.linux.no/linux+v2.6.34.1/Docume...spi/spi-summary
Idle
в общем, попробуйте допилить мастер-драйвер для своего чипа, гугл выдаёт обсуждения в мейллистах; основная проблема, думаю, понятна - вовремя ответить
stas17
Здравствуйте! У меня вопрос о Linux. На работе в проекте мне нужно передавать по SPI данные линуксу с довольно приличной скоростью. В ходе выполнения проекта встал вопрос о прерываниях в линуксе. И я никак не могу найти время реакции на прерывания в Linux...Довольно долго ищу это в интернете. Может кто-нибудь знает??
faa
Цитата(stas17 @ Jul 27 2010, 11:45) *
И я никак не могу найти время реакции на прерывания в Linux...Довольно долго ищу это в интернете. Может кто-нибудь знает??

Вот тут копать надо.
А здесь циферки есть. С 2.6.35 вроде обещали rt-патч влить в основную ветку.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.