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

 
 
> Модулированный сигнал на STM32f407, желательно на 1м таймере...
mantech
сообщение Jan 31 2014, 18:27
Сообщение #1


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Есть такая задача, получить аппаратно модулированный сигнал - 1000Гц промодулированный 48КГц.

Желательно на одном таймере (tim8) или если никак не получается, то на 2х (tim14 или tim3) Остальные все заняты biggrin.gif

Пока мысли запутались, может кто знает, можно-ли получить прерывание от канала таймера 8, который работает в режиме ШИМ? Тогда можно попробовать этим прерыванием "торкать" DMA, который будет циклически крутить буфер из 48 элементов, половина которых =0, а вторая 128...

ЗЫ. Хотя может есть проще варианты??
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
scifi
сообщение Feb 2 2014, 06:04
Сообщение #2


Гуру
******

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



Цитата(mantech @ Jan 31 2014, 22:27) *
Пока мысли запутались, может кто знает, можно-ли получить прерывание от канала таймера 8, который работает в режиме ШИМ? Тогда можно попробовать этим прерыванием "торкать" DMA, который будет циклически крутить буфер из 48 элементов, половина которых =0, а вторая 128...

ЗЫ. Хотя может есть проще варианты??

Отличный вариант, я бы так и сделал. Конечно, прерывание или запрос DMA можно получать и в режиме ШИМ. Проще, мне кажется, и не придумать.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Feb 2 2014, 16:39
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(scifi @ Feb 2 2014, 12:04) *
Отличный вариант, я бы так и сделал. Конечно, прерывание или запрос DMA можно получать и в режиме ШИМ. Проще, мне кажется, и не придумать.

Придумать rolleyes.gif
Это получается: таймер+DMA и ещё + 48 байт(слов?) в ОЗУ.
ТС-у ведь нужен цифровой сигнал: 0, 1, 0, 1, .... как я понял.
Не знаком с периферией STM32, но думаю проще сделать по-другому:
SPI(master)+DMA. Если не понятно, поясню:
Настраиваем SPI на битовую частоту 48*2 кГц.
DMA настраиваем в flip-flop режиме (первый буфер - передача 6 раз байта 0x55, второй буфер - передача 6 раз байта 0 (или 0xFF по желанию)).
Сигнал получаем с MOSI.
Пересылок по шине в 8 раз меньше, а так как у ТС CPU и так загружен (>80%) то это важно. Если использовать 16-битный режим SPI, то можно ещё в 2 раза уменьшить кол-во пересылок.
К тому-же - при связке таймер+DMA, так как состояние пина должно быть изменено в тот момент, когда таймер формирует событие, то любые задержки из-за загрузки шины будут также
приводить к дрожанию фронтов сигнала. В связке-же SPI+DMA, в SPI имеется буферизация, поэтому такая связка гораздо устойчивее к загрузке шины.
Всё
Go to the top of the page
 
+Quote Post
SSerge
сообщение Feb 2 2014, 17:16
Сообщение #4


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

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Цитата(jcxz @ Feb 2 2014, 23:39) *
Это получается: таймер+DMA и ещё + 48 байт(слов?) в ОЗУ.

У TIM8 есть регистр RCR, поэтому можно обойтись буфером DMA на два слова (4 байта).
Через каждые 24 периода (0.5мс) перезагружать регистр CCRx.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
mantech
сообщение Feb 2 2014, 19:23
Сообщение #5


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(SSerge @ Feb 2 2014, 21:16) *
У TIM8 есть регистр RCR, поэтому можно обойтись буфером DMA на два слова (4 байта).
Через каждые 24 периода (0.5мс) перезагружать регистр CCRx.


Это я понял, мне больше интересно, как "подопнуть" дма этим-же таймером...
Go to the top of the page
 
+Quote Post
scifi
сообщение Feb 2 2014, 19:33
Сообщение #6


Гуру
******

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



Цитата(mantech @ Feb 2 2014, 23:23) *
Это я понял, мне больше интересно, как "подопнуть" дма этим-же таймером...

Предлагаю почитать мануал. Точно помню, что там есть ответ на этот вопрос :-)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- mantech   Модулированный сигнал на STM32f407   Jan 31 2014, 18:27
- - maksim-starcity   Можно так сделать. Вариант 1: гуглите TIM DAC DMA ...   Feb 1 2014, 18:53
|- - mantech   Цитата(maksim-starcity @ Feb 1 2014, 22...   Feb 1 2014, 19:07
- - maksim-starcity   Зачем такие сложности? у Вас 180 МГц? В прескейлер...   Feb 1 2014, 20:21
- - Golikov A.   он же модулирует, я так понимаю ему надо чтобы бы...   Feb 1 2014, 20:29
- - maksim-starcity   Сорри, неправильно понял суть вопроса) Тогда ЦАП и...   Feb 1 2014, 20:35
|- - mantech   Цитата(maksim-starcity @ Feb 2 2014, 00...   Feb 2 2014, 05:46
|- - Axel   Цитата(maksim-starcity @ Feb 2 2014, 00...   Feb 3 2014, 05:34
- - mantech   Цитата(scifi @ Feb 2 2014, 10:04) Конечно...   Feb 2 2014, 15:30
|- - mantech   Цитата(scifi @ Feb 2 2014, 23:33) Предлаг...   Feb 3 2014, 05:00
- - SSerge   Цитата(mantech @ Feb 3 2014, 02:23) Это я...   Feb 3 2014, 10:23


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

 


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


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