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

 
 
> STM32F072 непонятный эффект с выборкой ADC
seniorandre
сообщение Apr 24 2016, 05:48
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 58
Регистрация: 6-07-12
Из: г.Нижний Новгород
Пользователь №: 72 651



Имею ADC, запуск выборки идет от триггера с периодом 2us, ADC тактируется от APBCLK = 48 MHz с делением на 2 или 4, данные забираются через DMA. Период запуска конверсии 2us, проверял осциллографом, все ок, 2us в наличии.
Далее непонятный эффект, если ставлю предделитель на 4 (тактовая ADC = 12 MHz), то выборку могу поставить только 1.5 ADC clock cycles, при 7.5 сс данные становятся случайными, хотя:
7.5cc + 12.5cc=20cc, плюс еще trigger start latency 2.625 ADC clock cycles = 22.625cc => 1/12MHz * 22.625 = 1,885 us

Если ставлю предделитель на 2 (тактовая ADC = 24 MHz, что ни есть хорошо),
То все работает вплоть до выборки 28,5сс
28.5cc + 12.5cc + 2.75сс =43.75cc, 2.75 => 1/24MHz * 43,75 = 1.823us
Код
    // ADC1
    ADC1->CFGR1 = ADC_CFGR1_DISCEN; //discontinuos mode, the each TRIGOI event do convertion
    //ADC1->CFGR1 = ADC_CFGR1_CONT | ADC_CFGR1_SCANDIR;
    //ADC1->CFGR2 |= ADC_CFGR2_CKMODE_1; //APBCLK/4 = 12MHz
    ADC1->CFGR2 |= ADC_CFGR2_CKMODE_0; //APBCLK/2 = 24MHz
    ADC1->CFGR1 |= ADC_CFGR1_EXTSEL_1 | ADC_CFGR1_EXTEN_0; // SEL = 010 TIM2 TRIGOut EN = 01 ON RISING
    // Время для всех каналов
    //ADC1->SMPR &= !ADC_SMPR_SMP; //Для всех каналов 000: 1.5 ADC clock cycles
    //ADC1->SMPR |= ADC_SMPR_SMP_0; //Для всех каналов 001: 7.5 ADC clock cycles, 7.5cc + 12.5cc=20cc, 1/12MHz * 20 = 1,66us  1/24MHz * 20 = 0.8us
    //ADC1->SMPR |= ADC_SMPR_SMP_1; //Для всех каналов 010: 13.5 ADC clock cycles, 13.5cc + 12.5cc=26cc, 1/12MHz * 26 = 2.16us  1/24MHz * 26 = 1.08us
    ADC1->SMPR |= ADC_SMPR_SMP_1 | ADC_SMPR_SMP_0; //Для всех каналов 011: 28.5 ADC clock cycles, 28.5cc + 12.5cc=41cc,  1/24MHz * 41 = 1.708us


Не хватает чуть чуть...
Может кто-то имеет опыт в этом деле. Получится запустить на ADC на 12 MHz с выборкой 7,5сс?

Сообщение отредактировал seniorandre - Apr 24 2016, 19:01
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
KnightIgor
сообщение Apr 25 2016, 20:03
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(seniorandre @ Apr 24 2016, 06:48) *
Имею ADC, запуск выборки идет от триггера с периодом 2us, ADC тактируется от APBCLK = 48 MHz с делением на 2 или 4, данные забираются через DMA. Период запуска конверсии 2us, проверял осциллографом, все ок, 2us в наличии.

А что, ADC тянет 500ksps? По тексту вроде даже два канала, то есть, 1Msps на канал? Чет быстро...
Go to the top of the page
 
+Quote Post
seniorandre
сообщение Apr 26 2016, 14:44
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 58
Регистрация: 6-07-12
Из: г.Нижний Новгород
Пользователь №: 72 651



Цитата(KnightIgor @ Apr 25 2016, 23:03) *
А что, ADC тянет 500ksps? По тексту вроде даже два канала, то есть, 1Msps на канал? Чет быстро...

Мало того что тянет 500ksps, так еще и в реалтайме ДПФ для одной частоты вычисляет, после обсчета 10 000 семплов одного канала, обсчитываем следующий. Все запускается синхронно по таймерам. Синус естественного для ДПФ и ЦАП уже подготовлен в буфере.

Цитата(jcxz)
А Вы хоть раз испытания в камере тепла и холода делали? Или хотя-бы видели её?

Не видел.
Цитата(jcxz)
А ПО нагруженное писали? Так чтобы одновременно работала куча периферии и тяжёлые вычисления?

Пытаюсь
Цитата(jcxz)
А испытания на устойчивость к нано- и микросекундным помехам делали?

Для данного проекта не вижу необходимости.

Вот хочется спросить... А вы что-то по существу вопроса добавить можете? Или только подковырнуть хотите?

Сообщение отредактировал seniorandre - Apr 26 2016, 14:59
Go to the top of the page
 
+Quote Post
jcxz
сообщение May 1 2016, 06:47
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(seniorandre @ Apr 26 2016, 20:44) *
Вот хочется спросить... А вы что-то по существу вопроса добавить можете? Или только подковырнуть хотите?

По существу я уже добавил. Если не поняли, то: если "вылезаете за пределы ТТХ", гарантировать ничего уже нельзя. Железо может как работать так и нет - как повезёт - в зависимости от фазы луны. То, что там где-то у кого-то что-то заработало, не означает что заработает в другой раз и при немного других условиях.
Go to the top of the page
 
+Quote Post



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

 


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


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