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

 
 
> тормозит DMA - 2, STM32F103
777777
сообщение Oct 13 2011, 04:15
Сообщение #1


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

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Выводится аналоговый сигнал в ЦАП с помощью DMA. Довольно интенсвно, через 264 нс. Пока работает только он, сигнал ровный. Но стоит запрограммировать любую другую периферию с прерываниями, как сигнал начинает тормозиться, увеличивается его период, появляются искажения. Причем только если выполянются прерывания. Как это может быть? Разве DMA не может захватить шину в любой нужный ему момент времени? Или при обработке прерывания запрещаются не только другие прерывания, но и DMA?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
scifi
сообщение Oct 13 2011, 08:22
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Кстати, меня похожий вопрос интересует. Собираюсь выводить на ЦАП 10^7 выборок в секунду. ЦАП внешний, будет висеть на FSMC. Контроллер заложил из серии STM32F200. Если верить описанию bus matrix, там DMA и процессор не должны друг другу мешать, тем более есть FIFO. Надеюсь, не разочаруюсь...
Go to the top of the page
 
+Quote Post
777777
сообщение Oct 13 2011, 10:07
Сообщение #3


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

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(scifi @ Oct 13 2011, 12:22) *
Кстати, меня похожий вопрос интересует. Собираюсь выводить на ЦАП 10^7 выборок в секунду.

10 MHz? И не пытайся.
Цитата(scifi @ Oct 13 2011, 12:22) *
Контроллер заложил из серии STM32F200.

200-й конечно побыстрее немного. Попробуй, нам расскажешь.
Цитата(scifi @ Oct 13 2011, 12:22) *
ЦАП внешний, будет висеть на FSMC.

А зачем FSMC? Проще к порту прицепить и пусть DMA туда кидает слова. Кстати, а ЦАП какой?

Цитата(Flexz @ Oct 13 2011, 12:29) *
С точки зрения процессора бесконечный цикл это обращение исключительно к памяти команд, которое происходит в обход BusMatrix

И правда - ведь ICode сделана отдельной.
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 13 2011, 10:25
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(777777 @ Oct 13 2011, 14:07) *
10 MHz? И не пытайся.

Поясни.

Цитата(777777 @ Oct 13 2011, 14:07) *
200-й конечно побыстрее немного.

Советую поискать 10 различий между STM32F100 и STM32F200. Кое-что нетривиальное добавилось. А именно: bus matrix с одновременным доступом (не блокирующий), DMA FIFO.

Цитата(777777 @ Oct 13 2011, 14:07) *
А зачем FSMC? Проще к порту прицепить и пусть DMA туда кидает слова. Кстати, а ЦАП какой?

Время записи в GPIO неизвестно. Про FSMC гораздо больше ясности. Кроме того, FSMC не будет конфликтовать с другой периферией (см. схему bus matrix). Возможно, попробую и то, и другое.
ЦАП AD5424.
Go to the top of the page
 
+Quote Post
Flexz
сообщение Oct 13 2011, 12:30
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 252
Регистрация: 9-10-08
Из: Московская обл.
Пользователь №: 40 797



Цитата(scifi @ Oct 13 2011, 14:25) *
Время записи в GPIO неизвестно.

Кстати, первое что сделал получив плату с stm32f217 - банальный ногодрыг, 60Мгц вывелись вполне успешно (без цикла, просто большая пачка последовательных записей в регистр)
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 13 2011, 12:35
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Flexz @ Oct 13 2011, 16:30) *
Кстати, первое что сделал получив плату с stm32f217 - банальный ногодрыг, 60Мгц вывелись вполне успешно (без цикла, просто большая пачка последовательных записей в регистр)

Отличная новость! Спасибо.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 777777   тормозит DMA - 2   Oct 13 2011, 04:15
- - Flexz   Наверное дело все-таки не в самих прерываниях, а в...   Oct 13 2011, 07:14
|- - 777777   Цитата(Flexz @ Oct 13 2011, 11:14) Наверн...   Oct 13 2011, 07:47
||- - 777777   Цитата(scifi @ Oct 13 2011, 14:25) Совету...   Oct 13 2011, 12:43
|- - scifi   Цитата(scifi @ Oct 13 2011, 12:22) Кстати...   Oct 25 2011, 09:14
- - Flexz   Цитата(777777 @ Oct 13 2011, 11:47) С точ...   Oct 13 2011, 08:29
- - Юрий_СВ   Цитата(777777 @ Oct 13 2011, 07:15) Вывод...   Oct 13 2011, 09:51
- - Dron_Gus   Вероятно во время входа в прерывание процессор ско...   Oct 15 2011, 15:48
|- - 777777   Цитата(Dron_Gus @ Oct 15 2011, 19:48) Вер...   Oct 17 2011, 05:59
- - ZiB   какая частота ядра?   Oct 16 2011, 04:38
- - Oleg Galizin   Может кроме DMA использовать таймер дополнительно....   Oct 18 2011, 13:02
- - maksimp   Цитата(777777 @ Oct 13 2011, 08:15) Вывод...   Oct 26 2011, 02:55
- - Flexz   Цитата(scifi @ Oct 25 2011, 13:14) Доклад...   Oct 26 2011, 07:30
|- - scifi   Цитата(Flexz @ Oct 26 2011, 11:30) А сам ...   Oct 26 2011, 08:48
- - scifi   Собственно, продолжение отчёта. Добавил сбор данны...   Nov 1 2011, 12:36


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

 


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


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