Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Не удается заставить работать АЦП STM32F107

Чт мар 28, 2013 15:40:28

Код:
void ADC_Init (void) {

  RCC->APB2ENR |= (1<<4);                      /* enable clock for GPIOC      */
  GPIOC->CRL &= 0xFFF0FFFF;                    /* Configure ADC.14 input.     */

  RCC->APB2ENR |= (1<<9);                      /* enable clock for ADC1       */
  ADC1->SQR1  = 0x00000000;                    /* one conversion              */
  ADC1->SQR3  = (14<< 0);                      /* set order to chn14          */
  ADC1->SMPR1 = ( 5<<12);                      /* sample time (55,5 cycles)   */

  ADC1->CR1   =  0x00000100;                   /* independant mode, SCAN mode */
  ADC1->CR2   =  0x000E0003;                   /* data align right            */
                                               /* continuous conversion       */
                                               /* EXTSEL = SWSTART            */
                                               /* enable ADC                  */
  ADC1->CR2  |= 0x00000008;                    /* Reset calibration           */
  while (ADC1->CR2 & 0x00000008);

  ADC1->CR2  |= 0x00000004;                    /* Start calibration           */
  while (ADC1->CR2 & 0x00000004);

  ADC1->CR2  |=  0x00500000;                   /* start SW conversion         */

}


Это инициализация, но в ADC1_DR постоянно нули... хотя вход замкнут на питание 3.3в.
Еще вопрос про калибровку, в даташите четко написано:
Код:
Before starting a calibration the ADC must have been in power-off state (ADON bit = ‘0’) for
at least two ADC clock cycles.


Но во всех примерах даже от кейла, сначала запускается АЦП (ADON=1) а потом проводится калибровка

Re: Не удается заставить работать АЦП STM32F107

Чт мар 28, 2013 23:22:12

http://mycontroller.ru/category/mikroko ... stm32/adc/
Ответить