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

 
 
> STM32 DMA, насколько высок приоритет DMA
dimka76
сообщение Nov 28 2012, 13:47
Сообщение #1


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



Вопрос в том насколько высок приоритет DMA по отношению к другим мастерам на шине AHB ?

Воспрос связан с воспроизведением звука через I2S.
Например, если настал момент отправить очередной байт данных в I2S из памяти и тут ядро тоже решило обратиться к памяти
(ведь выполнение основной части программы не останавливается). Кому в этом случае будет отдан приоритет ?
DMA или ядру ?
Если ядру то из-за запоздалой отправки данных в I2S возникнут искажения в звуке.


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 6)
_Артём_
сообщение Nov 28 2012, 14:02
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(dimka76 @ Nov 28 2012, 15:47) *
Например, если настал момент отправить очередной байт данных в I2S из памяти и тут ядро тоже решило обратиться к памяти
(ведь выполнение основной части программы не останавливается). Кому в этом случае будет отдан приоритет ?
DMA или ядру ?

Приоритет такой вот:
Цитата
2.1.8 BusMatrix
The BusMatrix manages the access arbitration between masters. The arbitration uses a
round-robin algorithm

Go to the top of the page
 
+Quote Post
kan35
сообщение Nov 28 2012, 15:02
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 537
Регистрация: 22-02-06
Пользователь №: 14 594



Я еще добавлю, что у STM32F2/4 у DMA есть FIFO и Burst фичи, при этом 16 битные данные вычитываются за раз по 2 слова. Так что со звуком будет все в порядке.
Go to the top of the page
 
+Quote Post
Мусатов Констант...
сообщение Nov 28 2012, 20:34
Сообщение #4


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

Группа: Участник
Сообщений: 188
Регистрация: 10-10-06
Пользователь №: 21 172



Цитата
у STM32F2/4 у DMA есть FIFO и Burst фичи, при этом 16 битные данные вычитываются за раз по 2 слова

А вам удалось эти фичи запустить? А то что-то у меня не получается. Тут веточка по этому вопросу чуть ниже.

А по делу, даже если смотреть с отправкой по прерыванию, то времени хватит. Допустим у нас скорость предельная 192К. Посылать надо 4 раза за период, т.е. у нас есть 1,3 мкс на то, что бы скормить очередное слово, пока предыдущее сдивигается по регистру - это 218 тактов.
Но все равно хочется использовать DMA.
Go to the top of the page
 
+Quote Post
kan35
сообщение Nov 29 2012, 17:27
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 537
Регистрация: 22-02-06
Пользователь №: 14 594



У меня не с I2S, а с SPI эти фичи работают..
SPI 8 битный, а DMA забирает/кладет по 32 бита за раз. FIFO включено.
Go to the top of the page
 
+Quote Post
dimka76
сообщение Dec 1 2012, 09:50
Сообщение #6


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



Спасибо за ответы.
Буду пытаться реализовывать.


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
Мусатов Констант...
сообщение Dec 1 2012, 10:10
Сообщение #7


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

Группа: Участник
Сообщений: 188
Регистрация: 10-10-06
Пользователь №: 21 172



Если что, обращайся, у меня заработал I2S Receive in slave mode with DMA FIFO double buffer
Go to the top of the page
 
+Quote Post

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

 


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


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