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

 
 
> Sinus 2kHz на К1986ВЕ92QI, Использование DMA+DAC
Konrad
сообщение Sep 6 2016, 19:46
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 202
Регистрация: 7-04-08
Пользователь №: 36 555



Коллеги, нужен совет.

Хочу с помощью имеющихся в МК К1986ВЕ92QI ЦАП и DMA генерировать синус 2 кГц.
Для своих целей я задействовал таймер 1. Когда происходит событие CNT=ARR, формируется запрос DMA, и DMA-контроллер должен очередное табличное значение функции отправить в ЦАП.
У контроллера DMA есть несколько режимов работы: основной, автозапрос, пинг-понг и др. Из документации не совсем ясна разница между ними, но в ходе экспериментов я выяснил, что в режимах основной и автозапрос при поступлении от таймера одиночного запроса, контроллер DMA пересылает подряд в ЦАП весь массив значений, чего мне не нужно... А вот в режиме пинг-понг в ответ на запрос происходит пересылка одного значения и декремент счетчика числа передач. В итоге я остановился на режиме пинг-понг, и всё работает, но есть одно "но", которое меня смущает...
По завершении цикла DMA счетчик передач становится = 0, и чтобы зациклить процесс приходится разрешать прерывание от DMA и в нем переинициализировать управляющие слова основной и альтернативной структур DMA-канала. В принципе, это не фатально, в моем случае прерывание возникает раз в 500 мкс, но в примерах для STM32, что я встречал, прерывания не используются - только инициализация и всё...
Например:
http://chipspace.ru/stm32-dac-3/

Кто-нибудь может сказать: можно ли на этом МК решить мою задачу без использования прерывания от DMA? Так чтобы синус формировалсяисключительноаппаратными средствами.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Konrad   Sinus 2kHz на К1986ВЕ92QI   Sep 6 2016, 19:46
- - amiller   Цитата(Konrad @ Sep 6 2016, 23:46) По зав...   Sep 7 2016, 03:25
- - ViKo   А еще у STM32 есть прерывание на половине буфера П...   Sep 7 2016, 05:08
- - jcxz   Цитата(Konrad @ Sep 7 2016, 01:46) но в п...   Sep 7 2016, 06:34
|- - ViKo   Цитата(jcxz @ Sep 7 2016, 09:34) Я могу в...   Sep 7 2016, 08:25
|- - jcxz   Цитата(ViKo @ Sep 7 2016, 14:25) Так, мож...   Sep 7 2016, 08:33
- - редактор   Не обязательно использовать прерывание, можно пере...   Sep 7 2016, 07:26
- - HardEgor   В примерах в Milandr.MDR1986BExx.1.4.2.pack есть г...   Sep 7 2016, 08:23
|- - Konrad   Цитата(HardEgor @ Sep 7 2016, 12:23) В пр...   Sep 7 2016, 10:26
|- - jcxz   Цитата(Konrad @ Sep 7 2016, 16:26) Ну, эт...   Sep 7 2016, 11:21
|- - HardEgor   Цитата(Konrad @ Sep 7 2016, 17:26) Спасиб...   Sep 7 2016, 17:45
- - редактор   ЦитатаИмеющий то же самое ядро Cortex-M4? Это М3.Н...   Sep 7 2016, 12:22
|- - jcxz   Цитата(редактор @ Sep 7 2016, 18:22) Если...   Sep 7 2016, 12:46
- - Obam   А почему никто не посоветовал обратиться за поддер...   Sep 7 2016, 13:06
- - VAI   Ещё на хабре был цикл статей с общим названием ...   Sep 7 2016, 18:07
- - Lerk   Цитата(Konrad @ Sep 6 2016, 22:46) Коллег...   Sep 8 2016, 07:30
- - Konrad   Цитата(Lerk @ Sep 8 2016, 11:30) Если вам...   Sep 9 2016, 10:02
- - Lerk   Цитата(Konrad @ Sep 9 2016, 13:02) в точк...   Sep 12 2016, 07:05
- - Konrad   Цитата(Lerk @ Sep 12 2016, 11:05) Вероятн...   Sep 16 2016, 18:14


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

 


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


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