|
|
  |
STM32F103ZCT6, 21 канал АЦП + 4 канала PWM |
|
|
|
May 2 2015, 19:24
|
Частый гость
 
Группа: Участник
Сообщений: 106
Регистрация: 1-05-13
Пользователь №: 76 699

|
Всем доброе время суток. Проектирую систему управления, в состав которой входит операция по суммированию 20 источников сигнала (по напряжению), обработка полученного значения и формирование из него четырёх выходных аналоговых сигнала. То есть сумматор на 20 каналов с 4 выходами. Можно было бы сделать аналоговый сумматор, но сложность заключается в том, что функции выходных сигналов зависят не только от начальных значений, но и от того, сколько каналов активно на данный момент времени. При проектировании получалось что без логики управления не обойтись и микроконтроллер был нужен в любом случае. Так как в современных микроконтроллерах есть встроенный АЦП и ШИМ, то возникла идея сделать всё устройство на одном микроконтроллере. Все 20 входов (и один запасной, в сумме 21) завести на микроконтроллер и подключить их к каналам АЦП, реализовав программу, которая последовательно опрашивает каждый канал и выполняет операцию суммирования уже в цифровом виде. Выходы сделать на основе ШИМ, то есть использовать один таймер и 4 выхода, установив на каждый выход свою скважность. То есть получается система, которая последовательно оцифровывает 21 вход, считывает значение активности входа (обычный цифровой вход), исходя из этих данный проводит математическую операцию, по результатам выдает на 4 выхода ШИМ сигнал, которой поступает на ФНЧ и формируются 4 аналоговых выхода. С микроконтроллерами опыта большого не имел (когда-то программировал 8-разрядные pic контроллеры на ассемблере), в основном занимаюсь аналоговой схемотехникой, поэтому хотелось бы получить советы по поводу использования микроконтроллера, можно ли завести на одном контроллере такую периферию и на каком конкретно? Так сложилось, что использовать могу только микроконтроллеры STM. Из поиска вроде бы подходит STM32F103ZCT6. Подскажите пожалуйста, можно ли реализовать всё что я задумал на данном микроконтроллере?
Если кратко, можно ли на STM32F103ZCT6 организовать последовательный опрос 21 канала и оцифровкой каждого, соответственно 21 обычных GPIO и 4 ШИМ выхода?
|
|
|
|
|
May 3 2015, 13:50
|
Участник

Группа: Участник
Сообщений: 20
Регистрация: 9-03-06
Пользователь №: 15 099

|
Вам подойдет серия STM32F3. Рекомендую обратить внимание конкретно на STM32F303VC: 4 АЦП на 5 мегавыборок/с, 39 аналоговых каналов. И самое главное: копеешная отладочная плата STM32F3DISCOVERY.
|
|
|
|
|
May 5 2015, 03:34
|
Участник

Группа: Участник
Сообщений: 20
Регистрация: 9-03-06
Пользователь №: 15 099

|
Цитата(_pv @ May 4 2015, 22:29)  если речь про STM32F103ZCT6 в tqfp-144 корпусе, то там 3 АЦП и у мультиплексора 21 вход, как оно там потом по АЦП распределено не важно, оцифровать 21 канал можно. Только он стоит дороже STM32F303VC при том, что у f3 покруче ядро и периферия
|
|
|
|
|
May 5 2015, 08:28
|
Знающий
   
Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250

|
Цитата(_pv @ May 4 2015, 18:29)  если речь про STM32F103ZCT6 в tqfp-144 корпусе, то там 3 АЦП и у мультиплексора 21 вход, как оно там потом по АЦП распределено не важно, оцифровать 21 канал можно. Судя по даташиту, у всех STM32F103 всего-то 18 каналов АЦП, 2 из которых — внутренние. Т.е. больше 16 внешних каналов туда никак не запихнуть! Другой камушек выбирать надо.
|
|
|
|
|
May 5 2015, 09:05
|
Профессионал
    
Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528

|
Цитата(Эдди @ May 5 2015, 15:28)  Судя по даташиту, у всех STM32F103 всего-то 18 каналов АЦП, 2 из которых — внутренние. Т.е. больше 16 внешних каналов туда никак не запихнуть! Другой камушек выбирать надо. Обратите внимание, что у ADC3 каналы с 4 по 8 подключены к другим ножкам, чем у ADC1 и ADC2. Это даёт дополнительные 5 входов в 144-ногих корпусах.
--------------------
Russia est omnis divisa in partes octo.
|
|
|
|
|
May 5 2015, 09:55
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
В озвученном ТС МК есть 21 внешний вход АЦП (см. DS): Цитата Three 12-bit analog-to-digital converters are embedded into STM32F103xC, STM32F103xD and STM32F103xE performance line devices and each ADC shares up to 21 external channels АDC123 - 0,1,2,3,10,11,12,13 ADC12 - 4,5,6,7,8,9,14,15 ADC3 - 4,5,6,7,8 Но я бы воспользовался советом насчет STM32F303VC. В партии от 10 штук: STM32F303VC - $5.5430 против STM32F103ZCT6 - $6.8527, что примерно на 20% дешевле. Плюс ядро Cortex-M4F и куча других плюшек (ака, ремап периферии, встроенные операционные усилители и компараторы). От использования "аналоговой" серии STM32F3xx самые приятные впечатления. Серию F1xx стараюсь забывать как страшный сон...
|
|
|
|
|
Jul 3 2015, 13:51
|
Частый гость
 
Группа: Участник
Сообщений: 106
Регистрация: 1-05-13
Пользователь №: 76 699

|
Спасибо за ответы. Выбрал следующий путь решения проблемы: Так как мне все эти каналы нужно просуммировать, каждые 5 я суммирую аналоговым сумматором на LM358 (операционник не прецизионный, но большая точность мне не нужна, моделирование дало удовлетворительные результаты, как и готовое устройство), в итоге имею 25 входов и 5 выходов. Именно 5 выходов хочу послать на МК с последующей оцифровкой. Использую для оцифровки STM32F103VBT6, в нем 6 ножек посадил на АЦП (один на переменный резистор как тестовый). Это входы PA0..PA5. Так получается, что сигнал с PA0 и PA1 оцифровывается успешно, а вот с остальных считываются нули. Побробнее тема обсуждается здесь: http://electronix.ru/forum/index.php?showtopic=128992
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|