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

 
 
> Пауза между байтами в SPI DMA, STM32F4xx
Rash
сообщение Sep 19 2013, 07:25
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 639
Регистрация: 5-09-05
Пользователь №: 8 231



Приветствую.
Может кто нибудь подсказать возможно ли сделать паузу между байтами в SPI при использовании DMA, STM32F4xx? например совместно с каким либо таймером. А то многие медленные мс требуют паузы между байтами несколько сотен нсек и для работы с ними по DMA приходится понижать частоту до 1-2 МГц, хотя сами они держат до 8 МГц при побайтовом вычитывании. Мк STM32F4xx.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Rash
сообщение Sep 19 2013, 14:42
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 639
Регистрация: 5-09-05
Пользователь №: 8 231



adnega, Задержка байтами в SPI нужна конечно меньше чем tNXT расстояние между двумя соседними ФРОНТАМИ, но если посылать SCK постоянно (при использовании DMA) например с частотой 5МГц, то время tNXT уже не уложиться в требуемые 200 нсек, и часть данных изказиться. Но если Читать данные без DMA с проверкой флагов состояния SPI, на всё тех же 5 МГц, то все данные будут правильные, т.к. есть время на выполнение ассемблерных инструкций и всё укладывается в 200 нсек. Проверено лог. анализатором. Есть ещё и другие микросхемы для которых это время должно быть > 250 нсек.
Также в SPI есть чёткие предделители частоты. И получается большой шаг между выбором частоты SCK.
В результате при использовании DMA для таких микр. получается время вычитывания будет в несколько раз > если это сделать по прерываниям или с ожиданием флагов.

А теперь давайте по существу вопроса. Я просил рассказать какие есть возможности сделать задержку между байтами (если они есть), а не разъяснить как работать с какой либо микрой. Я таких возможностей пока не нашёл.
Go to the top of the page
 
+Quote Post
adnega
сообщение Sep 19 2013, 15:08
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(Rash @ Sep 19 2013, 18:42) *
А теперь давайте по существу вопроса. Я просил рассказать какие есть возможности сделать задержку между байтами (если они есть), а не разъяснить как работать с какой либо микрой. Я таких возможностей пока не нашёл.

У STM я таких возможностей не видел.

Добавлю: сейчас посмотрел на STM32F3xx (у них SPI другой)
Цитата
SPI special features
26.4.1 NSS pulse mode
This mode is activated by the NSSP bit in the SPIx_CR1 register and it takes effect only if
the SPI interface is configured as Motorola SPI master with capture on the first edge
(SPIx_CR1 CPHA = 0). When activated, an NSS pulse is generated between two
consecutive data frame transfers when NSS stays at high level for the duration of one clock
period at least. This mode allows the slave to latch data. NSSP pulse mode is designed for
applications with a single master-slave pair.


На картинке таки вставляет один пробел в SCK, но не знаю будет ли работать с DMA.
Могу как-нить попробовать, или F3 для Вас не вариант.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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   это зависимости на какой частоте запустить SPI. Пр...   Sep 19 2013, 13:52
|- - adnega   Цитата(Rash @ Sep 19 2013, 17:52) это зав...   Sep 19 2013, 14:22
|- - DmitryM   Цитата(adnega @ Sep 19 2013, 18:22) Повто...   Sep 19 2013, 14:36
|- - DmitryM   Цитата(Rash @ Sep 19 2013, 18:42) А тепер...   Sep 19 2013, 14:45
- - 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


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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 19:02
Рейтинг@Mail.ru


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