Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблемы с АЦП STM32F107
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Mustik
Использую встраиваемый модуль TE-STM32F107 от терраэлектроники. Опорное напряжение заведено 3.3В.
Использую канал 10 АЦП1 (ножка PC0) как регулярный канал. PC0 настраиваю как AIN. Нога висит в воздухе - выходит на разъем. Проект взял из C:\Program Files (x86)\IAR Systems\Embedded Workbench 5.4\arm\examples\ST\STM32F10x\STM32F10xFWLib\FWLib\examples\ADC\ADC1_DMA\
В проекте заменил аналоговый вход с PC4 на PC0, т.к. PC4 выходит на ethernet.
До начала измерения на ножке висит 0, только начинаю измерять - сразу 1.6 ... 1.65 В
Пользуюсь IAR 5.40
Запуск осуществляю с помощью библиотечной функции
Код
ADC_SoftwareStartConvCmd(ADC1, ENABLE);

Пробовал перенастраивать на другие свободные порты, такой же косяк.
Что я не учел?
редактор
Возможно при конфигурации вывода не отключены притяжки в + и в -. Уж больно результат близок к половине диапазона.
scifi
Цитата(Mustik @ Jul 30 2012, 15:23) *
До начала измерения на ножке висит 0

В каком смысле висит? В воздухе болтается?
Mustik
Цитата(scifi @ Jul 30 2012, 14:56) *
В каком смысле висит? В воздухе болтается?

0 Вольт

Цитата(редактор @ Jul 30 2012, 14:39) *
Возможно при конфигурации вывода не отключены притяжки в + и в -. Уж больно результат близок к половине диапазона.

По-подробнее, пожалуйста.
Порт настраиваю как AIN
Код
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_Init(GPIOC, &GPIO_InitStructure);


Вообщем, разобрался.
Причина крылась в том, что, если ничего ко входу АЦП не подключено, то на выводе будет примерно 1.6В
Подключил источник питания и погонял от 0 до 3.3В. Все корректно работает.
Всем спасибо за помощь.
scifi
Цитата(Mustik @ Jul 30 2012, 16:29) *
Причина крылась в том, что, если ничего ко входу АЦП не подключено, то на выводе будет примерно 1.6В

То есть действительно в воздухе висит. Я как бы на это и намекал: напряжение цепи, весящей в воздухе, плавает. Для того чтобы измерить напряжение цепи, висящей в воздухе, нужен вольтметр с входным сопротивлением порядка гигаом. У вас, видимо, не такой был, так что 0 вольт - это была фикция.

Update:
Да, забыл добавить: при выборке АЦП коммутирует на вход ёмкость выборки. Если вход плавает, то на нём появится потенциал с этой ёмкости (разбавленный ёмкостью входа, конечно). Если АЦП сканирует несколько входов, то этот потенциал будет перенесён с предыдущего просканированного входа. Ну а во влажную погоду утечки по плате сделают всё это ещё более интересным. Как-то так.
Mustik
Цитата(scifi @ Jul 30 2012, 15:42) *
То есть действительно в воздухе висит. Я как бы на это и намекал: напряжение цепи, весящей в воздухе, плавает. Для того чтобы измерить напряжение цепи, висящей в воздухе, нужен вольтметр с входным сопротивлением порядка гигаом. У вас, видимо, не такой был, так что 0 вольт - это была фикция.

Update:
Да, забыл добавить: при выборке АЦП коммутирует на вход ёмкость выборки. Если вход плавает, то на нём появится потенциал с этой ёмкости (разбавленный ёмкостью входа, конечно). Если АЦП сканирует несколько входов, то этот потенциал будет перенесён с предыдущего просканированного входа. Ну а во влажную погоду утечки по плате сделают всё это ещё более интересным. Как-то так.

Спасибо за помощь.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.