|
Решено. Re... stm32f030 ADC VferInt - что не так?, выдаёт 1.5В вместо 1.2В по даташиту - куда копать? |
|
|
|
Feb 25 2016, 08:56
|
Частый гость
 
Группа: Свой
Сообщений: 92
Регистрация: 20-01-06
Из: Зеленоград
Пользователь №: 13 407

|
Доброго всем! STM32F030F4P6. Скомпилил в IAR ARM 7.50 созданный только что скачанным с st STM32CubeMX 4.13.0 и STM32CubeF0 1.5.0 код для оцифровки внутреннего источника опоры. Вместо 1.2 В по даташиту получаю (3.3В (питание) / 4095 (при 12 разрядах разрешения)) * 1947 (см. картинку ниже) = 1.57 В. Что я делаю не так? Инициализация тактовых частот CODE /** System Clock Configuration */ void SystemClock_Config(void) {
RCC_OscInitTypeDef RCC_OscInitStruct; RCC_ClkInitTypeDef RCC_ClkInitStruct;
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; RCC_OscInitStruct.HSIState = RCC_HSI_ON; RCC_OscInitStruct.HSICalibrationValue = 16; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI; RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL12; RCC_OscInitStruct.PLL.PREDIV = RCC_PREDIV_DIV1; HAL_RCC_OscConfig(&RCC_OscInitStruct);
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |RCC_CLOCKTYPE_PCLK1; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1);
HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);
HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
/* SysTick_IRQn interrupt configuration */ HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0); }
АЦП CODE /** ****************************************************************************** * File Name : ADC.c * Description : This file provides code for the configuration * of the ADC instances. ****************************************************************************** */ /* Includes ------------------------------------------------------------------*/ #include "adc.h"
volatile uint32_t ADC_result; volatile uint8_t j;
ADC_HandleTypeDef hadc;
/* ADC init function */ void MX_ADC_Init(void) { ADC_ChannelConfTypeDef sConfig;
/**Configure the global features of the ADC (Clock, Resolution, Data Alignment and number of conversion) */ hadc.Instance = ADC1; hadc.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4; hadc.Init.Resolution = ADC_RESOLUTION12b; hadc.Init.DataAlign = ADC_DATAALIGN_RIGHT; hadc.Init.ScanConvMode = ADC_SCAN_DIRECTION_FORWARD; hadc.Init.EOCSelection = EOC_SINGLE_CONV; hadc.Init.LowPowerAutoWait = DISABLE; hadc.Init.LowPowerAutoPowerOff = DISABLE; hadc.Init.ContinuousConvMode = DISABLE; hadc.Init.DiscontinuousConvMode = DISABLE; hadc.Init.ExternalTrigConv = ADC_SOFTWARE_START; hadc.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_RISING; hadc.Init.DMAContinuousRequests = DISABLE; hadc.Init.Overrun = OVR_DATA_PRESERVED; HAL_ADC_Init(&hadc);
/**Configure for the selected ADC regular channel to be converted. */ sConfig.Channel = ADC_CHANNEL_VREFINT; sConfig.Rank = ADC_RANK_CHANNEL_NUMBER; sConfig.SamplingTime = ADC_SAMPLETIME_239CYCLES_5; // ADC_SAMPLETIME_71CYCLES_5; HAL_ADC_ConfigChannel(&hadc, &sConfig);
HAL_ADCEx_Calibration_Start(&hadc);
uint32_t Timeout = 1000;
for (uint8_t i = 0; i < 6; i++) { HAL_ADC_Start(&hadc); while (HAL_ADC_PollForConversion(&hadc, Timeout) != HAL_OK) {;} ADC_result = HAL_ADC_GetValue(&hadc); j = i; }
}
Сам проект
Сообщение отредактировал AnatolySh - Feb 25 2016, 12:31
--------------------
WMBR
|
|
|
|
|
 |
Сообщений в этой теме
AnatolySh Решено. Re... stm32f030 ADC VferInt - что не так? Feb 25 2016, 08:56 AnatolySh Цитата(AnatolySh @ Feb 25 2016, 11:56) 3.... Feb 25 2016, 12:24 ViKo А почему делите на 4095, а не на 4096? Так где-то ... Feb 25 2016, 12:30 AnatolySh Например здесь
Но сам я сомневаюсь... Feb 25 2016, 12:38 TSerg Цитата(ViKo @ Feb 25 2016, 15:52) Я не со... Feb 25 2016, 14:01  ViKo Цитата(TSerg @ Feb 25 2016, 17:01) Не так... Feb 25 2016, 14:16   TSerg Цитата(ViKo @ Feb 25 2016, 17:16) У меня ... Feb 25 2016, 14:39    ViKo Цитата(TSerg @ Feb 25 2016, 17:39) На вых... Feb 25 2016, 14:43
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|