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

 
 
> STM32F103 Запуск нескольких АЦП на разных скоростях
misyachniy
сообщение Aug 7 2014, 15:43
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454



Для металлодетектора нужно запустить несколько низко скоростных (например 1 раз в секунду) каналов АЦП и два высокоскоростных.

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

Сбор данных о напряжении батареи, амплитуде на катушке и т.д. не критичен по равномерности.
А для высокоскоростных желательна равномерная непрерывная выборка.
В микроконтроллере имеются контроллер прерываний и ПДП.
Нужен документ где написано, что имеет больший приоритет ПДП или прерывания? или аппнота как корректно получить желаемое.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
Tanya
сообщение Aug 7 2014, 16:14
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



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

Документ для своего контроллера ищите сами...
Но скажу, что ПДП идет сам собой. И естественно, быстрее всего. Иначе зачем бы он был нужен... Скорость попадания в нужное место ограничивается скоростью работы АЦП.
Go to the top of the page
 
+Quote Post
mantech
сообщение Aug 7 2014, 17:41
Сообщение #3


Гуру
******

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



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


Ну, а сами-то подумайте, что работает равномернее? ДМА зависит только от занятости одной из системных шин, а прерывания от многих факторов, даже если выставите высокий приоритет, все равно это программная обработка, а ДМА - аппаратная...
Go to the top of the page
 
+Quote Post
misyachniy
сообщение Aug 7 2014, 18:02
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454



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


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

На процессоры от Intel встречал диаграммы состояния процессора.
В них четко видно в каком порядке процессор "рассматривает" прерывания, исключения, запрос захвата шины.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 7 2014, 19:20
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



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

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

В общем читайте мануал...
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Aug 8 2014, 06:51
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



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

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

Сообщение отредактировал KnightIgor - Aug 8 2014, 06:52
Go to the top of the page
 
+Quote Post

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

 


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


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