К1921ВГ015 общее

32-разрядные микроконтроллеры разработки АО "НИИЭТ"

Модераторы: ea, dav, bkolbov, Alis, pip, _sva_

RabidRabbit
Сообщения: 271
Зарегистрирован: 10 июн 2025, 12:11
Предприятие: HomeWork

Re: К1921ВГ015 общее

Сообщение RabidRabbit »

Если Вы про k1921vg015_sdk/projects/NIIET-DEV-K1921VG015/adcsar - то там почему-то не выставляются значения для ADCSAR->CHDELAY.
Попробуйте выставить ADCSAR->CHDELAY в значение ADCclk/1500.
Baloda
Сообщения: 3
Зарегистрирован: 23 сен 2026, 16:16
Предприятие: ГранатБиоТех

Re: К1921ВГ015 общее

Сообщение Baloda »

Я про k1921vg015_sdk/projects/NIIET-DEV-K1921VG015/adcsd. Работа с сигма-дельта АЦП. Они считаются точными. А тут образцовый пример на постоянном напряжении выдает такое:
CH00 - 0xae86 - 0.794 V
CH00 - 0xb04f - 0.804 V
CH00 - 0xa749 - 0.750 V
CH00 - 0xa8b1 - 0.759 V
CH00 - 0xa2f8 - 0.724 V
CH00 - 0xa4c3 - 0.735 V
CH00 - 0xa3d4 - 0.729 V
CH00 - 0xa64c - 0.744 V
CH00 - 0xa555 - 0.738 V
CH00 - 0xa840 - 0.756 V
Вопрос, почему? Что я не вижу?
RabidRabbit
Сообщения: 271
Зарегистрирован: 10 июн 2025, 12:11
Предприятие: HomeWork

Re: К1921ВГ015 общее

Сообщение RabidRabbit »

У меня мой пример на дохлой батарейке вот что показывает (выбираются все каналы, далее лишние каналы из текста убраны):

Код: Выделить всё

ADC[0]: int 1.070 B, float 1.06960 B, raw -8257
ADC[1]: int 1.259 B, float 1.25929 B, raw -883
ADC[2]: int 1.257 B, float 1.25687 B, raw -977
ADC[3]: int 1.259 B, float 1.25929 B, raw -883
ADC[4]: int 1.255 B, float 1.25489 B, raw -1054
ADC[5]: int 1.256 B, float 1.25561 B, raw -1026
ADC[6]: int 1.257 B, float 1.25674 B, raw -982
ADC[7]: int 1.253 B, float 1.25347 B, raw -1109
-------
ADC[0]: int 1.068 B, float 1.06826 B, raw -8309
...
-------
ADC[0]: int 1.068 B, float 1.06806 B, raw -8317
...
-------
ADC[0]: int 1.068 B, float 1.06826 B, raw -8309
...
-------
ADC[0]: int 1.068 B, float 1.06806 B, raw -8317
...
-------
ADC[0]: int 1.068 B, float 1.06803 B, raw -8318
...
-------
ADC[0]: int 1.068 B, float 1.06847 B, raw -8301
...
-------
ADC[0]: int 1.068 B, float 1.06829 B, raw -8308
...
Результаты замеров выводятся раз в секунду.
Что у Вас за плата? Какой кварц на HSE (в примере тактирование SDADC установлено от HSE)? У меня SDADC тактируется от PLL1 частотой 16.384 МГц.
Baloda
Сообщения: 3
Зарегистрирован: 23 сен 2026, 16:16
Предприятие: ГранатБиоТех

Re: К1921ВГ015 общее

Сообщение Baloda »

код примеров взят с репозитория НИИЭТ
плата - BlueBird. (https://www.электроника-и-программирова ... board.html)

собственно фрагмент инициализации:

void adcsd_init()
{
//Инициализация тактирования блока ADC
RCU->ADCSDCLKCFG_bit.CLKSEL = 1;
RCU->ADCSDCLKCFG_bit.DIVEN = 0;
RCU->ADCSDCLKCFG_bit.CLKEN = 1;
RCU->ADCSDCLKCFG_bit.RSTDIS = 1;

//инициализация тактирования и сброса логики АЦП
RCU->CGCFGAPB_bit.ADCSDEN = 1;
RCU->RSTDISAPB_bit.ADCSDEN = 1;

//Включаем модуль АЦП
ADCSD->CTRL_bit.MDC = 0;
ADCSD->CTRL_bit.DR = 0;
ADCSD->CTRL_bit.ENB = 1;
ADCSD->CTRL_bit.PUREF = 1;
ADCSD->CTRL_bit.WTCYC = 3;

//Настраиваем канал 0
ADCSD->MODE_bit.CH0 = 3; // Режим канала - циклический
ADCSD->ENB_bit.CH0 = 1;
ADCSD->AMPL_bit.CH0 = 0; // Усиление 0дБ
}

и далее в мэйне по кругу:

while(1)
{
if(ADCSD->DATAUPD & 1)
{
adc_data = (uint16_t)ADCSD->DATA[0].DATA;
adc_volt = ADCSD_Get_Volt(adc_data);
tmp2f = modff(adc_volt,&tmpf)*1000;
adc_volt_frac = (uint16_t)tmp2f;
adc_volt_int = (uint16_t)tmpf;
printf("CH%02d - 0x%03x - %u.%u V\n\r", 0, adc_data, adc_volt_int, adc_volt_frac);
ADCSD->DATAUPD = 1;
}
i=650000;
while(i--);
}
лишние каналы я выкинул.
собственно, такт HSECLK. то есть 16 МГц, верно? и это не правильно?
на плате два кварца (RTS 32768 кГц) и 16 МГц
RabidRabbit
Сообщения: 271
Зарегистрирован: 10 июн 2025, 12:11
Предприятие: HomeWork

Re: К1921ВГ015 общее

Сообщение RabidRabbit »

BlueBird - наверно самая неудачная отладочная плата на ВГ015. Начиная с несоблюдения рекомендаций из Appnote и заканчивая странной схемой и разводкой. Попробуйте для начала закоротить дроссель L2, который стоит между "землями". Ну и ещё можно посмотреть осциллографом, что творится на выводе SDADC_CAP.
Ответить

Вернуться в «32-разрядные микроконтроллеры»