Easyelectronics.ru

Электроника для всех
Текущее время: 29 окт 2020, 20:59

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: STM32F107. Проблемы с АЦП
СообщениеДобавлено: 27 июл 2012, 17:35 
Только пришел

Зарегистрирован: 28 апр 2012, 14:12
Сообщения: 8
Использую канал 10 АЦП1 (ножка PC0) как регулярный канал. PC0 настраиваю как AIN.
Собственно, после запуска преобразования АЦП, на ножке появляется 1.6 В. Запуск осуществляю с помощью библиотечной функции
Код:
ADC_SoftwareStartConvCmd(ADC1, ENABLE);

Что я не учел?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F107. Проблемы с АЦП
СообщениеДобавлено: 27 июл 2012, 19:36 
Заглядывает иногда

Зарегистрирован: 21 окт 2011, 09:25
Сообщения: 71
Откуда: Уфа
Вот мой код:

Код:

/* Enable ADC1 clock */
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);

   /*Запускаем тактирование АЦП*/
   RCC_HSICmd(ENABLE);// Enable The HSI (16Mhz)
   /* Check that HSI oscillator is ready */
   while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);

void ADC1_Init(void)
{

   /* Configure PA.1 (ADC Channel1) in analog mode */
   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
   GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AN;
   GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_NOPULL;
   GPIO_Init(GPIOA, &GPIO_InitStructure);

   ADC_StructInit(&ADC_InitStructure);
   ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;
   ADC_InitStructure.ADC_ScanConvMode = ENABLE;
   ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
   ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;
   ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
   ADC_InitStructure.ADC_NbrOfConversion = 1;
   ADC_Init(ADC1 , &ADC_InitStructure);

   /* Enable ADC1 */
    ADC_Cmd(ADC1, ENABLE);
    /* Wait until the ADC1 is ready */
   while(ADC_GetFlagStatus(ADC1, ADC_FLAG_ADONS) == RESET){}



}

uint16_t ADC_GetValue(uint8_t channel)
{
   uint16_t ADCdata;
   /* ADC1 regular channel_1 configuration on PA1 */
   ADC_RegularChannelConfig(ADC1, channel, 1, ADC_SampleTime_4Cycles);
   /* Start ADC1 Software Conversion */
   ADC_SoftwareStartConv(ADC1);
   while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET){}
   ADCdata = ADC_GetConversionValue(ADC1);
   return ADCdata;
}



потом уже в майне :

data = ADC_GetValue(ADC_Channel_1);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F107. Проблемы с АЦП
СообщениеДобавлено: 27 июл 2012, 23:01 
Старожил

Зарегистрирован: 25 апр 2010, 10:13
Сообщения: 1927
Откуда: Томск
Подключено ли +Vref и -Vref?
При каких условиях появляется 1,6В - нога висит в воздухе или куда-то подключена?

_________________
Какое небо голубое....(с) лиса Алиса


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F107. Проблемы с АЦП
СообщениеДобавлено: 28 июл 2012, 15:34 
Заглядывает иногда

Зарегистрирован: 21 окт 2011, 09:25
Сообщения: 71
Откуда: Уфа
Опорное уже было подключенно, так как юзал дискавери борд, 3 вольта....Обычно если внутреннее опорное, то ставят конденсатор, ну или в воздухе оставь..тока это не есть гуд)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F107. Проблемы с АЦП
СообщениеДобавлено: 30 июл 2012, 11:16 
Только пришел

Зарегистрирован: 28 апр 2012, 14:12
Сообщения: 8
hardegor писал(а):
Подключено ли +Vref и -Vref?

Использую встраиваемый модуль TE-STM32F107 от терраэлектроники. Опорное напряжение заведено 3.3В.
hardegor писал(а):
При каких условиях появляется 1,6В - нога висит в воздухе или куда-то подключена?

Нога висит в воздухе - выходит на разъем. Проект взял из 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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F107. Проблемы с АЦП
СообщениеДобавлено: 30 июл 2012, 11:32 
Только пришел

Зарегистрирован: 28 апр 2012, 14:12
Сообщения: 8
Amio писал(а):
Вот мой код:

Отличаются наши библиотеки. Да, в принципе, ничего сверхъестественного с АЦП и портами я не делаю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F107. Проблемы с АЦП
СообщениеДобавлено: 30 июл 2012, 16:21 
Старожил

Зарегистрирован: 25 апр 2010, 10:13
Сообщения: 1927
Откуда: Томск
Есть три вопроса:
1. "Только начинаю измерять" - это ты пошагово в отладчике идешь или целиком программу запускаешь?
2. 1,6В откуда - такие данные выдает АЦП или тестером измеряешь?
3. может быть ноги неправильно отсчитал на разъеме?

И подключи к ножке PС0 общий или питание 3.3В - что покажет тестер и АЦП?

_________________
Какое небо голубое....(с) лиса Алиса


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F107. Проблемы с АЦП
СообщениеДобавлено: 30 июл 2012, 16:29 
Только пришел

Зарегистрирован: 28 апр 2012, 14:12
Сообщения: 8
hardegor писал(а):
Есть три вопроса:
1. "Только начинаю измерять" - это ты пошагово в отладчике идешь или целиком программу запускаешь?

Пошагово в отладчике с помощью тестера измерял.
hardegor писал(а):
2. 1,6В откуда - такие данные выдает АЦП или тестером измеряешь?

И АЦП выдает и тестер выдает
hardegor писал(а):
3. может быть ноги неправильно отсчитал на разъеме?

тестер и показания АЦП подтверждают мою правильность
hardegor писал(а):
И подключи к ножке PС0 общий или питание 3.3В - что покажет тестер и АЦП?

Подключил 3.3 - АЦП показывает 3.3 и тестер 3.3
Подключил GND - АЦП показывает 0 и тестер 0
Хмм... что-то странно :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F107. Проблемы с АЦП
СообщениеДобавлено: 30 июл 2012, 17:11 
Старожил

Зарегистрирован: 25 апр 2010, 10:13
Сообщения: 1927
Откуда: Томск
Нормально, видимо заряд натекает на входную емкость, а скорость преобразования какая?
попробуй поставить резистор на эдак на 100кОм между входом и общим. АЦП должен показывать 0 вольт.
Попробуй поставить переменный резистор на 100-300кОм между общим и +3.3В, регулятор на вход АЦП и покрутить.

_________________
Какое небо голубое....(с) лиса Алиса


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F107. Проблемы с АЦП
СообщениеДобавлено: 30 июл 2012, 17:20 
Только пришел

Зарегистрирован: 28 апр 2012, 14:12
Сообщения: 8
hardegor писал(а):
Нормально, видимо заряд натекает на входную емкость, а скорость преобразования какая?

Пробовал менять, результат одинаков.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32F107. Проблемы с АЦП
СообщениеДобавлено: 30 июл 2012, 17:30 
Только пришел

Зарегистрирован: 28 апр 2012, 14:12
Сообщения: 8
Вообщем, разобрался.
Причина крылась в том, что, если ничего ко входу АЦП не подключено, то на выводе будет 1.6В
Подключил источник питания и погонял от 0 до 3.3В. Все корректно работает.
Всем спасибо за помощь.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: ILYAUL


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB