Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 11.12.2015, 10:56  
LetalNik
Частый гость
 
Регистрация: 11.08.2015
Сообщений: 21
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
LetalNik на пути к лучшему
По умолчанию STM32F497VG ADC1 не изменяются показания

Доброе здрасьти.
Пользую плату STM32F4 discovery.
Проблема:
На канале 1 (GPIOA.0) ADC1 настроил единичный замер в режиме регулярного канала.
Данные по последовательному каналу передаю на терминалку.
Данные постоянно одни и те же, хотя тяну линию и к GND, и к 3V.

Код:
//Настройка ADC1

        RCC-›AHB1ENR |= RCC_AHB1ENR_GPIOAEN;
        GPIOA-›MODER |= GPIO_MODER_MODER0;  //Analog mone
        RCC-›APB2ENR |= RCC_APB2ENR_ADC1EN;  //ADC1 ON

        //Fadc = Fpb2 / 8
        ADC-›CCR |= ADC_CCR_ADCPRE_1;
        ADC-›CCR |= ADC_CCR_ADCPRE_0;
        
        //8-bit
        ADC1-›CR1 |= ADC_CR1_RES_1;
        ADC1-›CR1 &= ~ADC_CR1_RES_0; 
        
        ADC1-›CR1 |= ADC_CR1_SCAN;  //scan mode on
        ADC1-›CR1 |= ADC_CR1_EOCIE;  //End Of Conversion Interrupt Enable
        ADC1-›CR2 &= ~ADC_CR2_CONT;  //0-single conv, 1-continious conv
        
        // set 480 cycles of sampling Ch1
        ADC1-›SMPR2 |= ADC_SMPR2_SMP0_0;
        ADC1-›SMPR2 |= ADC_SMPR2_SMP0_1;
        ADC1-›SMPR2 |= ADC_SMPR2_SMP0_2;
                
        //1 conv
        ADC1-›SQR3 &= ~ADC_SQR1_L_3;
        ADC1-›SQR3 &= ~ADC_SQR1_L_2;
        ADC1-›SQR3 &= ~ADC_SQR1_L_1;
        ADC1-›SQR3 &= ~ADC_SQR1_L_0;
        
        //1st conv on Ch1
        ADC1-›SQR3 = ADC_SQR3_SQ1_0;
        
        NVIC_EnableIRQ(ADC_IRQn);
        
        ADC1-›CR2 |= ADC_CR2_ADON;

Измерение запускается по срабатыванию SysTick раз в секунду.

Код:
//Обработчик прерывания от ADC

  void ADC_IRQHandler()
  {
    if (ADC1-›SR & ADC_SR_EOC)
    {
      uint16_t ADC1_Data = ADC1-›DR;
      USART2_SBUF_Pointer = 1;
      USART2_SBUF[0] = '#';
      USART2_SBUF[1] = '1';
      USART2_SBUF[2] = 'A';
      USART2_SBUF[3] = ADC1_Data ›› 8;
      USART2_SBUF[4] = ADC1_Data;
      USART2_SBUF[5] = 0x0D;
      USART2-›DR = USART2_SBUF[0];
    }
  }

На комп постоянно приходят пакетики с 0х0003.

Люди добрые, помогите!
Реклама:
LetalNik вне форума  
Непрочитано 11.12.2015, 12:30  
andries5
Почётный гражданин KAZUS.RU
 
Регистрация: 19.02.2008
Сообщений: 1,812
Сказал спасибо: 126
Сказали Спасибо 605 раз(а) в 422 сообщении(ях)
andries5 на пути к лучшему
По умолчанию Re: STM32F497VG ADC1 не изменяются показания

Во первых: так понимаю STM32F407VG.
А во вторых:
GPIOA-›MODER |= GPIO_MODER_MODER0; //Analog mone
это Input mode, а не аналог.
GPIOA-›MODER |= GPIO_MODER_MODER3; //Analog mone
так как MODER 11: Analog mode

в третьих: на этой плате неудачный выбор канала, так как на этой ноге сидит кнопка USER.
и еще, осторожно с портом А. Не отключите SWD.
Reset values:
• 0xA800 0000 for port A
andries5 вне форума  
Непрочитано 11.12.2015, 12:55  
LetalNik
Частый гость
 
Регистрация: 11.08.2015
Сообщений: 21
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
LetalNik на пути к лучшему
По умолчанию Re: STM32F497VG ADC1 не изменяются показания

SWD уже отключил, но на другой плате=)

Вот что в Reference manual-е:
MODERy[1:0]: Port x configuration bits (y = 0..15)
These bits are written by software to configure the I/O direction mode.
00: Input (reset state)
01: General purpose output mode
10: Alternate function mode
11: Analog mode

А вот в файле stm32f4xx.h
#define GPIO_MODER_MODER0 ((uint32_t)0x00000003)
LetalNik вне форума  
Непрочитано 11.12.2015, 13:15  
andries5
Почётный гражданин KAZUS.RU
 
Регистрация: 19.02.2008
Сообщений: 1,812
Сказал спасибо: 126
Сказали Спасибо 605 раз(а) в 422 сообщении(ях)
andries5 на пути к лучшему
По умолчанию Re: STM32F497VG ADC1 не изменяются показания

Да, верно. С утра плохо проснулся. GPIOA-›MODER |= GPIO_MODER_MODER0 устанавливает две единицы.
andries5 вне форума  
Непрочитано 11.12.2015, 13:47  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,712
Сказал спасибо: 189
Сказали Спасибо 3,194 раз(а) в 2,071 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: STM32F497VG ADC1 не изменяются показания

Сообщение от andries5 Посмотреть сообщение
и еще, осторожно с портом А. Не отключите SWD.
делов то....... нажимаешь ресет и держишь пока программируешь
__________________
кагмаподэ магмаподэ
индюк вне форума  
Непрочитано 11.12.2015, 14:28  
LetalNik
Частый гость
 
Регистрация: 11.08.2015
Сообщений: 21
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
LetalNik на пути к лучшему
По умолчанию Re: STM32F497VG ADC1 не изменяются показания

Это да, да вот только АЦП не пашет.
LetalNik вне форума  
Непрочитано 11.12.2015, 16:56  
andries5
Почётный гражданин KAZUS.RU
 
Регистрация: 19.02.2008
Сообщений: 1,812
Сказал спасибо: 126
Сказали Спасибо 605 раз(а) в 422 сообщении(ях)
andries5 на пути к лучшему
По умолчанию Re: STM32F497VG ADC1 не изменяются показания

А вот такой вопрос:
Вы создали массив USART2_SBUF, в третьей и четвертой ячейках храните данные АЦП. А в регистр USART заносите нулевую ячейку. Может в этом проблема?
andries5 вне форума  
Непрочитано 11.12.2015, 20:12  
LetalNik
Частый гость
 
Регистрация: 11.08.2015
Сообщений: 21
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
LetalNik на пути к лучшему
По умолчанию Re: STM32F497VG ADC1 не изменяются показания

АЦП настроен на 8 разрядов и выравниванием по правому краю. Т.е. при подтягивании линии к питанию, должно быть #1A 0x00 0xFn 0x0D
Но! Постоянно 0х00 0х03
Последую совету товарища andries5 и настрою анализ с линии, скажем, GPIOB.0. Но завтра.
LetalNik вне форума  
Непрочитано 12.12.2015, 07:12  
LetalNik
Частый гость
 
Регистрация: 11.08.2015
Сообщений: 21
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
LetalNik на пути к лучшему
По умолчанию Re: STM32F497VG ADC1 не изменяются показания

Написал настройку на канал 8:

Код:
        RCC-›AHB1ENR |= RCC_AHB1ENR_GPIOBEN;
        GPIOB-›MODER |= GPIO_MODER_MODER0;  //Analog mode
        RCC-›APB2ENR |= RCC_APB2ENR_ADC1EN;  //ADC1 ON
        ADC1-›CR2 |= ADC_CR2_EXTSEL;
        ADC1-›CR2 |= ADC_CR2_EXTEN;
        //Fadc = Fpb2 / 8
        ADC-›CCR |= ADC_CCR_ADCPRE_1;
        ADC-›CCR |= ADC_CCR_ADCPRE_0;
        
        //8-bit
        ADC1-›CR1 |= ADC_CR1_RES_1;
        ADC1-›CR1 &= ~ADC_CR1_RES_0; 
        
        ADC1-›CR1 |= ADC_CR1_SCAN;  //scan mode on
        ADC1-›CR1 |= ADC_CR1_EOCIE;  //End Of Conversion Interrupt Enable
        ADC1-›CR1 &= ~ADC_CR1_JEOCIE;
        ADC1-›CR2 &= ~ADC_CR2_CONT;  //0-single conv, 1-continious conv
        
        // set 480 cycles of sampling Ch8
        ADC1-›SMPR2 |= ADC_SMPR2_SMP8_0;
        ADC1-›SMPR2 |= ADC_SMPR2_SMP8_1;
        ADC1-›SMPR2 |= ADC_SMPR2_SMP8_2;
                
        //1 conv
        ADC1-›SQR1 = 0x00;
        
        //1st conv on Ch8
        ADC1-›SQR2 = ADC_SQR2_SQ8_0;
        
        NVIC_EnableIRQ(ADC_IRQn);
        
        ADC1-›CR2 |= ADC_CR2_ADON;

Но ничего не изменилось.
LetalNik вне форума  
Непрочитано 12.12.2015, 13:30  
andries5
Почётный гражданин KAZUS.RU
 
Регистрация: 19.02.2008
Сообщений: 1,812
Сказал спасибо: 126
Сказали Спасибо 605 раз(а) в 422 сообщении(ях)
andries5 на пути к лучшему
По умолчанию Re: STM32F497VG ADC1 не изменяются показания

Создал проект на STM32F4-discovery.
С Вашим первым кодом, нашел ошибку.
Вы измеряете CH1:
ADC1-›SQR3 = ADC_SQR3_SQ1_0;
а подаете сигнал на CH0.
Измените
ADC1-›SQR3 = ADC_SQR3_SQ1_0;
на
ADC1-›SQR3 &= ~(ADC_SQR3_SQ1);
andries5 вне форума  
Сказали "Спасибо" andries5
LetalNik (16.12.2015)
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 03:34.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot