Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32F103 Запуск нескольких АЦП на разных скоростях
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
misyachniy
Для металлодетектора нужно запустить несколько низко скоростных (например 1 раз в секунду) каналов АЦП и два высокоскоростных.

Низко скоростные я развел на один АЦП, высоко скоростные на другой.

Сбор данных о напряжении батареи, амплитуде на катушке и т.д. не критичен по равномерности.
А для высокоскоростных желательна равномерная непрерывная выборка.
В микроконтроллере имеются контроллер прерываний и ПДП.
Нужен документ где написано, что имеет больший приоритет ПДП или прерывания? или аппнота как корректно получить желаемое.
Tanya
Цитата(misyachniy @ Aug 7 2014, 19:43) *
Нужен документ где написано, что имеет больший приоритет ПДП или прерывания? или аппнота как корректно получить желаемое.

Документ для своего контроллера ищите сами...
Но скажу, что ПДП идет сам собой. И естественно, быстрее всего. Иначе зачем бы он был нужен... Скорость попадания в нужное место ограничивается скоростью работы АЦП.
mantech
Цитата(misyachniy @ Aug 7 2014, 18:43) *
Нужен документ где написано, что имеет больший приоритет ПДП или прерывания?


Ну, а сами-то подумайте, что работает равномернее? ДМА зависит только от занятости одной из системных шин, а прерывания от многих факторов, даже если выставите высокий приоритет, все равно это программная обработка, а ДМА - аппаратная...
misyachniy
Цитата(mantech @ Aug 7 2014, 20:41) *
Ну, а сами-то подумайте, что работает равномернее? ДМА зависит только от занятости одной из системных шин, а прерывания от многих факторов, даже если выставите высокий приоритет, все равно это программная обработка, а ДМА - аппаратная...


Ну как сказать, мне же не только данные перегнать нужно. Нужно еще отследить окончание пересылки массива, чтобы перепрограммировать ПДП на другой буфер.
То есть нужно как-то сшивать массивы.

На процессоры от Intel встречал диаграммы состояния процессора.
В них четко видно в каком порядке процессор "рассматривает" прерывания, исключения, запрос захвата шины.
Golikov A.
у многих процов ДМА можно задавать цепочками, как закончила работу одна запись переключается на другую. Многие пользуются этим для автоматического переключения с буфера на буфер. Поглядите описание вашего проца, может там также?

Время обработки прерываний определено и описано, сколько тактов от появления флага до входа в прерывание, за исключением времени пока прерывание было запрещено. Так же строго определено приоритет и доступ ДМА к шине, из этого также можно определить интересующие вас времянку.

В общем читайте мануал...
KnightIgor
Цитата(misyachniy @ Aug 7 2014, 17:43) *
Для металлодетектора нужно запустить несколько низко скоростных (например 1 раз в секунду) каналов АЦП и два высокоскоростных.
Низко скоростные я развел на один АЦП, высоко скоростные на другой.
Сбор данных о напряжении батареи, амплитуде на катушке и т.д. не критичен по равномерности.
А для высокоскоростных желательна равномерная непрерывная выборка.

"Низкоскоростные" можно запускать периодическим процессом программно. "Высокоскоростные" - таймером, что обеспечит "равномерность" выборок.
При многоканальном сборе данных - режиме "сканированиия" - данные из ADC должны выбираться с помощью DMA, чтобы избежать потери данных. Дополнительно стОит применить двойную буферизацию. Я как раз недавно занимался этой темой, получил пару стОящих советов: см. тему.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.