Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32F373 SDADC 50ksps.
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
Alex_Golubev
Привет.
Возникла у меня проблема оцифровки сигнала SDADC микроконтроллера STM32F373.

Проблема заключается в следующем. В RM0313 стр. 231 на мк. STM32F373 написано 50 ksps input sampling rate for single-channel operation. Это получается, что ацп может оцифровать прямоугольный сигнал длительностью 20 мкс.
Я обрадовался этому мне как раз нужно оцифровывать сигналы прямоугольной формы длительность от 20 мкс до 25 мкс. Амплитуда 1В

Написал простенький код для теста, начал смотреть результаты в регистре RDATAR и увидал, что данные в RDATAR 700-800 в момент формирования прямоугольного сигнала 1В, а должно быть примерно 10000. Опора 3,3В внешняя.

Синхронизацию прямоугольного импульса с входом ацп сделал очень простую (для теста): На рисунки прямоугольник сформированный на входе ацп.

1.Устанавливаю порт ввода вывода в "1"
2.Читаю данные из регистра SDADC1->RDATAR. После этого должен быть сброшен бит DADC_ISR_REOCF.
3.Жду установки бита DADC_ISR_REOCF, while( (SDADC1->ISR&SDADC_ISR_REOCF) != SDADC_ISR_REOCF);
4.Забираю данные из RDATAR (SDADC1->RDATAR)

Код
  N1_SIGNAL_ON;
  adcSD = SDADC1->RDATAR;
  while( (SDADC1->ISR&SDADC_ISR_REOCF) != SDADC_ISR_REOCF);
  adcSD = SDADC1->RDATAR;
  N1_SIGNAL_OFF;


Запускаю АЦП : SDADC1->CR2 |= SDADC_CR2_RSWSTART;

Значение регистров:
CR1 = 0x00;
CR2 = 0x01440001;
CONF0R = 0x04700FCB; калибровку ацп делаю.


Уже все перечитал в мануале, нашел только одну строчку:
In fast continuous mode (FAST=1), the first conversion takes still 360 SDADC
clocks, but then each subsequent conversion finishes in 120 SDADC clocks.
Очень мало информации по FAST режим.
Подумываю о то что ацп не может преобразовывать на частотах выше 16600 Гц.
Если отключить FAST то ацп работает нормально.
mcheb
Из даташита

16.6 ksps input sampling rate when multiplexing between different channels

50 ksps input sampling rate for single-channel operation
Alex_Golubev
Вся проблема в том, что у меня одноканальный и включен.
В CR2->CALIBCNT установлен в 0.
В SDADC_CONF0R->SE0 установлено 01: Conversions are executed in single-ended offset mode
Alex_Golubev
Не кто с такой проблемой не сталкивался?
Все молчат.
ViKo
Не сталкивался. Но не зря же написали, что первое преобразование длится дольше. Значит, ваше предположение, что можно оцифровывать прямоугольный сигнал, неверно. Вот синус 25 кГц - другое дело.
Plain
Цитата(Alex_Golubev @ Apr 28 2018, 06:23) *
Если отключить FAST то ацп работает нормально

Начинает оцифровывать прямоугольные импульсы?
Alex_Golubev
Да начинает оцифровывать прямоугольные импульсы.
Но длительность оцифровки увеличивается до 60 мкс.
Plain
Не понятно, зачем Вы впустую тратили время, если сегодня из Вашей новой темы по той же теме вдруг выяснилось, что импульсы-то оказывается будут вдвое короче, 10 мкс, и тем более не понятно, зачем вообще все эти темы, если встроенного в STM32 12-разрядного АЦП ПП здесь более чем достаточно.
Alex_Golubev
12 разрядов мало.
Plain
При 1 Msps на 10 мкс каскадным включением можно получить 15 разрядов.

Не понятно только, зачем банальным батарейным весам 32-разрядный МК.
Alex_Golubev
можно взять stm32f303 у него уже 5 msps 12 бит.

Это не весы. Это инфракрасный прибор.

Если подавать импульс длительностью больше 20 мкс то светодиод разогревается. И данные начинают плыть. Marubeni пишут что нужно подавать импульс длительностью 10 мкс скважность 0,1%. Это я уже экспериментально нашел точку 20 мкс.

Но нужно 16 бит. Может есть какие мк. у которых быстрый 16 битный ацп. Знаю stm32h7 ну я считаю это совсем перебор.
Plain
Цитата(Alex_Golubev @ May 2 2018, 12:13) *
нужно 16 бит

На 20 мкс вышеозвученный каскадный АЦП их выдаст с запасом.
_pv
даже на картинке измеренной 8ми битным осциллографом отлично видно что амплитуда импульса не постоянна, а куда-то ползает на несколько процентов, в какой именно момент времени вы собрались измерять амплитуду с точностью почти 1е-5?
dimka76
Цитата(Plain @ May 2 2018, 13:55) *
На 20 мкс вышеозвученный каскадный АЦП их выдаст с запасом.


А можно узнать чуть-чуть поподробнее по поводу каскадного АЦП ?
Plain
Дополнительные разряды получаются усреднением результатов включения существующего АЦП сравнивающим с пилой >= 1 МЗР, для чего эта пила создаётся стробируемым интегратором и суммируется со входом. В качестве интегратора обычно годится RC.
dimka76
Цитата(Plain @ May 2 2018, 23:04) *
Дополнительные разряды получаются усреднением результатов ....


Спасибо.
jcxz
Цитата(Alex_Golubev @ May 2 2018, 12:13) *
Но нужно 16 бит. Может есть какие мк. у которых быстрый 16 битный ацп. Знаю stm32h7 ну я считаю это совсем перебор.

Есть MSP432 с 14бит 1MSPS АЦП.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.