firstvald 13 20 октября, 2019 Опубликовано 20 октября, 2019 · Жалоба делитель именно внутри и делит на 3. по крайней мере так написано Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 20 октября, 2019 Опубликовано 20 октября, 2019 · Жалоба Ясно. У моего МК на 2. То есть, делитель разрешается автоматически, а запрещать, значит, вручную надо? Хе-хе. Может, у вас sampling time маловато? Не успевает набрать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
firstvald 13 20 октября, 2019 Опубликовано 20 октября, 2019 · Жалоба static void MX_ADC1_Init(void) { /* USER CODE BEGIN ADC1_Init 0 */ /* USER CODE END ADC1_Init 0 */ ADC_MultiModeTypeDef multimode = {0}; ADC_ChannelConfTypeDef sConfig = {0}; /* USER CODE BEGIN ADC1_Init 1 */ /* USER CODE END ADC1_Init 1 */ /**Common config */ hadc1.Instance = ADC1; hadc1.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV1; hadc1.Init.Resolution = ADC_RESOLUTION_12B; hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT; hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE; hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV; hadc1.Init.LowPowerAutoWait = DISABLE; hadc1.Init.ContinuousConvMode = DISABLE; hadc1.Init.NbrOfConversion = 1; hadc1.Init.DiscontinuousConvMode = DISABLE; hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START; hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; hadc1.Init.DMAContinuousRequests = DISABLE; hadc1.Init.Overrun = ADC_OVR_DATA_PRESERVED; hadc1.Init.OversamplingMode = DISABLE; if (HAL_ADC_Init(&hadc1) != HAL_OK) { Error_Handler(); } /**Configure the ADC multi-mode */ multimode.Mode = ADC_MODE_INDEPENDENT; if (HAL_ADCEx_MultiModeConfigChannel(&hadc1, &multimode) != HAL_OK) { Error_Handler(); } /**Configure Regular Channel */ sConfig.Channel = ADC_CHANNEL_VBAT ;//ADC_CHANNEL_5 ;//ADC_CHANNEL_TEMPSENSOR; sConfig.Rank = ADC_REGULAR_RANK_1; sConfig.SamplingTime = ADC_SAMPLETIME_640CYCLES_5;//ADC_SAMPLETIME_2CYCLES_5; sConfig.SingleDiff = ADC_SINGLE_ENDED; sConfig.OffsetNumber = ADC_OFFSET_NONE; sConfig.Offset = 0; if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN ADC1_Init 2 */ /* USER CODE END ADC1_Init 2 */ } я увеличил до максимума время выборки. стало получше и, в принципе, приемлимо / 1 hour ago, firstvald said: делитель именно внутри и делит на 3. по крайней мере так написано 18 minutes ago, ViKo said: Ясно. У моего МК на 2. То есть, делитель разрешается автоматически, а запрещать, значит, вручную надо? Хе-хе. Может, у вас sampling time маловато? Не успевает набрать? в точку. уже попробовал. огромное спасибо за компанию!!!! там помимо того, что делителем нужно управлять, нужно проследить: чтобы внутри кристалла не оказались подключенными резисторы, через которые можно заряжать батарею. это лежит в PWR->CR4 бит VBE. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 20 октября, 2019 Опубликовано 20 октября, 2019 · Жалоба Верните коэффициент 3.0 вместо 3.2. Если будете сравнивать с внутренним опорным, наверное, получите точнее измерения. Тот внешний делитель, похоже, не должен повлиять ни на время выборки, ни на величину напряжения. АЦП от Vdda измеряет. Там, может, другое напряжение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
firstvald 13 20 октября, 2019 Опубликовано 20 октября, 2019 · Жалоба да 3 я верну. но, вот напряжения то измерены одним прибором.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 21 октября, 2019 Опубликовано 21 октября, 2019 · Жалоба Советую пересчитывать результаты всех измерений относительно измерения опорного напряжения, того самого, внутреннего, известного и стабильного. Уже писал здесь же. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
firstvald 13 21 октября, 2019 Опубликовано 21 октября, 2019 · Жалоба я посмотрю, что будет получаться/ там тоже не просто - два варианта опорного. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться