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

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

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


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

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

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


Ссылка на сообщение
Поделиться на другие сайты
Не кто с такой проблемой не сталкивался?
Все молчат.

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


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

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(Alex_Golubev @ Apr 28 2018, 06:23) <{POST_SNAPBACK}>
Если отключить 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

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(Alex_Golubev @ May 2 2018, 12:13) <{POST_SNAPBACK}>
нужно 16 бит

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

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


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

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(Plain @ May 2 2018, 13:55) <{POST_SNAPBACK}>
На 20 мкс вышеозвученный каскадный АЦП их выдаст с запасом.


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

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


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

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация