@HikKira

Что не так с моей схемой для оцифровки сигнала stm32f103t8c6 после маштабирующей схемы?

Здравствуйте, оцифровываю сигнал с максимально возможно частотой дискритизацией с помощью отладочной платы BLUE PILL. Код для МК пишу в KubeIDE с помощью HALL. Кусок кода отвечающий за оцифровку представлен ниже:
for(int number = 0; number <= Size; number++)
			  {
				  HAL_ADC_Start(&hadc1); // запускаем преобразование сигнала АЦП
				  HAL_ADC_PollForConversion(&hadc1, 1); // ожидаем окончания преобразования
				  adc = HAL_ADC_GetValue(&hadc1); // читаем полученное значение в переменную adc
				  HAL_ADC_Stop(&hadc1); // останавливаем АЦП (не обязательно)
				  buffer_tx[help1] = (adc & 0x00FF); // младший байт
				  buffer_tx[help2] = ((adc & 0xFF00) >> 8 ); // старший байт
				  //буду отправлять буффером 4000к символов
				  help1 = help1 + 2;
				  help2 = help2 + 2;
			  }

Калибровку проводил.
На картинке №1 (ниже) приведена осциллограмма сигнала с U питания МК:64723d156ac4e340097450.png
Из чего следует, что вроде код рабочий. Но, когда я попробовал оцифровать 19В импульсного блока питания ноутбука после маштабирующей схемы на LM358n, принципиальная схема (рис №2) ниже:
64723dc5076b9196194075.png
Я вижу такую картинку (№3):
64723e56c4430550483419.png
Если приблизительно оценить, то средний уровень верен приблизительно 2,5 В, если посчитать по формуле (мультик показывает то же самое).
На всякий случай упомяну, что делаю все на макетках (картинка №4) (пожалуйста не пугайтесь, просто времени нет, на нормальную реализацию):
647240a07dea4930536754.png


Я рассчитываю на Ваши советы! Что я мог сделать не так? Конедры поставил на 100 и 4, 7 мкФ между ножками питания микросхемы. Заранее спасибо за Ваши ответы!
  • Вопрос задан
  • 153 просмотра
Решения вопроса 1
@nehrung
Не забывайте кликать кнопку "Отметить решением"!
Схема подключения повторителя сделана неверно, нельзя подключать ОУ для обработки сигнала, от которого этот же ОУ питается. Сначала надо смасштабировать этот сигнал до уровней линейного диапазона этого ОУ, например, с помощью резисторного делителя на входе ОУ, а его выход напрямую, без делителей, соединить со входом АЦП.
Причина вашей ошибки - скорее всего, даташит, из которого взята вот эта страница:
647249e67a814647959179.jpeg
Тут сказано, что LM358 может обрабатывать сигналы вплоть до -0,3 вольта, т.е. ниже минуса питания. Это правда, он действительно может это делать, такова особенность его схемотехники. и за это мы его так любим. А вот насчёт плюса питания он так не может - входное напряжение не имеет права выходить за пределы плюса, оно должно быть несколько ниже (обычно на 1...1,5 вольт), чтобы входной диффкаскад смог с ним корректно работать. Написанное в даташите, что он может это делать - неверно, он этого не сможет. Гляньте на его схему - если базу входного транзистора соединить непосредственно с питанием, то этот транзистор просто закроется.
Как возникла эта ошибка, и почему до меня её никто не заметил, мы тут обсуждать не будем. А исправить вашу неприятность очень легко - перепаяйте делитель 6ком/1ком с выхода ОУ на его вход, и всё придёт в норму.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы