Top.Mail.Ru

Где в схеме ошибка?

Всем доброго времени суток! Наблюдал недавно устранение проблемы в одном из проектов, решение там оказалось на поверхности, но поиск занял довольно длительное время, поскольку в первую, во вторую, в третью и в десятую очередь проверялось абсолютно другое (что в принципе казалось логичным). Поэтому решил интереса ради добавить небольшую тестовую рубрику с ситуациями из реальных проектов, возможно кому-то будет интересно и полезно. Переходим к сути вопроса...

Итак, допустим есть схема следующего вида:

Ничего неординарного, все лишнее я вырезал:

  • USB-разъем, с него же идет питание
  • LDO-преобразователь, чтобы получить 3.3В
  • USB-UART на базе CH340G
  • Контроллер STM32F103RC
  • Необходимая обвязка и остальное по мелочи

Суммарно имеем:

  • U1: STM32F103RCT6
  • U2: USBLC6-4SC6
  • U3: USBLC6-2SC6
  • U4: CH340G
  • U5: MCP6001UT-I/OT
  • U6: AMS1117-3.3

Какая стоит в данном случае задача? А задача крайне простая: ЦАП контроллера (PA4) генерирует пилообразное напряжение с диапазоном от 0 до 3.3В с периодом 100 мс. Графическая интерпретация такая (на выходе DAC STM32):

На выходе ЦАП STM32.

Целью же является получить на выходе (разъем P2) аналогичный сигнал только с диапазоном от 0 до 5В (значения я буду плюс-минус округлять, понятно, что абсолютно без потерь получить сигнал на выходе невозможно):

Ожидаемый сигнал.

Это все в теории, на практике получается следующее:

Реальный сигнал.

И вместе с сигналом с выхода STM32:

STM32 DAC.

Как видите, начиная с некоторого значения на ЦАП (пусть будет около 3.0 В) увеличение сигнала на выходе прекращается. Вот в общем-то и все, в этом и заключается вопрос - где ошибка?

Давайте резюмируем, ожидание:

STM32 DAC Output STM32 DAC Output
0.00 В 0.00 В 2.00 В 3.04 В
0.50 В 0.75 В 2.50 В 3.78 В
1.00 В 1.51 В 3.00 В 4.54 В
1.50 В 2.27 В 3.30 В 5.0 В

Реальность:

STM32 DAC Output STM32 DAC Output
0.00 В 0.00 В 2.50 В 3.78 В
0.50 В 0.75 В 3.00 В 4.5 В
1.00 В 1.51 В 3.1 В 4.5 В
1.50 В 2.27 В 3.2 В 4.5 В
2.00 В 3.04 В 3.3 В 4.5 В

Неплохая в целом задача, можно пихнуть на какой-нибудь начальный этап собеседования 👍 Если рубрика более-менее зайдет, то можно будет накидать много таких небольших реальных случаев и завести какую-нибудь статистику, рейтинг участвующих в решении, призы, награды, медали, грамоты 😉

Если у кого-то есть идеи, пишите в ЛС, ну либо в комментарии или в группе.

Напряжение на USBLC6-4 (U2, pin 5) составляет 3.3 В, а сигнал на I/O1 может превышать данное значение, что и приводит к наблюдаемому эффекту. Как вариант - ставить еще одну USBLC6-4 исключительно для OPAMP_DAC и кормить ее от 5 В.

Подписаться
Уведомить о
guest

7 комментариев
Старые
Новые
Межтекстовые Отзывы
Посмотреть все комментарии
Эдуард
1 год назад

Падение напряжения на выходных каскадах операционника. Нужно поднять напряжение питания на 1 вольт?

Эдуард
Ответ на комментарий  Aveal
1 год назад

Я даже не знаю что это такое.
И посмотреть поленился.
Но мой вариант имеет право на жизнь.

Юрий
Юрий
5 месяцев назад

уменьшить коэффициент усиления ОУ, самую малость

Владимир
Владимир
4 месяцев назад

Данные с преобразованного сигнала подать на цап и ввести подстройку сигнала. То есть ввести обратную связь

Владимир
Владимир
4 месяцев назад

Естественно через делитель сигнала, а лучше всего применить внешний стабильный ЦАП. Частота сигнала небольшая, так что подстоиться успеем.

7
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x