ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
27 сентября
1434152
Yurasvs (10.05.2024 14:44, просмотров: 87)
Чего-то запутался в режимах АЦП STM32F4. Есть 6 входных сигналов, подведенных к разным ножкам микроконтроллера. Использую 2 АЦП, запускаемые одновременно от таймера с определенной частотой. Есть требование, чтобы 2 канала из этих 6ти сэмплировались одновременно, остальные неважно. Потому 2 АЦП, а не один. Хотелось бы оцифровать 3 пары сигналов 5 раз, усреднить результаты по каждому из 6 каналов и после этого всего 1 раз вызвать прерывание, что данные готовы. Допустим 

один

АЦП оцифровывает каналы 1, 3, 5, второй 2, 4, 6. Каналы 1 и 2 будут сэмплироваться одновременно, что и требуется. Пока надумал использовать регулярный режим, в первый АЦП прописать последовательность каналов 135135135135135, во второй 246246246246246, данные измерений на ходу выгружаются в массивы с помощью ДМА, и в конце последовательности формируется прерывание EOS, по которому проц самостоятельно усредняет данные из двух массивов и получает результаты, 6 отфильтрованных значений. Но в камне F4 есть встроенный оверсэмплер для АЦП, только я не могу понять, как его прикрутить к этой задаче. Фильтрованные данные нужны 16000раз в секунду, оцифровка соответственно 80000, не хотелось бы беспокоить проц прерываниями с частотой более 16килогерц. Есть какой-то более правильный способ?