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

Не могу измерить ноль STM32F103RBT6

Здравствуйте!,

есть 12 канальный контроллер, который управляет активными нагрузками вкл/выкл, открытый сток на smartFET BTS141. Для контроля за состоянием выходов (утечки, к.з. в линии) обратная связь с снимается с выхода через делитель 27k/3k (1:10), коммутируется аналоговым коммутатором MUX36S16IDWR на вход 12 битного АЦП STM32F103RBT6...

 

 

Clip2net_210402231130.thumb.png.1381e72124bc246ef08a5f4cea80d316.png

Clip2net_210402231219.thumb.png.57e1be86a985d286ea920f4288330fcd.png

Clip2net_210402231313.thumb.png.db444bf0f42bec601d1225b928b7c34e.png

 

Когда транзистор закрыт, на стоке примерно 11В, обратная связь около 1,2В и АЦП довольно точно измеряет это значение. Но когда транзистор открывается АЦП выдаёт около 150мВ... что странно, т.к. сопротивление канала транзистора около 28мОм!

 

Всё бы ничего, но я не могу ничем измерить это напряжение! Мой мультиметр имеет входное сопротивление 10МОм и на пределе 200mV показывает ноль!!! При этом АЦП выводит результат 150мВ! Даже осциллограф со щупом 1:10 не в состоянии увидеть этот потенциал. Если учесть, что АЦП меряет его с выхода делителя обратной связи, то на его входе должно быть ~1,5В, т.к. делитель 1:10, но и мультиметр и осциллограф показывают ноль.

 

Потеряв всякую надежду на здравое решение я перемкнул вход АЦП пинцетом на землю... и о чудо, измерения показывают почти идеальный ноль!

 

Я не могу сообразить в чём проблема! Силовая земля отделена от цифровой и объединяются в одной точке около разъёма питания. Подумал, что ошибка с землёй, но как бы я не экспериментировал 150мВ со входа АЦП не уходит и не один прибор их не видит!

 

Буду рад любым версиям происходящего!

 

BTS141.pdf MUX36S16IDWR.pdf

Изменено пользователем Сёха

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


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

Не многовато ли выходное сопротивление делителя как источника сигнала для схемы выборки-хранения АЦП контроллера? Ещё и коммутатор добавляет...

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

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


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

7 часов назад, Сёха сказал:

Я не могу сообразить в чём проблема! Силовая земля отделена от цифровой и объединяются в одной точке около разъёма питания. Подумал, что ошибка с землёй, но как бы я не экспериментировал 150мВ со входа АЦП не уходит и не один прибор их не видит!

А почему вы решили что АЦП со всей схемой идеальный измеритель?

Надо просто откалибровать его.

А еще есть мультиплексор который добавляет ошибку.

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


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

6 часов назад, Obam сказал:

Не многовато ли выходное сопротивление делителя как источника сигнала

Там меньше 3 кОм выходное сопротивление делителя, 125 Ом мультиплексор и 10 кОм на выходе мультиплексора. Для каких-то времен выборки этого достаточно, для каких-то уже много.

image.thumb.png.46a89c1561ea49136abc9ee7d86a01dc.png

 

9 часов назад, Сёха сказал:

Я не могу сообразить в чём проблема!

Какое время выборки для этого канала установлено в регистре ADC_SMPRx для этого канала? 

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


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

Я на вход АЦП для сигналов с большим выходным сопротивлением ставлю керамику 100нФ на землю.

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


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

38 минут назад, adnega сказал:

Я на вход АЦП для сигналов с большим выходным сопротивлением ставлю керамику 100нФ на землю.

Тоже есть свои подводные камни: при опросе нескольких каналов с разными уровнями емкость УВХ (sample capacitor) переносит заряд между этим конденсатором и другим каналом, в итоге в этом канале все равно появляется смещение, зависящее от напряжения на другом канале. https://www.embeddedrelated.com/showarticle/110.php

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


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

ObamHardEgorСергей Борщadnega, спасибо вам большое за ответы!

 

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

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


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

10 часов назад, Сёха сказал:

Придётся самому писать тестовый код, а на это сейчас времени нет.

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

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


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

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

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

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

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

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

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

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

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

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