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

 
 
> Как в Linux наладить обмен данными через интерфейс SPI?
Oops
сообщение Apr 22 2010, 09:30
Сообщение #1


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

Группа: Участник
Сообщений: 129
Регистрация: 28-08-08
Из: г.Омск
Пользователь №: 39 870



Здравствуйте.
Имеется отладочная плата 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 - Apr 22 2010, 09:34
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 9)
Oops
сообщение Apr 23 2010, 16:23
Сообщение #2


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

Группа: Участник
Сообщений: 129
Регистрация: 28-08-08
Из: г.Омск
Пользователь №: 39 870



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

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

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

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

Сообщение отредактировал Oops - Apr 23 2010, 16:24
Go to the top of the page
 
+Quote Post
Idle
сообщение Apr 23 2010, 18:34
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 351
Регистрация: 5-04-05
Пользователь №: 3 874



ну я вот начал работать со 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 */

как-то так

Сообщение отредактировал Idle - Apr 23 2010, 18:39
Go to the top of the page
 
+Quote Post
Oops
сообщение Apr 24 2010, 19:18
Сообщение #4


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

Группа: Участник
Сообщений: 129
Регистрация: 28-08-08
Из: г.Омск
Пользователь №: 39 870



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

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

как-то так


Спасибо. Будем разбираться.
Go to the top of the page
 
+Quote Post
stas17
сообщение Jul 22 2010, 11:53
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 13-07-10
Пользователь №: 58 427



Здравствуйте!У меня тоже вопрос по поводу SPI. Просто говоря SPI соединяет 2 объекта:один - Master, другой - Slave. У меня двумя этими объектами являются Linux и FPGA, причем, чтобы Linux был Slave, но по умолчанию он не может быть Slave.
Google пока не помог решить эту проблему...Буду рад всем советам!
Go to the top of the page
 
+Quote Post
Idle
сообщение Jul 22 2010, 13:32
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 351
Регистрация: 5-04-05
Пользователь №: 3 874



в linux реализован только мастер, насколько мне известно

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

http://lxr.linux.no/linux+v2.6.34.1/Docume...spi/spi-summary
Go to the top of the page
 
+Quote Post
Idle
сообщение Jul 22 2010, 15:26
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 351
Регистрация: 5-04-05
Пользователь №: 3 874



в общем, попробуйте допилить мастер-драйвер для своего чипа, гугл выдаёт обсуждения в мейллистах; основная проблема, думаю, понятна - вовремя ответить
Go to the top of the page
 
+Quote Post
stas17
сообщение Jul 27 2010, 07:45
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 13-07-10
Пользователь №: 58 427



Здравствуйте! У меня вопрос о Linux. На работе в проекте мне нужно передавать по SPI данные линуксу с довольно приличной скоростью. В ходе выполнения проекта встал вопрос о прерываниях в линуксе. И я никак не могу найти время реакции на прерывания в Linux...Довольно долго ищу это в интернете. Может кто-нибудь знает??
Go to the top of the page
 
+Quote Post
Idle
сообщение Jul 29 2010, 18:19
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 351
Регистрация: 5-04-05
Пользователь №: 3 874



http://free-electrons.com/doc/embedded_linux_realtime.pdf
Go to the top of the page
 
+Quote Post
faa
сообщение Jul 30 2010, 04:39
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 726
Регистрация: 14-09-06
Из: Москва
Пользователь №: 20 394



Цитата(stas17 @ Jul 27 2010, 11:45) *
И я никак не могу найти время реакции на прерывания в Linux...Довольно долго ищу это в интернете. Может кто-нибудь знает??

Вот тут копать надо.
А здесь циферки есть. С 2.6.35 вроде обещали rt-патч влить в основную ветку.

Сообщение отредактировал faa - Jul 30 2010, 05:06
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 6th August 2025 - 11:50
Рейтинг@Mail.ru


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