Автомобильный статус с широким диапазоном напряжения на входе микроконтроллера

Мне нужно отслеживать состояние провода в автомобильном приложении, на котором в любое время может быть 10-40 В постоянного тока. Каков хороший подход к ограничению напряжения на входе микроконтроллера в таком широком диапазоне? Я планирую использовать конденсатор 10 нФ и TVS для защиты от статического электричества и других переходных процессов, но я не уверен, что это лучший подход для ограничения ожидаемого напряжения. Если я могу надежно определить 10 В, 40 В могут сжечь входные резисторы (или резистор и стабилитрон?), или я могу ограничить 40 В и не определить 10 В.

Сигнал представляет собой простую строку состояния «включено-выключено», которую я подключаю. Он не будет очень часто передавать какие-либо данные или изменять состояние. Я буду время от времени проверять его в микроконтроллере, чтобы определить, является ли он высоким (от 1 В до 40 В) или низким (GND до менее 1 В).

Спасибо.

Отредактировано, чтобы добавить, что мой микроконтроллер будет работать при напряжении 3,3 В, а низкий логический уровень должен быть ниже 1 В. Любое решение, которое я использую, должно включать в себя колпачок низкого значения между входом и GND и либо диодные зажимы для Vdd и GND, либо Transil.

Вы, вероятно, должны определить некоторый гистерезис. Простой порог может быть шумным, хотя я полагаю, если вы не так часто сэмплируете... Но все же... Наверное, должен быть.
Можете ли вы подтвердить, что сигнал действительно 1-40В, а не 10-40В? То есть вам нужно гарантировать, что 1V даст вам высокий логический уровень?
Сигнал составляет 10-40 В, но мой микроконтроллер воспринимает все, что выше 1 В, как высокий логический уровень.
Разделить / 12 можно?

Ответы (3)

Использование резистора и стабилитрона будет работать нормально. Моделирование ниже показывает, что вы получаете со стабилитроном на 4,7 В.

Вы можете использовать очень большой резистор, потому что контакт ввода-вывода микроконтроллера практически не потребляет ток. С резистором 100 кОм и выходным напряжением примерно 5 В рассеиваемая мощность составляет (40-5) ^ 2 / (100 000) = 12 мВт, что находится в пределах того, что может выдержать резистор.

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

У вас нет определения, что такое логический 0 или 1, и 100 кОм в качестве вытягивания могут не работать. Вам необходимо определить подтягивающий или подтягивающий резистор для GPIO. Здесь для любого напряжения, близкого к напряжению Зенера, вывод GPIO не определен четко.
Для любого напряжения, меньшего, чем напряжение стабилитрона, вывод uC будет видеть примерно такое же входное напряжение — т.е., если напряжение равно 1 В, вывод uC увидит 1 В, и будут применяться логические пороги uC. Для любого напряжения выше логического порога uC вы получите логическую 1 - я не уверен, почему вы говорите, что напряжение, близкое к напряжению стабилитрона, не определено, поскольку вы просто получите напряжение, но не превышающее напряжение стабилитрона. .
Я бы не стал включать подтяжку вверх или вниз в UC, чтобы он не боролся с резистором 100k. Вам не нужен дополнительный подтягивающий/понижающий резистор, потому что линия состояния всегда имеет либо высокий, либо низкий уровень.
С последовательным резистором 100 кОм и отсутствием подтягивающего или понижающего напряжения у вас очень шумный вход. Не рекомендуемая конфигурация. OP определяет 1 как 1–40 В постоянного тока, поэтому 0 <1 В постоянного тока ... ваша схема этого не обеспечивает.
Не уверен, как подтяжка вверх или вниз повлияет на шум - обычно они сами составляют около 100 тыс. Шум, конечно, будет зависеть от того, как долго и где проходят подключенные провода. Он уже заявил, что включит колпачок, который поможет, и он также медленно сэмплирует, поэтому, если это действительно, ДЕЙСТВИТЕЛЬНО шумно, достаточно, чтобы вызвать шум в несколько вольт, вы все равно можете найти правильный ответ путем передискретизации. Но мы можем уменьшить сопротивление резистора до 5 кОм и по-прежнему оставаться в пределах резистора 1/4 Вт.
Вы правы в том, что эта схема не гарантирует, что 1 В возвращает логическую 1 (при типичных порогах uC). Я добавил комментарий выше, попросив ОП уточнить, что им действительно нужно, поскольку вопрос был сформулирован так, чтобы подчеркнуть высокое напряжение.
Он использует порт GPIO, а не порт A/D! Таким образом, шум просто означает, что вы ошибаетесь в данных.

Я был бы склонен использовать что-то простое и грязное, как это

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

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

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

D1 предназначен для защиты от отрицательного напряжения. Предполагается, что автомобильная электрика должна выдерживать обратное подключение аккумуляторной батареи для запуска от внешнего источника без повреждений, а также сбросы нагрузки 160 В и запуск аккумуляторной батареи грузовика 24 В, что довольно жестко!

Ответ Selvek должен работать. Я бы добавил, что еще одна простая альтернатива стабилитрону — зафиксировать напряжение на VDD с помощью диода.

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

На самом деле, большинство ИС уже включают такой диод внутри, поэтому, если вы правильно подобрали резистор, вам даже не нужно добавлять диод.

Одна вещь, с которой вам нужно быть осторожным при использовании этого метода, заключается в том, что минимальная потребляемая мощность вашей схемы всегда должна быть больше, чем ток через D1 при 40 В. В этом случае ток равен 0,7 мА. R2 в этом случае создает минимальную нагрузку 1ма, что защитит питание от поднятия более 5в.