|
Пауза между байтами в SPI DMA, STM32F4xx |
|
|
|
 |
Ответов
|
Sep 19 2013, 14:22
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(Rash @ Sep 19 2013, 17:52)  это зависимости на какой частоте запустить SPI. При частотах > 4МГц, этого значения не будет хватать. adnega, Вопрос не в том как обойти какие либо ограничения, а в том возможно ли сделать поддержку защитных интервалов между байтами при использовании DMA С помощью таймера, SPI, DMA и какой-то матери конечно можно сделать. Но тут вопрос в другом: интерфейс SPI настолько "дубовый", что делать какие-либо задержки между байтами, это на мой взгляд нарушение основной его идеологии. Пока не видел ни одного устройства (и которые Вы привели в пример тоже к ним относятся), которым бы требовалась задержка ежду байтами. Чисто формально можно называть такие интерфейсы не SPI, а например C-Bus, но в SPI никаких задержек не требуется. Если один интерфейс для управляемый светодиодных лент, где пауза соответствует защелкиванию данных, но между байтами поток непрерывный. Так как будем интерфейс называть? Цитата(DmitryM @ Sep 19 2013, 17:55)  Нужно как минимум один такт клока, а SPI может передавать байты сплошным потоком бит без всякой задержки. Повторяю, задержка не нужна - посмотрите внимательно, что такое tNXT по диаграмме (а не по переводу с английского). Добавлю: тут недавно обсуждали DMA + SPI на STM. Картина не такая уж и радужная. Гарантировать интервал в 200нс с помощью DMA, таймеров и прочего, по-моему, не получится. Относитесь к DMA как сущности, которая может быстро и без участия CPU передать БОЛЬШОЙ кусок данных. Как только речь заходит о единичных транзакциях начинаются проблемы. Время между DMA-запросом и DMA-транзакцией далеко не ноль, "но это еще пол беды, вся беда в том, что" это время не постоянно.
|
|
|
|
|
Sep 19 2013, 14:36
|
Знающий
   
Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840

|
Цитата(adnega @ Sep 19 2013, 18:22)  Повторяю, задержка не нужна - посмотрите внимательно, что такое tNXT по диаграмме (а не по переводу с английского). Задержка нужна, проверено на собственно опыте, иначе мсх (в моем случае CMX638) не дает верные данные. Да можно понизить частоту клока и тем самым выдержать эти несчастные 200нс. В моем случа все решалось просто, у атмела sam7s все это умеет делать модуль SPI, задал параметры и все. В случае с стм32 этого сделать нельзя при работе через DMA, а поллингом как-то некузяво, итак есть чем заниматься. Здесь по-моему только снижением частоты клока. ЗЫ. Разработчики мсх специально указали Inter-Byte time, могли бы вообще не указывать, tCK сказали, что не меньше такого то и все, ан нет, указали, обратили внимание.
|
|
|
|
Сообщений в этой теме
Rash Пауза между байтами в SPI DMA, STM32F4xx Sep 19 2013, 07:25 scifi Таймеры вполне способны генерировать запросы DMA с... Sep 19 2013, 07:34 Rash а примера случаем нет такого для настройки? Sep 19 2013, 08:05 adnega Цитата(Rash @ Sep 19 2013, 11:25) А то мн... Sep 19 2013, 08:15 DmitryM Цитата(adnega @ Sep 19 2013, 12:15) Это к... Sep 19 2013, 13:30  adnega Цитата(DmitryM @ Sep 19 2013, 17:30) напр... Sep 19 2013, 13:48   DmitryM Цитата(adnega @ Sep 19 2013, 17:48) Если ... Sep 19 2013, 13:55 Rash одна из микр это CMX618 имено эти 200 нсек и нужно... Sep 19 2013, 13:36 megajohn Цитата(Rash @ Sep 19 2013, 17:36) Или ест... Sep 19 2013, 13:53 Rash adnega, Задержка байтами в SPI нужна конечно меньш... Sep 19 2013, 14:42 DmitryM Цитата(Rash @ Sep 19 2013, 18:42) А тепер... Sep 19 2013, 14:45 adnega Цитата(Rash @ Sep 19 2013, 18:42) А тепер... Sep 19 2013, 15:08 adnega Попробовал. Получилось))
Правда, на STM32F303 (с н... Sep 19 2013, 19:45 DmitryM Цитата(adnega @ Sep 19 2013, 23:45) Попро... Sep 19 2013, 20:00  adnega Цитата(DmitryM @ Sep 20 2013, 00:00) Это ... Sep 19 2013, 20:01   DmitryM Цитата(adnega @ Sep 20 2013, 00:01) Дык, ... Sep 19 2013, 20:07    adnega Цитата(DmitryM @ Sep 20 2013, 00:07) А, я... Sep 19 2013, 20:25     DmitryM Цитата(adnega @ Sep 20 2013, 00:25) в нов... Sep 19 2013, 20:32      adnega Цитата(DmitryM @ Sep 20 2013, 00:32) Как?... Sep 19 2013, 20:58       DmitryM Цитата(adnega @ Sep 20 2013, 00:58) Дык, ... Sep 19 2013, 21:03        adnega Цитата(DmitryM @ Sep 20 2013, 01:03) Опят... Sep 19 2013, 22:30         DmitryM Цитата(adnega @ Sep 20 2013, 02:30) В так... Sep 20 2013, 06:24          HHIMERA Вы хоть понимаете о чём идёт речь??? Sep 20 2013, 06:54 Rash NSS и так программный, ибо в STM аппаратный он вро... Sep 20 2013, 06:59 HHIMERA Цитата(Rash @ Sep 20 2013, 09:59) Вот есл... Sep 20 2013, 07:34  DmitryM Цитата(HHIMERA @ Sep 20 2013, 11:34) Ещё ... Sep 20 2013, 07:41   HHIMERA Цитата(DmitryM @ Sep 20 2013, 10:41) DMA ... Sep 20 2013, 07:51    DmitryM Цитата(HHIMERA @ Sep 20 2013, 11:51) Ысчо... Sep 20 2013, 08:54 scifi Цитата(Rash @ Sep 20 2013, 10:59) Вот есл... Sep 20 2013, 07:53 Rash не разобрался я как через таймер DMA запускать. По... Sep 20 2013, 08:13 scifi Цитата(Rash @ Sep 20 2013, 12:13) не разо... Sep 20 2013, 08:16 adnega Цитата(Rash @ Sep 20 2013, 12:13) не разо... Sep 20 2013, 08:34  scifi Цитата(adnega @ Sep 20 2013, 12:34) Настр... Sep 20 2013, 08:46   adnega Цитата(scifi @ Sep 20 2013, 12:46) Ну да,... Sep 20 2013, 08:51    scifi Цитата(adnega @ Sep 20 2013, 12:51) Все х... Sep 20 2013, 08:55    HHIMERA Цитата(adnega @ Sep 20 2013, 11:51) Все х... Sep 20 2013, 09:04     DmitryM Цитата(HHIMERA @ Sep 20 2013, 13:04) а мн... Sep 20 2013, 09:15 Rash * частота CPU = 168МГц
* Номер - SPI2, SPI3
* ча... Sep 20 2013, 08:45 Rash ЦитатаНужна только передача, как я понял?
нужна и ... Sep 20 2013, 08:54 adnega Цитата(Rash @ Sep 20 2013, 12:54) нужна и... Sep 20 2013, 09:05 Rash Цитата(adnega @ Sep 20 2013, 12:05) Всего... Sep 20 2013, 09:10 Golikov A. ДМА посылающий 1 байт не тоже самое что самому пол... Sep 20 2013, 09:46 adnega Цитата(Golikov A. @ Sep 20 2013, 13:46) А... Sep 20 2013, 10:12 DmitryM Цитата(Golikov A. @ Sep 20 2013, 13:46)
... Sep 20 2013, 11:29 adnega Ну собственно работа SPI с TIM и DMA.
Обращаю вним... Sep 20 2013, 13:48 Rash плавая пауза между байтами думаю не проблема, глав... Sep 20 2013, 14:11 adnega Цитата(Rash @ Sep 20 2013, 18:11) плавая ... Sep 20 2013, 15:17 Golikov A. ну это понятно ДМА то надо дождаться свободной шин... Sep 20 2013, 14:43 Rash adnega, спасибо буду пробовать Sep 23 2013, 06:37
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|