Перейти к содержанию
    

Привет.

Возникла у меня проблема оцифровки сигнала 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 то ацп работает нормально.

post-95877-1524885584_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Из даташита

16.6 ksps input sampling rate when multiplexing between different channels

50 ksps input sampling rate for single-channel operation

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вся проблема в том, что у меня одноканальный и включен.

В CR2->CALIBCNT установлен в 0.

В SDADC_CONF0R->SE0 установлено 01: Conversions are executed in single-ended offset mode

post-95877-1524899448_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не сталкивался. Но не зря же написали, что первое преобразование длится дольше. Значит, ваше предположение, что можно оцифровывать прямоугольный сигнал, неверно. Вот синус 25 кГц - другое дело.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если отключить FAST то ацп работает нормально

Начинает оцифровывать прямоугольные импульсы?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да начинает оцифровывать прямоугольные импульсы.

Но длительность оцифровки увеличивается до 60 мкс.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не понятно, зачем Вы впустую тратили время, если сегодня из Вашей новой темы по той же теме вдруг выяснилось, что импульсы-то оказывается будут вдвое короче, 10 мкс, и тем более не понятно, зачем вообще все эти темы, если встроенного в STM32 12-разрядного АЦП ПП здесь более чем достаточно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При 1 Msps на 10 мкс каскадным включением можно получить 15 разрядов.

 

Не понятно только, зачем банальным батарейным весам 32-разрядный МК.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

можно взять stm32f303 у него уже 5 msps 12 бит.

 

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

 

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

 

Но нужно 16 бит. Может есть какие мк. у которых быстрый 16 битный ацп. Знаю stm32h7 ну я считаю это совсем перебор.

Изменено пользователем Alex_Golubev

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

нужно 16 бит

На 20 мкс вышеозвученный каскадный АЦП их выдаст с запасом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

даже на картинке измеренной 8ми битным осциллографом отлично видно что амплитуда импульса не постоянна, а куда-то ползает на несколько процентов, в какой именно момент времени вы собрались измерять амплитуду с точностью почти 1е-5?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На 20 мкс вышеозвученный каскадный АЦП их выдаст с запасом.

 

А можно узнать чуть-чуть поподробнее по поводу каскадного АЦП ?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дополнительные разряды получаются усреднением результатов включения существующего АЦП сравнивающим с пилой >= 1 МЗР, для чего эта пила создаётся стробируемым интегратором и суммируется со входом. В качестве интегратора обычно годится RC.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...