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

 
 
 
Reply to this topicStart new topic
> STM32F103ZCT6, 21 канал АЦП + 4 канала PWM
AntiDriver
сообщение May 2 2015, 19:24
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 106
Регистрация: 1-05-13
Пользователь №: 76 699



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

Если кратко, можно ли на STM32F103ZCT6 организовать последовательный опрос 21 канала и оцифровкой каждого, соответственно 21 обычных GPIO и 4 ШИМ выхода?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение May 3 2015, 05:21
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



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


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
kolobok0
сообщение May 3 2015, 05:30
Сообщение #3


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(AntiDriver @ May 2 2015, 22:24) *
..можно ли на STM32F103ZCT6 организовать последовательный опрос 21 канала и оцифровкой каждого, соответственно 21 обычных GPIO и 4 ШИМ выхода?


4 шима юзаю на STM32F4xx, а вот АЦП на 21GPIO - не скажу.
Лучше всего Вам нужно поставить се на комп программку STM32Cube(Ранее назывался MicroXplorer) от ST - именно она
Вам подскажет по возможностям периферии, ножкам и т.п. вещам по любому ARMу из любой линейки ST.
Go to the top of the page
 
+Quote Post
SMaster
сообщение May 3 2015, 13:50
Сообщение #4


Участник
*

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



Вам подойдет серия STM32F3. Рекомендую обратить внимание конкретно на STM32F303VC: 4 АЦП на 5 мегавыборок/с, 39 аналоговых каналов. И самое главное: копеешная отладочная плата STM32F3DISCOVERY.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение May 4 2015, 06:06
Сообщение #5


Гуру
******

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



Куб надо ставить. Он вам не только ответ даст, но и готовый код вашей задачи. Код будет так себе, конечно, но если опыта нет, то сгодиться (без математики, просто сбор и выставление данных).
Без куба в голове понять сколько у вас входов, выходов, и как они друг другу будут мешать понять оооочень сложно.
Go to the top of the page
 
+Quote Post
_pv
сообщение May 4 2015, 15:29
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(Сергей Борщ @ May 3 2015, 12:21) *
Нет, нельзя.

если речь про STM32F103ZCT6 в tqfp-144 корпусе, то там 3 АЦП и у мультиплексора 21 вход, как оно там потом по АЦП распределено не важно, оцифровать 21 канал можно.
Go to the top of the page
 
+Quote Post
SMaster
сообщение May 5 2015, 03:34
Сообщение #7


Участник
*

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



Цитата(_pv @ May 4 2015, 22:29) *
если речь про STM32F103ZCT6 в tqfp-144 корпусе, то там 3 АЦП и у мультиплексора 21 вход, как оно там потом по АЦП распределено не важно, оцифровать 21 канал можно.

Только он стоит дороже STM32F303VC при том, что у f3 покруче ядро и периферия
Go to the top of the page
 
+Quote Post
_pv
сообщение May 5 2015, 05:32
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(SMaster @ May 5 2015, 10:34) *
Только он стоит дороже STM32F303VC при том, что у f3 покруче ядро и периферия

да те же 10$, если искать максимально дешевый МК с 21 АЦП, то тогда вообще какой-нибудь PIC или silabs 8051 за пару $ взять можно, ну или MK02FN64VLH10 за 3$
Go to the top of the page
 
+Quote Post
Эдди
сообщение May 5 2015, 08:28
Сообщение #9


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата(_pv @ May 4 2015, 18:29) *
если речь про STM32F103ZCT6 в tqfp-144 корпусе, то там 3 АЦП и у мультиплексора 21 вход, как оно там потом по АЦП распределено не важно, оцифровать 21 канал можно.

Судя по даташиту, у всех STM32F103 всего-то 18 каналов АЦП, 2 из которых — внутренние.
Т.е. больше 16 внешних каналов туда никак не запихнуть!
Другой камушек выбирать надо.
Go to the top of the page
 
+Quote Post
SSerge
сообщение May 5 2015, 09:05
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 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.
Go to the top of the page
 
+Quote Post
Эдди
сообщение May 5 2015, 09:42
Сообщение #11


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



И правда, меня с толку картинка 22 (Doc ID 13902 Rev 14, страница 208).
А вот на следующей странице refman'а действительно пишут, что до 21 канала.
Т.е. получается, что можно, скажем, на ADC1 повесить 16 ног, а дополнительные 5 на ADC3.
Go to the top of the page
 
+Quote Post
adnega
сообщение May 5 2015, 09:55
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 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 стараюсь забывать как страшный сон...
Go to the top of the page
 
+Quote Post
AntiDriver
сообщение Jul 3 2015, 13:51
Сообщение #13


Частый гость
**

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 17th June 2025 - 09:00
Рейтинг@Mail.ru


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