Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:2
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Embedded Linux
SPI управление потоком данных (драйвер spidev) [решено]
SmartRogue
Добавлено 12.03.2018 09:27 Редактировалось 12.03.2018 19:24
0
Сообщение: 1
SmartRogue
0

Пункты: 1449
Регистрация: 27.11.2017
Здравствуйте.

Продолжаю разборки по подключению spi приблудины к imx6sk (начало).

Имею /dev/spidev3.0

Осциллографом NCS(SS) вижу, CLK тоже. Но есть одна проблема. В РЭ к приблудине есть обязательное требование - она способна выдавать данные лишь спустя 50мс после зануления сигнала NCS(SS), однако на осциллограмме вижу, что часы начинают молотить спустя 400 мкс после NCS.

В структуре spi_ioc_transfer есть поле delay_usecs (__u16), на которое была огромная надежда, но оказалось, что это поле отвечает за задержку снятия NCS после передачи последнего бита данных.

Вопрос: есть ли какой-то способ обеспечить задержку начала передачи данных после зануления NCS силами драйвера spidev?

Пока что в голову только приходит костыль: отобрать NCS у драйвера и управлять им самостоятельно как GPIO.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 12.03.2018 12:53 Редактировалось 12.03.2018 14:03 Сообщение: 2
sasamy
4.71

Пункты: 83540
Регистрация: 14.08.2009
Цитата

В РЭ к приблудине есть обязательное требование - она способна выдавать данные лишь спустя 50мс после зануления сигнала NCS(SS)


название есть у секретной приблудины ? что будет с ней если послать пустой байт или сброс какой-нибуть с обнуленым полем

* @cs_change: True to deselect device before starting the next transfer.

и задержкой 50 мс

* @delay_usecs: If nonzero, how long to delay after the last bit transfer
* before optionally deselecting the device before the next transfer.

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

https://elixir.bootlin.com/linux/v4.1.15/source/Documentation/spi/spidev_fdx.c#L48

CS деактивируется только в конце сообщения

Цитата

Full-duplex access,
and composite operation without chipselect de-activation, is available using
the SPI_IOC_MESSAGE(N) request.
Спуститься к концу Подняться к началу
Персональная информация
SmartRogue
Добавлено 12.03.2018 19:23 Сообщение: 3
SmartRogue
0

Пункты: 1449
Регистрация: 27.11.2017
В очередной раз - огромное спасибо!
У меня всё заработало.

Цитата

название есть у секретной приблудины?

Это spi джойстик, 50 мс занимает работа АЦП.

Цитата

что будет с ней если послать пустой байт или сброс какой-нибуть с обнуленым полем

Тут тоже всё хорошо, драйвер вполне устраивает отправка 0 байт в первом трансфере
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux