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

 
 
 
Reply to this topicStart new topic
> at91sam9xeek + Linux + SPI
sangre
сообщение Jan 28 2011, 07:38
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 35
Регистрация: 8-11-10
Пользователь №: 60 727



на отладочной плате установлен линукс, необходимо работать с spi, отладочная плата планируется быть мастером.

как подходить к этому вопросу? с чего начинать? после рытья в гугле и аглицких форумов предполагаю что нужно
вписать какое нибудь устройство в исходники ядра, и перекомпилить его. но после перекомпилировки устройство
которое я вписал не появилось в списке устройств в директории /dev. дальше насколько я понял пишется драйвер,
он же модуль ядра, через который все и работается. но, как из приложения работать с модулем? как в приложении
увидеть функции, описанные в модуле?

еще предполагаю что может быть где то в директориях линукса есть файл этого spi и можно работать с интерфейсом
через него? но здесь я не представляю как это делать.

в общем пока в голове каша, теперь по крупицам собираю инфу и нужно все как то в голове систематизировать,
кто что знает, как и что делать, поделитесь опытом.
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Jan 28 2011, 14:37
Сообщение #2


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Воспользуйтесь поиском по форуму. Это обсуждалось.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
sangre
сообщение Jan 31 2011, 07:50
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 35
Регистрация: 8-11-10
Пользователь №: 60 727



что то как то поиск не очень удался, как то все везде сумбурно...
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Jan 31 2011, 08:12
Сообщение #4


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

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Вы подробней расскажите, с чем Вы хотите работать по spi.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
sangre
сообщение Feb 1 2011, 05:57
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 35
Регистрация: 8-11-10
Пользователь №: 60 727



контроллер вроде как должен быть. а это имеет значение? насколько я понимаю, с моего линукса наверно без разницы с чем работать. контроллер spi вроде выбран, в плате их 2, я выбрал 2, cs я так полагаю нужно задавать уже из приложения.
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Feb 1 2011, 07:24
Сообщение #6


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

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Просто для кучи железа, которое можно повесить на SPI, в линуксе уже есть драйвера. Не вижу смысла напрямую работать с SPI из приложения. Разве что что-то совсем специфичное.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
sangre
сообщение Feb 1 2011, 09:09
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 35
Регистрация: 8-11-10
Пользователь №: 60 727



блин, разумно. но не факт что не придется драйвера писать. пока я вообще не знаю как все это разрабатывать =( инфа вся какая то разрозненная
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Feb 1 2011, 10:15
Сообщение #8


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

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Посмотрите на какой-нить простой драйвер. Например ./drivers/hwmon/lis3lv02d_spi.c и ./drivers/hwmon/lis3lv02d.c


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
sangre
сообщение Feb 1 2011, 11:10
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 35
Регистрация: 8-11-10
Пользователь №: 60 727



это насколько я понимаю собирается в модуль? который будет .ko, т.е. драйвер устройства. само устройство я так полагаю описано в какой нибудь плате? и при сборке ядра устройство собирается в ядро, а этот драйвер будет либо в ядре, либо должен будет подключаться вручную?
и еще, это устройство получается уже прицеплено к какому нибудь spi контроллеру, и cs уже жестко задан?
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Feb 1 2011, 11:18
Сообщение #10


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

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Можно в модуль, можно вкомпилировать.
Устройство описывается структурой spi_board_info, которую надо передать в spi_register_board_info во время инициализации вашей платформы. Контроллер и CS должны быть определены.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
sangre
сообщение Feb 2 2011, 06:01
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 35
Регистрация: 8-11-10
Пользователь №: 60 727



вот с этой структурой интресная история. я собирал ядро и фс openembedded`om, он собирает ангстром дистрибутив, его можно выкачать на linux4sam, он интересно все собирает, я еще толком не разобрался как он это делает, но это думаю вопрос времени. вот, он там сначала шаманит с ядром 2.6.27, потом с ядром 2.6.30, на выходе рабочее ядро 2.6.30. я в spi.h добавлял свое устройство, условно device, в оба исходника, и в 2.6.27 и в 2.6.30, когда он компилирует 2.6.27 все нормально, а в 2.6.30 - ругаецца, говорит что неправильное описание. хотя вроде все по исходникам. после того как закоментил некоторые моменты, он скомпилировал, но в /dev моего устройства не появилось. появился файл в /sys/device типа spi_1.1 вроде тот который я сделал. как дальше пользоваться утсройством? оно должно быть в /dev или нет? для чего устройство в /sys/device? что с этим делать? как работать с spi? в даташите писано, ежели хотите писать-читать, то вот вам регистры(а это ячейки памяти) пользуйтесь на здоровье, естессно операционка не дает туда ничего писать. я так полагаю необходим модуль, который как я думаю уже будет туда и писать и читать?
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Feb 2 2011, 12:33
Сообщение #12


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

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Читайте http://www.mjmwired.net/kernel/Documentation/spi/spi-summary http://www.mjmwired.net/kernel/Documentation/spi/spidev и http://www.kernel.org/pub/linux/utils/kern...tplug/udev.html . Грубо говоря SPI это интерфейс. Если на нем есть устройства - udev создаст соответствующие записи в /dev .


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
sangre
сообщение Feb 4 2011, 06:05
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 35
Регистрация: 8-11-10
Пользователь №: 60 727



благодарю за ссылки, почитаю =)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 10:42
Рейтинг@Mail.ru


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