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

 
 
 
Reply to this topicStart new topic
> STM32F103 глючит АЦП
Alex_1811
сообщение Nov 23 2011, 09:24
Сообщение #1


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

Группа: Участник
Сообщений: 178
Регистрация: 31-10-06
Из: Яблунець
Пользователь №: 21 821



У меня проблема с АЦП.
АЦП настроен на непрерывное преобразование, источник запуска SWSTART.
Как только я запускаю преобразование то на ноге которая является входом АЦП появляется напряжение 1,2В.
АЦП настроен так:
Код
  NVIC->ISER[(DMA1_Channel1_IRQn >> 0x05)] =    (u32)0x01 << (DMA1_Channel1_IRQn & (u8)0x1F); /* Enable DMA interrupt */
  RCC->APB2ENR |= RCC_APB2ENR_TIM1EN|RCC_APB2ENR_ADC1EN;
  RCC->AHBENR  |= RCC_AHBENR_DMA1EN;

  ADC1->CR1 |=
                ADC_CR1_JAWDEN|ADC_CR1_AWDIE| /* AWD on injected channels whith interrupt */
                ADC_CR1_JAUTO|ADC_CR1_SCAN; /* Scan mode + auto injection */
  ADC1->SMPR2 = 0x0000; // 1.5 sampling time
  ADC1->SQR1 =  0x00; /* 1 conversion */

  ADC1->SQR3 =  ADC_SQR3_SQ1_3;    // 8 chanell

  ADC1->JSQR = ADC_JSQR_JSQ4_2|ADC_JSQR_JSQ4_1|ADC_JSQR_JSQ4_0; /* 1 conversion by 7-th channel in inj */
  ADC1->CR2 |= ADC_CR2_EXTSEL_0 | ADC_CR2_EXTSEL_1 | ADC_CR2_EXTSEL_2
                           | ADC_CR2_EXTTRIG
                             | ADC_CR2_DMA
                             | ADC_CR2_CONT;
    //ADC1->CR2 = ADC_CR2_EXTSEL_0 | ADC_CR2_EXTSEL_1 | ADC_CR2_EXTSEL_2 // run SWSTART



    ADC1->SMPR1 = 0x0920000B;
    GPIOB->CRL &= ~(GPIO_CRL_MODE0_0|GPIO_CRL_MODE0_1);     // PB.0
    GPIOB->CRL &= ~(GPIO_CRL_CNF0_0|GPIO_CRL_CNF0_1); // PB.0

    GPIOB->CRL &= ~(GPIO_CRL_MODE1_0|GPIO_CRL_MODE1_1); // PB.1
    GPIOB->CRL &= ~(GPIO_CRL_CNF1_0|GPIO_CRL_CNF1_1);    // PB.1


  /* DMA configuring */
  DMA1_Channel1->CCR |= DMA_CCR1_PL|DMA_CCR1_MSIZE_0|DMA_CCR1_PSIZE_0| /*Hight pry, 16 byte mem, 16 byte pereph */
                                      DMA_CCR1_MINC|
                                                //DMA_CCR1_CIRC|
                                                DMA_CCR1_HTIE|
                                                DMA_CCR1_TCIE; /*  mem inc, circular, enterrupts by Half and End of conv */
  DMA1_Channel1->CNDTR = ADC_ARRAY_SIZE;
  DMA1_Channel1->CPAR = (uint32_t)&ADC1->DR;
  DMA1_Channel1->CMAR = (uint32_t)&AdcOutArray[0];

  /* On converting */
  ADC1->CR2 |= ADC_CR2_ADON; /* Adc ON */
  /* Additional delay to Vref on */
  //Delay(10000);

  /* Calibration */
  ADC1->CR2 |= ADC_CR2_RSTCAL;
  while ( ADC1->CR2 & ADC_CR2_RSTCAL )
; /* BLANK */
  ADC1->CR2 |= ADC_CR2_CAL;
  while ( ADC1->CR2 & ADC_CR2_CAL )
; /* BLANK */

  //Delay(10000);
  DMA1_Channel1->CCR |= DMA_CCR1_EN; /* Enable DMA */


Вот скрин настройки:
Прикрепленное изображение


Сообщение отредактировал Alex_1811 - Nov 23 2011, 09:35
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 07:14
Рейтинг@Mail.ru


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