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

Почему выход компаратора STM32G0B1 аналоговый?

Привет всем.

Решил использовать COMP1 на процессоре STM32G0B1RET6. Для тестирования (типа пощупать) подключил так:

COMP1 IN+ - DAC OUT1  -- проверяемый сигнал, управляется кнопками (увеличить - уменьшить)

COMP1 IN- - DAC OUT2  -- порог срабатывания. Пока неуправляемый

COMP1 OUT - PA0 (или PA11) -- внешний выход компаратора

 

К внешнему выходу компаратора подключен простой светодиодик. Просто чтоб видно было.  Также выход компаратора опрашивается кодом (он есть в регистрах) и выводится на дисплей.

Результат сего действа - битик в регистре ведёт себя довольно адекватно, а на пине я наблюдаю не цифровой уровень (как должно быть), а буквально аналоговый сигнал 0 - 3.3в (я туда кроме светодиода ещё и вольтметр подключил).

Когда напряжение DAC OUT1 приближается к DAC OUT2 выход компаратора в регистре сброшен (т.е. IN+ < IN-), а светодиодик на выходе уже начинает светиться.

При дальнейшем увеличении DAC OUT1 (IN+) компаратор срабатывает, яркость светодиода растёт.

 

Вопрос - что это за дичь и как получить нормальный цифровой выход? Или я где-то ошибся?

Я планировал подключить туда что-то типа К155ТМ2, чтобы аппаратно отключать реле. Я, конечно, понимаю, что в конечном итоге всё будет зависеть от порога срабатывания конкретной микросхемы, подключенной к выходу, но ведь у компаратора по определению должен быть цифровой выход.

Пробовал использовать PA11 вместо PA0 - то же самое.

 

Проц вроде настоящий, не пиленый. Это плата NUCLEO-G0B1RE, купленная на Украине в 2019 году, т.е. до всей этой политическо-санкционной хрени.

Прилагаю мои исходники либы DAC+COMP

dac_comp_lib.c

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


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

Может там ШИМ на выходе, т.е. он от помех переключается туда-сюда цифровым образом, а вам кажется плавное нарастание?

Кста, там

image.thumb.png.c2e23d5244eb8ed1cbd747a7866e9fdd.png

какой задан?

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


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

Был 00, задал 11 - разницы не заметил.

Попробовал ради прикола включить инверсию выхода

    COMP1 -> CSR = COMP_CSR_HYST | COMP_CSR_INMSEL_2 | COMP_CSR_INMSEL_0 | COMP_CSR_POLARITY;
 

оно работает - теперь диодик не плавно разгорается, а плавно затухает 😀

У них там и инверторы аналоговые стоят явно 😂

 

ШИМ - не знаю, как-то не догнал до такого, завтра ткну осциллом туда, отпишусь.

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


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

2 часа назад, hd44780 сказал:

. . . . оно работает - теперь диодик не плавно разгорается, а плавно затухает . . . .

 

В док-ии - "Sample-and-hold low-power mode, with internal or external capacitor"

Если не включен внутренний запоминающий конденсатор, и отсутствует внешний (то что в док) 

image.thumb.png.f60ec1998189835dad67040d080b28f2.png

то на выходе будет на аналоговый сигнал а шим, или что оно там, или их комбинация - часть аналога с выбросами туда или обратно. Соответственно в результате сравнения компаратором он выдаст некую "фантазию на тему".

Думаю надо исследовать это направление настройки / схемотехники Вашего девайса.

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


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

Вобщем вроде понял происходящее.

На обоих выходах ЦАПА буферы выключены

	// MCR.MODE1 = 010 - DAC channel1 is connected to external pin with Buffer disabled
	DAC -> MCR = DAC_MCR_MODE1_1;

	// OUT2 - connect to internal logic and to pin PA5, buffer is OFF
	// MCR.MODE2 = 001 - DAC channel1 is connected to pin PA5 and internal logic with Buffer disabled
	DAC -> MCR &= ~DAC_MCR_MODE2;
	DAC -> MCR |= DAC_MCR_MODE2_0;

Буферы выключены сознательно, т.к. при этом на выходах почти чистый 0 (где-то 2-3 мВ). Если буферы включить - там порядка 0.4-0.5 в - мне это мешает. Видимо какой-то операционник подключается, который не ахтец. 

В качестве лирического отступления - год-полтора назад пробовал вместо ЦАПА цифровой потенциометр (условия схемы это позволяют, высокая ёмкость выхода и прочее - не проблема) - тот вообще на выходе идеальный 0 даёт. Перешёл на ЦАПы только ради разрешения - потенциометр 8 бит, ЦАП (любой) - 12.

Питание схемы полностью импульсное - первичный БП 24в, потом импульсный преобразователь до 5в, на его выходе я добавил LowESR электролит 500 мкФ. Платa Nucleo с процом питается от этих 5в. На плате стоит штатный AMS1117-3.3 с какими-то мелкими конденсаторами типа 0.1 мкф. Схемы плат дельцы из ST уже давно не предоставляют.

На выходах цапа наблюдаются пачки импульсных помех до 0.5 в (если верить моему осциллу UT-81B).

Первичный БП - типа такого , только выходнй каскад у меня чуть другой, там я тоже оба выходных электролита поменял, родные заметно хуже были.

На выходе компаратора честный прямоугольник, но с многократными беспорядочными импульсами 0-1-0. При росте напряжения IN+ их кол-во и частота сильно растут, это и приводит к свечению светодиода.

Так что название темы оказалось некорректным, надо было раньше осциллом потыкать, потом уже писать 😀

 

Попробую запитать его от транса + LM7805, чтобы полностью уйти от импульсного питания, хотя уйти от него не получится, т.к. проц по задумке должен управлять понижающим преобразователем напряжения с 24в вниз. Сам преобразователь работает, сделаны вольтметр, амперметр  и т.п. На компараторе собирался сделать аппаратную защиту тот оверлода с управляемым порогом. Т.е. его выход должен вырубать реле на выходе.

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


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

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

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

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

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

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

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

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

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

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