Перейти к содержанию
    

STM32F103ZCT6, 21 канал АЦП + 4 канала PWM

Всем доброе время суток.

Проектирую систему управления, в состав которой входит операция по суммированию 20 источников сигнала (по напряжению), обработка полученного значения и формирование из него четырёх выходных аналоговых сигнала. То есть сумматор на 20 каналов с 4 выходами.

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

Так как в современных микроконтроллерах есть встроенный АЦП и ШИМ, то возникла идея сделать всё устройство на одном микроконтроллере.

Все 20 входов (и один запасной, в сумме 21) завести на микроконтроллер и подключить их к каналам АЦП, реализовав программу, которая последовательно опрашивает каждый канал и выполняет операцию суммирования уже в цифровом виде.

Выходы сделать на основе ШИМ, то есть использовать один таймер и 4 выхода, установив на каждый выход свою скважность.

То есть получается система, которая последовательно оцифровывает 21 вход, считывает значение активности входа (обычный цифровой вход), исходя из этих данный проводит математическую операцию, по результатам выдает на 4 выхода ШИМ сигнал, которой поступает на ФНЧ и формируются 4 аналоговых выхода.

С микроконтроллерами опыта большого не имел (когда-то программировал 8-разрядные pic контроллеры на ассемблере), в основном занимаюсь аналоговой схемотехникой, поэтому хотелось бы получить советы по поводу использования микроконтроллера, можно ли завести на одном контроллере такую периферию и на каком конкретно? Так сложилось, что использовать могу только микроконтроллеры STM. Из поиска вроде бы подходит STM32F103ZCT6.

Подскажите пожалуйста, можно ли реализовать всё что я задумал на данном микроконтроллере?

 

Если кратко, можно ли на STM32F103ZCT6 организовать последовательный опрос 21 канала и оцифровкой каждого, соответственно 21 обычных GPIO и 4 ШИМ выхода?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет, нельзя. Если вы посмотрите на распределение функций по выводам, то увидите, что все 16 входов обоих АЦП разпределены на одни и те же 16 ног корпуса. Т.е. корпус имеет всего 16 аналоговых входов. Можно добавить внешний аналоговый мультиплексор, но я телепатически предположу, что этот вариант вас не устраивает, потому что в этом случае подойдет любой контроллер с АЦП.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

..можно ли на STM32F103ZCT6 организовать последовательный опрос 21 канала и оцифровкой каждого, соответственно 21 обычных GPIO и 4 ШИМ выхода?

 

4 шима юзаю на STM32F4xx, а вот АЦП на 21GPIO - не скажу.

Лучше всего Вам нужно поставить се на комп программку STM32Cube(Ранее назывался MicroXplorer) от ST - именно она

Вам подскажет по возможностям периферии, ножкам и т.п. вещам по любому ARMу из любой линейки ST.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Куб надо ставить. Он вам не только ответ даст, но и готовый код вашей задачи. Код будет так себе, конечно, но если опыта нет, то сгодиться (без математики, просто сбор и выставление данных).

Без куба в голове понять сколько у вас входов, выходов, и как они друг другу будут мешать понять оооочень сложно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет, нельзя.

если речь про STM32F103ZCT6 в tqfp-144 корпусе, то там 3 АЦП и у мультиплексора 21 вход, как оно там потом по АЦП распределено не важно, оцифровать 21 канал можно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если речь про STM32F103ZCT6 в tqfp-144 корпусе, то там 3 АЦП и у мультиплексора 21 вход, как оно там потом по АЦП распределено не важно, оцифровать 21 канал можно.

Только он стоит дороже STM32F303VC при том, что у f3 покруче ядро и периферия

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Только он стоит дороже STM32F303VC при том, что у f3 покруче ядро и периферия

да те же 10$, если искать максимально дешевый МК с 21 АЦП, то тогда вообще какой-нибудь PIC или silabs 8051 за пару $ взять можно, ну или MK02FN64VLH10 за 3$

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если речь про STM32F103ZCT6 в tqfp-144 корпусе, то там 3 АЦП и у мультиплексора 21 вход, как оно там потом по АЦП распределено не важно, оцифровать 21 канал можно.

Судя по даташиту, у всех STM32F103 всего-то 18 каналов АЦП, 2 из которых — внутренние.

Т.е. больше 16 внешних каналов туда никак не запихнуть!

Другой камушек выбирать надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Судя по даташиту, у всех STM32F103 всего-то 18 каналов АЦП, 2 из которых — внутренние.

Т.е. больше 16 внешних каналов туда никак не запихнуть!

Другой камушек выбирать надо.

Обратите внимание, что у ADC3 каналы с 4 по 8 подключены к другим ножкам, чем у ADC1 и ADC2.

Это даёт дополнительные 5 входов в 144-ногих корпусах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И правда, меня с толку картинка 22 (Doc ID 13902 Rev 14, страница 208).

А вот на следующей странице refman'а действительно пишут, что до 21 канала.

Т.е. получается, что можно, скажем, на ADC1 повесить 16 ног, а дополнительные 5 на ADC3.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В озвученном ТС МК есть 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 стараюсь забывать как страшный сон...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за ответы.

Выбрал следующий путь решения проблемы:

Так как мне все эти каналы нужно просуммировать, каждые 5 я суммирую аналоговым сумматором на LM358 (операционник не прецизионный, но большая точность мне не нужна, моделирование дало удовлетворительные результаты, как и готовое устройство), в итоге имею 25 входов и 5 выходов. Именно 5 выходов хочу послать на МК с последующей оцифровкой.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...