ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
11 июля
395890
vmp (21.03.2013 10:33, просмотров: 9060)
STM32F4xx. Скорость реакции DMA. Померил скорость реакции DMA путем измерения задержки между входным воздействием и реакцией на него через контроллер DMA. Подаю сигнал на один вывод, наблюдаю реакцию на другом. Путь сигнала: Вход TIM1_ETR -> событие TIM1_TRIG -> DMA2 mem-perif -> GPIOD. Подробности эксперимента. На плате discovery соединил вход PE7 (TIM1_ETR) с соседним выводом (PE8). Запрограммировал PE8 на выход, PE7 - на вход AF1, PD13 - на выход, скорость High. Таймер 1 назначил генерить запрос DMA по переднему фронту на TIM1_ETR (TIM1->DIER = TIM1_DIER_TDE). Соответственно DMA2 настроил на пересылку память-периферия по запросу от TIM1_TRIG. Источник - ячейка ОЗУ с числом 1<<13, приемник - GPIOD->BSRRL. Тактовая частота процессора = 168 МГц. В программе машу ножкой PE8, осциллографом смотрю сигналы на PE7 и PD13. Так вот - задержка между фронтами составляет около 45 нс, если верить осциллографу Rigol DS1102CD. Переаодя на такты - это примерно 7-8 тактов частоты процессора. P.S. Кто знает, можно ли в STM32 одновременно программировать разные dma stream на использование запросов от одного и того же источника? Т.е. по одному событию запустить две dma пересылки в разные адреса.