Отработка узлов: Часы-Будильник-Таймер-Секундомер на МК ATtiny85V (продолжение)

«Москва не сразу строилась. Не сразу всё устроилось…» (с)

Отработка узлов

Содержание:

Осторожно: в статье «много буков»! Кого это напрягает — идите мимо. Данная статья написана не для читателей — в ней автор разговаривает со своим «учителем»: поставленной задачей… (протоколы экспериментов)


Схема Источника Питания (батарейный отсек) и Защита от переполюсовки

Защита от переполюсовки

Защитная Цепь от включения Напряжения Питания обратной полярности:

Хуже всего придётся схеме — если будет включено напряжение питания обратной полярности. (А конструкция батарейного отсека на 2шт. x AA батарейки — это технически дозволяет!) При этом выгорят ВСЕ цифровые микросхемы: и микроконтроллер и все шесть сдвиговых регистров! А учитывая нетехнологичность конструкции, сложность распайки на макетке, и то что все соединения сделаны навесными монтажными проводами — это будет крах! Конструкция восстановлению подлежать не будет!!! Поэтому необходимы защитные цепи по питанию…

Возможные решения:

Решение 1) Лучше всего было бы: в проводник Vcc последовательно включить диод, в прямом включении.
Плюсы: Тогда, при обратном включении — ток гарантированно заблокируется, схема будет защищена. Конструкция примитивно проста.
Минусы: Однако, на открытом диоде, в прямом включении, будет падать ощутимое напряжение: 0.4-0.5V (для Шоттки) или 0.6-0.8V (для обычного выпрямительного). А в данной схеме — напряжение питания уже предельно низкое: батареи выдают 2-3V, что впритык хватает для работы схемы (и на это уже рассчитаны все компоненты). Напряжение питания понижать нельзя!

Решение 2) Можно применить промежуточный импульсный DC-DC стабилизатор, для фиксации рабочего напряжения прикладной схемы, вне зависимости от плавания батарейного питания.
Плюсы: Заодно, можно будет использовать любые всевозможные ВСТРОЕННЫЕ защитные цепи (от перенапряжения, от переполюсовки, даже от перегрузки)…
Минусы: Но это слишком сложное и дорогое решение, требующее доп.компонент и проектирования… А ещё у нас очень малый объём корпуса, в котором места уже практически нет! (Таким образом, «решение 2» было отложено…)

Решение 3) Остаётся обойтись, опять таки, единственным Защитным Диодом, но включённым обратно-параллельно источнику питания (шунтирующим).
Замечу, что данное решение используется во всех микросхемах (слабенькими внутренними диодами), для защиты входов ОТ ПОМЕХ (маломощных и малотоковых) — поэтому его стоит рассмотреть! Но что будет, если экстраполировать данный принцип на защиту силовых цепей, от переполюсовки по питанию?
Плюсы: При прямом включении полярности питания — он не оказывает влияния на схему, не понижает напряжения питания. При обратном включении полярности питания — он шунтирует весь ток через себя, сам разрушается, но схему защищает! При этом, в качестве «защитного диода» — возьмём силовой (на несколько Ампер) диод Шоттки, с малым прямым падением напряжения (до 0.45V)… Главное, чтобы прямое падение напряжения на нём — было меньше <0.5V, т.к. по Datasheet на компоненты, Electrical Characteristics Микроконтроллера «ATTINY85» и Сдвигового регистра «74HC164» — допускают минимальное напряжение по входам Vcc и др.: до -0.5V !
Минусы: При неправильном включении — батарейкам, а особенно аккумуляторам — конечно, приходит песец… Но главное — схему защитить! Также, при срабатывании защиты, через Диод идёт большой ток (до 10А), он сильно греется и сгорает — поэтому надо брать диод с запасом мощности.

Примечание: Тестирование схем защиты производилось только в реальном железе (симулятор тут не подмога)…

Решение 3: «Параллельно, Защитный Диодовый Шунт» (изврат)

Устройство питается от двух пальчиковых батареек по 1.5V (или аккумуляторов по 1.2V) — соответственно, с учётом разряда батарей, схема рассчитана на питание от 2..3VDC.

Решение3. Обратно-параллельно силовой Диод (изврат)

Тестирование Решения 3)
/слабое место: здесь наиболее критичен перегрев диода — максимальный ток через него, и падение напряжения на диоде <0.5V/

Использовались в прямом включении:

  • Силовой Выпрямительный диод SF56 (5A, 400V)
  • Диод Шоттки 1N5817 (1A, Vfmax=0.45V)
  • Диод Шоттки SBL2040CT Сдвоенный, с общим катодом, ограничительный (If=20A, Vfmax=0.7V) — выковырян из горелого компового БП

Источники напряжения:

  • Старые соляные батарейки SONY 2xAA (с высоким внутренним сопротивлением) ЭДС = 2.8V, на нагрузке = 2.76V
  • новые алкалиновые батарейки Energizer 2xAA (с низким внутренним сопротивлением и высоким ЭДС — самые опасные для схемы!) ЭДС = 3.0V, на нагрузке = 3.2V
  • Старые Аккумуляторы NiMH Energizer 2xAA (со средним внутренним сопротивлением и средним ЭДС) ЭДС = 2.9V, на нагрузке = 3.0V
  • Новые Аккумуляторы NiMH GP 2xAA (с низким внутренним сопротивлением и средним ЭДС — гораздо опаснее для схемы!) ЭДС = 2.7V, на нагрузке = 2.85V

Тест:

  1. параллельно Выпрямительный диод SF56 + соляные батарейки = прямое падение 0.8V (много), ток через диод 1A (норма)
    Вывод: выпрямительный диод — однозначно не подходит!
  2. параллельно диод Шоттки 1N5817 + соляные батарейки = прямое падение 0.42V (ок), ток через диод 1.2A (чуть выше нормы)
  3. параллельно диод Шоттки 1N5817 + старые аккумуляторы Energizer = прямое падение 0.42V (ок), ток через диод 1.2A (чуть выше нормы)
  4. параллельно 2ш. диода Шоттки 1N5817 + старые аккумуляторы Enegizer = прямое падение 0.38V (отлично), ток через диод 1.25A (норма)
    Вывод: если питать только от соляных батареек или убитых аккумуляторов, то вариант «2шт диода Шоттки» сработает. Но это ненадёжное условие…
  5. параллельно 2ш. диода Шоттки 1N5817 + новые аккумуляторы GP = прямое падение 0.485V (ок), ток через диод 4.6A (очень много!)
    (Странно, но на поверку: для схемы, аккумулятор GP оказался злее, чем аккумулятор Energizer — не смотря на его худшие характеристики…)
    Вывод: старичок аккумулятор Energizer — уже не держит большой ток. (снимается с тестов)
  6. параллельно 2ш. диода Шоттки 1N5817 + новые алкалиновые батарейки Energizer = прямое падение 0.53V (много), ток через диод 5.6A (очень много!)
    Вывод: новые алкалиновые батарейки оказались самыми злыми для схемы.
    Вывод: направление правильное… Но надо взять диод Шоттки помощнее!
    (Предупреждение: правда, с возрастанием мощности пропускаемого тока, также возрастает и прямое падение Vf — надо смотреть…)
  7. Сборка-сдвоенный (задействованы оба) ограничительный диод Шоттки SBL2040CT параллельно + новые алкалиновые батарейки Energizer = прямое падение 0.36V (отлично), ток через диод 4.2A (отлично)
  8. Сборка-сдвоенный (задействованы оба) ограничительный диод Шоттки SBL2040CT параллельно + новые аккумуляторы GP = прямое падение 0.36V (отлично), ток через диод 3.8A (отлично)
    Вывод: Силовой ограничительный диод Шоттки SBL2040CT — это подходящее решение, в данной схеме! (хотя и чуток избыточное)

Общий вывод: Итак, да, этот принцип возможен также для защиты силовых цепей! Но только для малых Vcc (с повышением напряжения — КЗ через защитный диод будет становится гораздо деструктивнее) и с рядом побочных эффектов (перегрев диода и перегруз источника напряжения)…

Решение 1: «Последовательно, Выпрямительный Диод» (обычное)

Устройство питается от двух пальчиковых батареек по 1.5V (или аккумуляторов по 1.2V) — соответственно, с учётом разряда батарей, схема рассчитана на питание от 2..3VDC.

Решение1. Последовательно выпрямительный Диод (обычное)

Тестирование Решения 1)
/здесь наиболее критично: только чтобы было малое прямое падение напряжения на диоде, особенно при малом Vcc; а ток через диод будет мал (ток потребления схемы = на новых батарейках макс. до 150mA, а обычно 30мА)/

  1. последовательно диод Шоттки 1N5817 + соляные батарейки = при Vcc 2.7V (среднее), на диоде падает 0.26V (немного — на малом токе), на схему остаётся 2.44V (работает).
    Примечание: Vcc = 2.7V (батарейки средней разряженности)
  2. последовательно диод Шоттки 1N5817 + старые аккумуляторы Energizer = при Vcc 2.78V (среднее), на диоде падает 0.26V (немного — на малом токе), на схему остаётся 2.52V (работает).
  3. последовательно диод Шоттки 1N5817 + новые аккумуляторы GP = при Vcc 2.72V (среднее), на диоде падает 0.26V (немного — на малом токе), на схему остаётся 2.46V (работает).
    Вывод: защитный диод вносит очень предсказуемое занижение = всегда 0.26V.
    МК отключится BOD-схемой при Vcc=1.8V. Итак, батареи должны давать, как минимум = 1.8+0.26 = 2.1V (что есть по 1,05V на один элемент) Это много или мало? Достаточно?

«Слабое место» этого решения — понижение напряжения питания схемы. А аккумуляторы выдают меньшее напряжение, чем батарейки — поэтому являются «более слабым местом» при таком решении.

Замечание! Сколько напряжения дают убито-разряженные аккумуляторы?
Судя по материалам статьи «Олег Артамонов — Тестирование Ni-MH аккумуляторов формата AA» — см. «Графики разряда постоянным током 500 мА» для разных моделей аккумуляторов…

Обвал выдаваемого напряжения ниже 1.1V наступает — при уже практически полном разряде аккумулятора. Все модели аккумуляторов (новые, не убитые), при малом токе разряда — НЕ ПРОСАЖИВАЮТСЯ НИЖЕ >1.1V, до полного разряда. (т.е. не будет ситуации, что схема уже отключается, а аккумулятор ещё недожат)
Вывод: аккумуляторы также отлично подходят!

А с другой стороны: Ток потребления схемы — довольно мал (замечу, что так я думал ДО того, как протестировал потребление LED-индикаторов). Батарейный отсек на 2хAA (был в первой итерации Устройства) — даёт очень значительную энергоёмкость. Так что, тут и батарейки будут рентабельны… Может, и вовсе, не рассчитывать на использование аккумуляторов?

Общий вывод: Решение 1 — ДОПУСТИМОЕ, РАБОЧЕЕ!

Решение 1.5: «Последовательно, МОП-ключ в инверсном включении» (самое лучшее!)

Примечание: этот вариант решения «защиты от переполюсовки» использовал DI HALT для Pinboard II REV 2

Вместо диода (D9), здесь использован полевой транзисторный ключ (Q3), с очень малым сопротивлением Rds_on, и как следствие, с очень малым паразитным падением напряжения питания. Что позволит выжать из батареек, драгоценные, ещё +0.26V питания — что очень существенно, при моей «бедноте»!

P-канальный MOSFET включается в обратном порядке (инверсно) Drain-Source, чем в традиционных ключевых коммутирующих схемах. При этом, у него даже побочный защитный диод между Drain-Source работает на пользу: помогает транзистору быстрее открыться, вначале работы, пропуская «плюс» питания на Подложку(Исток) транзистора… А в обратном направлении — всё закрывается. Вообще говоря, это гениальное решение!

Устройство питается от двух пальчиковых батареек по 1.5V (или аккумуляторов по 1.2V) — соответственно, с учётом разряда батарей, схема рассчитана на питание от 2..3VDC.

Поддерживающий Конденсатор C1 пусть будет подключён: к первичному контуру (непосредственно к батарее, до ключа), а не во вторичный (к нагрузке, коммутируемый, после ключа) — чтобы не мучить Q3-ключ высокими стартовыми токами на зарядку этого большого конденсатора.

Вариант схемы, на P-канальном МОП-транзисторе:

Решение1.5. Последовательно P-канальный МОП-ключ, в инверсном включении (самое лучшее)

Заметим, хоть это и не принципиально, что N-канальный МОП открывается «положительным смещением» (потенциал Затвора > Истока), а P-канальный МОП аналогично открывается «отрицательным смещением» (потенциал Затвора < Истока). Поэтому данная схема абсолютно так же будет работать и на N-канальном МОП, только подключать его следует между отрицательным полюсом батареи и нагрузкой, и также в «инверсном включении»: Затвор будет на «Плюсе», а Исток на «Минусе» батареи питания. Вариант этой схемы, на N-канальном МОП-транзисторе:

Решение1.5. Последовательно N-канальный МОП-ключ, в инверсном включении (самое лучшее)

Транзистор подбирал по следующим критериям, в порядке убывания важности:

  • Vds поменьше, и как следствие, Vgs и Vgs_th поменьше; (чтобы легче управлять и чтобы ключ полностью открывался малым напряжением)
  • Rds самый малый что есть; (чтобы на открытом — была мизерная просадка, даже при большом токе)
  • Id побольше, с запасом. (Ведь irlml6401 пропускает до 4-5А, но только в полностью открытом, ключевом режиме; Однако, ещё нужно учесть, у меня этот транзистор будет болтаться на проводках, а не припаян к плате — нарушен режим охлаждения! Запас мощности на порядок — будет не лишним.)

Перерыв ассортимент ближайших Интернет-магазинов, я нашёл, среди SMD (logic level) MOSFET, мне доступны и наиболее интересны по характеристикам, следующие:

  • irlml0040pbf (N-Channel, Vds=40V, Id=3.6A, Rds=0.078 Ohms, Vgs=16V)
  • irlml0060pbf (N-Channel, Vds=60V, Id=2.7A, Rds=0.116 Ohms, Vgs=16V)
  • irlml2402 (N-Channel, Vds=20V, Id=1.2A, Rds=0.25 Ohms, Vgs=12V, Vgs_th=0.7V!)
  • irlml2502 (N-Channel, Vds=20V, Id=4.2A, Rds=0.045 Ohms, Vgs=12V Vgs_th=0,6..1,2V)
  • irlml2803 (N-Channel, Vds=30V, Ud=1.2A, Rds=0.25 Ohms, Vgs=20V Vgs_th=1V)
  • irlml5103 (P-Channel, Vds=30V, Id=0.76A, Rds=0.6 Ohms, Vgs=20V Vgs_th=1V)
  • irlml5203 (P-Channel, Vds=30V, Id=3A, Rds=0.165 Ohms, Vgs=20V Vgs_th=1..2,5V) — для сравнения: этот, DI HALT поставил на DevBoard2, как защиту по питанию от переполюсовки
  • irlml6302 (P-Channel, Vds=20V, Id=0.78A, Rds=0.6 Ohms, Vgs=12V Vgs_th=0.7V!)
  • irlml6344pbf (N-Channel, Vds=30V, Id=5A, Rds=0.037 Ohms, Vgs=12V Vgs_th=0,5..1,1V)
  • irlml6401 (P-Channel, Vds=12V, Id=4.3A, Rds=0.05 Ohms, Vgs=8V Vgs_th=0,4..0,95V!!!) — мощный, низковольтно управляемый. Мой выбор!
  • irlml6402 (P-Channel, Vds=20V, Id=3.7A, Rds=0.065 Ohms, Vgs=12V Vgs_th=0,4..1,2V!)
  • irlml9301pbf (P-Channel, Vds=30V, Id=3.6A, Rds=0.103 Ohms, Vgs=20V Vgs_th=1,3..2,4V)
  • MGSF3441VT1 (P-Channel, Vds=20V, Id=3.3A, Rds=0.135 Ohms, Vgs=8V Vgs_th=0.45V!)корпус TSOP6, супер ключ для миниатюрных силовых схем

Принцип действия:

МОП-транзистор открывается разницей потенциалов (смещением) между его Затвором и Подложкой. (Подложка — всегда соединяется с Истоком. Поэтому, далее, будем всегда говорить: «смещение между Затвором и Истоком».)
Заметим, хоть это и не принципиально, что N-канальный МОП открывается «положительным смещением» (потенциал Затвора > Истока), а P-канальный МОП аналогично открывается «отрицательным смещением» (потенциал Затвора < Истока). Поэтому данная схема абсолютно так же будет работать и на N-канальном МОП, только подключать его следует между отрицательным полюсом батареи и нагрузкой, и также в «инверсном включении»: Затвор будет на «Плюсе», а Исток на «Минусе» батареи питания.

В данной схеме (см. случай использования P-канального МОП) есть странность: Затвор и Исток подключены к одному полюсу батареи! Откуда же возьмётся «смещение» напряжений? Вторая странность: Затвор (электрод, которым обычно управляют ключом) наглухо подключён к Земле (полюсу «Минус» питания) — т.е. он «не смещаемый», зафиксирован по уровню напряжения.
Ну и ничего: хоть и недвижим Затвор — то смещается Исток, относительно первого, и ключ управляем, таким образом! Смещение (разница потенциалов) же возникает автоматически от протекания тока через полезную Нагрузку (основное питаемое устройство): есть ток — есть смещение, нет тока — нет смещения (это важный момент, запомним!) Причём, в каком направлении возникает смещение? Смещение следует рассматривать только относительно полюса (точки), на котором закреплён Затвор: здесь, при протекании тока через Нагрузку, потенциал Истока поднимется относительно Земли (а на Затворе, соответственно, появится отрицательный потенциал, относительно Истока — что и открывает P-канальный МОП-транзистор).

Симуляция показывает:

При подключении батареи обратной полярности (B1_NEG) — на Затворе и Истоке ключа появляется и удерживается ОДИНАКОВОЕ напряжение (положительной полярности, в данном случае). [Замечу: Это похоже на обычный цифровой ключ (построенный на P-канальном МОП), запертый подачей ему на Затвор уровня лог.»1″…] канал Сток-Исток закрыт, потому ток через нагрузку не идёт — смещения нет. Защитный диод, между Стоком-Истоком, также включён навстречу неправильному напряжения — блокирует ток через ключ и, косвенно, через нагрузку. Статус кво — сохраняется…

Даже если, в начальный момент при включении ключа, на Затворе уже был отрицательный заряд относительно Истока? (Например, оставшийся от предыдущего, правильного режима работы схемы… Хотя так не бывает! Такой заряд бы давно стёк с Затвора и уравнялся с потенциалом Истока, через цепь нагрузки… Но предположим, что вдруг заряд есть?)
На какую-то мельчайшую долю секунды — через цепь протечёт таки ток в обратном направлении: на время, в течение которого Затвор перезарядится положительным потенциалом, из «плюса» источника питания (который сейчас обозначен на схеме как «Земля», к которой и подключён Затвор). За эту же мельчайшую долю секунды — потенциал Истока станет немного меньше, чем потенциал «плюс» питания (за счёт естественного падения напряжения на Нагрузке, при течении через неё тока). Потенциал Затвора > Истока? Такое смещение ЗАКРЫВАЕТ P-канальный МОП! Далее, устанавливается динамическое равновесие потенциалов и «статус кво» сохраняется…

При подключении батареи правильной полярности (B1_NORM): Затвор быстро перезаряжается до нуль-потенциала «Земли». И теперь, чтобы ключ открылся, требуется чтобы на Истоке появился положительный потенциал. Вся Нагрузка приобретает потенциал «отрицательного» полюса Земли (поскольку подключена к нему непосредственно). Но ключ пока закрыт, ток через Нагрузку не идёт — смещения потенциалов нет… На какое-то время…
Однако, на Сток (Drain) транзистора уже поступает положительный потенциал! И токи утечки «Drain-to-Source Leakage Current» (Idss=1..25uA) — хоть и малы, но есть! И через какое-то (продолжительное) время, заряд станет проникать на Исток, а значит и понемногу накапливаться на Подложке. Если, конечно, не будет успевать стекать через Нагрузку на Землю: «токи утечки» то мизерные -> падение напряжения на Нагрузке также мизерное -> смещение практически нулевое. Нет, транзистор не сможет открыться токами утечки!

И тут (тадам!) на сцену выходит «побочный защитный диод» между Drain-Source и шунтирует закрытый ключ, пропуская значительный ток на Нагрузку: он способен протащить через себя аж «Continuous Source Current MOSFET symbol (Body Diode)» Is=1.3A /замечу: такой ток способен вызвать на Нагрузке уже значительное напряжение!/ Да, на диоде падает, конечно, какое-то напряжение «Diode Forward Voltage» Vsd=1.2V… Но тот потенциал что остался, заряжает Исток/Подложку непосредственно -> возникает уверенное «смещение» и ключ открывается.
Вся эта драма продолжается, конечно, мельчайшую долю секунды. Но диод здесь играет очень важную роль! Без него бы ключ мог и не открыться, или открываться неуверенно, или долго… Так что, если в вашем МОП-транзисторе такого диода нет (хотя современный техпроцесс изготовления МОП-транзисторов этого не допускает) — то его следовало бы добавить в схему дискретно — он полезен и важен.

Тестирование Решения 1.5:

При ЭДС батареек = 2V
Ток потребляемый устройством, при этом = 20мА
Падение напряжения на открытом ключе (паразитное) < 10mV

При ЭДС батареек = 3V
Ток потребляемый устройством, при этом < 110мА
Падение напряжения на открытом ключе (паразитное) < 80mV

Разделительный Конденсатор по питанию

Внимание важно!
И конечно, по всем правилам монтажа: рядом с каждой Цифровой Микросхемой запаивается Разделительный Конденсатор по питанию!

Какого номинала ставится?

  1. Я читал в статьях, общие рекомендации говорят: «по 100nF на микросхему».
  2. На старых совковых платах замечено: попарно стоят, рядом с каждой микрухой, 100nF и 47nF.
  3. Также, читал продвинутые статьи по теме:

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

В итоге, решил установить, рядом с каждой цифровой микросхемой, по одному 100nF. Думаю это оптимально: места на плате у меня мало, а питание стабильное. Кроме того, источники питания (батарейки) — также зашунтированы электролитом на 47мкФ.


Цифровой Инкрементальный Энкодер «RE1203XC1-H01»

Ручку управления «Цифровой Энкодер» — смоделируем с помощью стандартной модели MOTOR-ENCODER… (замечу: модели отдельного энкодера нет в стандартной библиотеке Proteus)

Рецепт взят с форума Kazus:

Подключение: Один конец мотора на землю, на второй две кнопы с +12V и -12V;
В свойствах мотора выставить: массу ротора минимальную Effective Mass=1u,
нагрузку тоже Load/Max Torque %=1, чтобы он по инерции не крутился.
Оборотики уменьшите под себя: например, Zero Load RPM=20,
ну, и количество импульсов на оборот: Pulses per Revolution=24 (для RE1203XC1-H01: 24pulses/360°) — тоже под себя
(обычно для ручных контактных энкодеров от 12 до 15, иногда и побольше)…

Требуется эмулировать: «Энкодер RE1203XC1-H01 (с кнопкой, вертикальный, металл.вал)»
Даташит на «Энкодер RE1203XC1-H01» есть! В нём: диаграмма импульсов на выводах — соответствует выходной на графике MOTOR-ENCODER (сверено).

Аналоговый График выходов с MOTOR-ENCODER Аналоговый График выходов с Итоговой Модели Энкодера

Но отличия «MOTOR-ENCODER» в том, что на выходе своего энкодера (Q1, Q2) — он даёт уже логические уровни напряжений (до VCC). А Энкодер «RE1203XC1-H01» — лишь попарно замыкает ножки, из трёх выводных (A, B,C)… Поэтому, в модели, для преобразования схемотехники под требуемое поведение — требуется задействовать ещё и каскад выходных ключей/реле.

Энкодер RE1203XC1-H01 - моделирование в Proteus

ПОДКЛЮЧЕНИЕ к целевой схеме:

Для энкодера «RE1203XC1-H01», даташит предлагает ещё аналоговую обвязку в виде буферных RC-цепочек — для минимизации дребезга контактов. Но в данном случае, опрос энкодера будет производиться динамически: периодически, очень быстро (за единицы мкс) напряжение будет подаваться на пары контактов (положение кнопки «прозванивается») и тут же сниматься — при такой схеме работы, RC-цепочка (очень инертная) будет тупить и только мешать работе.

В случае данного применения, эта обвязка использоваться не будет — дребезг контактов будет устранятся программно-логическим образом, в МК: все кнопки будут пропускаться через процедуру «ректификации дребезга» (Интегратор Канала)…


LED-индикатор семисегментный одноразрядный «SM420361N/8»

Куплен в ЧП «Ворон»: Индикатор «SM420361N/8», цвет «Красный ультра», ОК (ОБЩИЙ КАТОД), высота символа 9,144мм

Характеристики «SM420361N»: Даташита в сети нет! Только краткие общие характеристики/графики на официальном сайте, см. «Ultra Bright Red Typical Electrical-Optical Characteristics Curves».

Для справки:

Подключение и согласование

Практический тест 1 (режим светодиода):

  • При меньшем напряжении — закрыт и не светит…
  • Диод открывает при 1.7V (падение напряжение на открытом = 1,7V)
  • При 1.8V — светит уже вполне заметно (не очень ярко, но достаточно). Потребляет до
  • При 1.9V — светит заметно ярче, чем ранее, но ненамного (это не нужно). Потребляет до <6,5mA на сегмент.
  • Выше — нельзя (слишком ярко светит: риск сгореть, и много потребляет)!

Задача:
Подобрать токоограничивающий резистор, при напряжении питания VCC=2-3V (+-0,5V).
Решение:

  • При Vcc=2V (низшее питание), нужно обеспечить, как минимум: 1.8V на диоде (и ток должен быть около 2mA)…
  • На диоде упадёт, судя по графикам «даташита», в зависимости от степени открытия: 1,7..2 VDC
  • Питание обеспечивает: 2..3 VDC
  • На резисторе будет падать: (2..3)-(1,7..1,9) VDC
  • Ток будет течь: от 2mA и более (чтобы LED не погас)
  • Следовательно, сопротивление должно быть, максимум: Rmax=(Vcc_min-Vdrop)/Imin= (2-1.8)/0.002 = 100 Ом

Выводы:

  • R = 68-100 Ом
  • где 100 Ом — экономичнее потребление (и распространённее резистор) — ОПТИМУМ!
  • а при выборе 68 Ом — индикатор однозначно будет светить ярко, даже при самом низком питании.
    Низкое питание может быть из-за: разряженных батареек… или ещё возможны:
    падения напряжения в выходном каскаде сдвигового регистра, питающего LED (по его даташиту: Vout = VCC +-0.5V).

Практический тест 2 (на готовом устройстве):

  • Токоограничивающий резистор, на каждом сегменте: 100 Ом (обеспечивает отличную яркость, но без излишеств, во всём диапазоне питания)
  • Питание: Vcc=~3V

Полный ток экрана из 5шт. индикаторов: Iвсе = 60-70mA, при засветке примерно 23шт. сегментов. Следовательно, потребление каждого сегмента: I1 = 2.6-3мА (что является, в пределах расчётного)

Но, блин, какой же большой ток потребления у LED-индикатора, в целом! В итоге, всё устройство потребляет до 100мА — и сжирает новые батарейки на раз! (Для справки: светодиодный фонарь GP LOE206, с одним сверхярким 3W светодиодом, потребляет, от 3хAAA, также 100мА.)

Вывод: нужно предусмотреть в устройстве режимы энергосбережения (пригашения/выключения экрана после таймаута).

Моделирование в Proteus

Для моделирования «одноразрядного семисегментного LED-индикатора» с общим катодом («Common Cathode»=CC) в Proteus доступны две модели: «7SEG-COM-CATHODE» (аналоговая) и «7SEG-MPX1-CC» (цифровая).

LED-индикатор семисегментный одноразрядный - моделирование в Proteus

Внимание: Нижний индикатор «7SEG-MPX1-CC» — является «цифровым»! На нём нельзя моделировать ток через диод. Он будет использоваться только для отладки программы в МК, причём только в случае: без «динамической индикации».


Звукоизлучатель (Бузер с генератором): моделирование и тестирование, особенности питания

Бузер «KPX1203B» — тестирование

Паспортные характеристики:

  Product ID                    KPX-G1203B
  Rated Voltage 		3VDC
  Operating Voltage 		2..5VDC
  Max.Rated Current 		30mA/3VDC
  Resonant Frequency 		3100±500Hz
  Min.Sound Pressure Level 	85dB/10cm
  Operating Temperature 	-20~+70°C
  D(mm) 			Ø12
  H(mm) 			7.5
  weight 			2g

Условия тестирования:

  • при напряжении питания 2..3V
  • бузер с «рабочим напряжением»=2..5VDC (рекомендуемое = 3VDC) (пищать начинает: от 2VDC)
  • Внутреннее сопротивление бузера = 160..180 Ом (на самом деле, нелинейное — изменяется в диапазоне рабочих напряжений питания: от 180Ом при питании 2VDC; до 160Ом при 4VDC…)

Результаты тестирования одиночного элемента:

U,VDC	I,mA	R,Ом
1.5	7.6	197	(не пищит)
2	11	180	(начал генерировать)
2.5	14.7	170
3	18.1	166	(с возрастанием напряжения 2..3VDC: тон незначительно меняется - становится ниже; но громкость - так же)
3.5	21.4	164	(далее >Vcc, тестировать нет смысла...)
4	24.8	161
4.5	28	160
5	31	161

Выводы:

  • При 2VDC питания, бузер выходит на режим.
  • Ниже — нельзя, бузер сбоит и не пищит.
  • Выше — не стоит: с повышением напряжения, громкость бузера не увеличивается! Только чуть-чуть повышается звуковой тон (конденсаторы генератора заряжаются быстрее, но в целом, резонатор генератора держит частоту неизменной).
  • Но, при повышении напряжения питания — увеличивается потребление тока в 2-3 раза (и вероятно, также, повышает износ элемента).
  • Итак, оптимум питания: 2..3VDC (что соответствует батарейкам 2xAA: при их разрядке, напряжение будет падать от ~3V до ~2V. Также поддерживаются аккумуляторы: 2xAA по 1.2V = от 2.4V)

Бузер «KPX1203B» — моделирование

Чтобы прощупать границы возможностей генерирующей схемы Бузера — также, была промоделирована возможность ограничения питания Бузера, за счёт подключения последовательного токоограничивающего резистора:

Звукоизлучатель KPX1203B - моделирование в Proteus

Выводы: Подключать последовательный резистор бессмысленно!

  • Маленький резистор (4.7 Ом) не оказывает существенного влияния (при, на порядок, большем сопротивлении бузера).
  • А большой резистор (47 Ом) — нарушает работу схемы: фактически бузер не сможет пищать из-за пониженного напряжения питания на нём.

Бузер «KPX1201B» — тестирование

Паспортные характеристики: (хотя, тесты их опровергают)

  Product ID                 KPX-G1201B1
  Rated Voltage              1.5VDC
  Operating Voltage          1.6~3VDC
  Max.Rated Current          30mA/1.5VDC
  Resonant Frequency         3100±500Hz
  Min.Sound Pressure Level   75dB/10cm
  Operating Temperature      -20~+70°C
  D(mm)                      Ø12
  H(mm)                      7.5
  weight                     2g

Результаты тестирования одиночного элемента:

U,VDC	I,mA	
1.5	11	(Нижняя граница рабочего напряжения! Меньше нельзя - звук затухает.)
1.6	12.8	
2	18.7	(Вышел на режим! При 2..3V - звук уже не меняется, от напряжения.)
3	31

Выводы:

  • Однако, учитывая, что уровень «лог.1» < Vcc = 1,8 .. 2,8V.
  • Кроме того, бузер подключается через каскад усиливающего транзистора Q1 (а на нём, открытом, падает до полувольта) (и возможно, последовательно, будет ещё один ключ «отключения земли»?)
  • То, в итоге, в схеме, был использован бузер KPX1201B — более оптимальный по питанию Vcc=2..3V

Особенности питания Бузера

Бузер требует усиленного питания

0) Вначале, была использована схема подключения: Бузер вешался прямо на выход сдвигового регистра, без усилительного каскада на транзисторе (Q1); да ещё и, на этот выход, параллельно, был повешен сегмент точки последнего разряда индикатора. (Предполагалось: при зажигании последнего сегмента индикатора — также будет выдаваться звуковой сигнал.)

По результатам макетного моделирования: эксперимент показал, что нагрузочная способность сдвигового регистра недостаточна для питания Пищалки и Светодиода одновременно — вывод не справляется, перегружен, напряжение падает (до ~1.75V, при питании 3V) и Пищалка не пищит…

1) Поэтому, сперва, было принято решение: отключить светодиод точки на последнем индикаторе! Однако, при этом, сдвиговый регистр всё равно выдавал недостаточную мощность…

2) Тогда пришлось внести усилительный транзисторный каскад (стандартное решение): РЕАЛИЗАЦИЮ КАСКАДА смотри на общей схеме — ключ Q1.

Замечу: В такой ситуации, все используют биполярный транзистор, для Q1.
Но я пробовал поставить полевой транзистор «2N7000» (такой же как и Q2 — думал, пусть в схеме будет поменьше разнотипных деталей). Однако узнал, что на открытом полевике 2N7000 просаживается аж до Vds=0.5-1V (против Vce — это из-за слишком большого Rds=5Ohms…
Потому передумал, и поменял Q1 обратно, на обычный биполярный «BC547» (NPN).


Последнее предупреждение: дальше, лучше не читать…


Попытки сгладить пульсации тока потребления Бузера (неудачные)

Поначалу, для прерывания шины «Альтернативной земли», я использовал МОП-ключ (Q2) с плохими характеристиками: 2N7000 (N-Channel, Vds=60V, Id=200mA, Rds=5 Ohms, Vgs=20V, Vgs_th=0,8..3V) — маленький дешёвый, выводной (не SMD), доступный мне. Причём, у меня не было в наличии, и не мог купить, никакого другого небольшого/маломощного МОП-транзистора в выводном исполнении (не SMD)!
Но из-за того, что у 2N7000 такое большое сопротивление открытого канала (Rds) — на нём просаживается очень большое напряжение (аж до Vds=0.5-1V), ведь ток с индикаторов идёт большой. Поэтому, я имел множество трудностей согласования элементов схемы. Особенно, при разряженных батарейках и пониженном напряжении питания — индикация начинала глючить: в частности, притухали LED, хрипел и затыкался бузер. Вот это я и пытался преодолеть всякими нестандартными ухищрениями…

Осциллографом было замечено, что Бузер потребляет неравномерно: напряжение питания на нём представляет собой хаотичную гребёнку, из-за просадок напряжения на (Q1+Q2), при пиках его токового потребления. (Примечание: Эта пульсация была особенно заметна, когда я сперва неправильно собрал ключ Q1: поставил NPN-биполярный, но Бузер втулил ему в Эмиттерную цепь — так на пиках потребления потенциал Эмиттера подскакивал, транзистор призакрывался, ток зажимало — Бузер хрипел и затыкался.)
На осциллограммах, ниже, отчётливо заметно: когда Бузер включается, здесь напряжение падает до ~0.5V, то отчётливо заметны «акульи плавники» (пики потребления)…

В общем, я не знаю как устроена внутренняя схема Бузера, но решил попробовать втулить ему разделительный конденсатор по питанию (как и на всех цифровых микросхемах), чтобы сгладить пики потребления генератора…

Каким номиналом разделительного конденсатора достаточно зашунтировать Пищалку, чтобы сгладить пики потребления?
Расчёт:

  • Пищалка потребляет минимум I=10мА, при питании U=2V.
  • Пусть, хочу, чтобы конденсатор питал Пищалку не более 2мс (чтобы не пролонгировать звук пищалки далеко за тайминги обновления индикатора).
  • C*U=q=I*t => C=I*t/U. Тогда C=10мкФ…
  • Блин, да чё я буду электролит туда ставить? Нет! Значит, будет: C=1.5мкФ (самая большая «керамика» в моих загашниках)… Или нет, пусть будет: C=1мкФ (просто, под руку первая попалась). Я хотел увидеть хоть какой-то эффект от этого конденсатора — поэтому номинал, здесь, не очень важен!

Макетное моделирование (осциллограммы уровня «Альтернативной Земли»):

Бузер, шунтированный разделительным конденсатором — включён между «Питанием» и «Альтернативной Землей», как и будет работать в целевой схеме (создаёт большие помехи на «Альтернативной Земле»):
Бузер, шунтированный разделительным конденсатором

Бузер, НЕ шунтированный разделительным конденсатором — включён между «Питанием» и «Альтернативной Землей», как и будет работать в целевой схеме (выглядит практически так же, как и с конденсатором):
Бузер, НЕ шунтированный разделительным конденсатором

(Не, ну, кондёр на 100мкФ, думаю, значительно сгладил бы картинку пульсаций на бузере, хотя и не убрал бы полностью. Вот только ценой больших побочных эффектов. А кому ж такое надо?..)

Вывод: конденсатор — убрать оттуда нафиг! ;-) Т.к. он не помогает ни Бузеру, ни шине «Альтернативной Земли», но создаёт дополнительную ёмкостную нагрузку…

На самом деле, причина этих «акульих плавников» — они порождались падением напряжения в открытом канале «2N7000», с его большим сопротивлением. Поэтому, эта проблема с Бузером решилась автоматически, когда я перешёл на «правильный» МОП-ключ Q2: irlml6344 (N-Channel, Vds=30V, Id=5A, Rds=0.037 Ohms, Vgs=12V Vgs_th=0,5..1,1V).


Механизм Пригашения Индикаторов, при обновлении-загрузке содержимого в Сдвиговые регистры

В Устройстве используется индикация: статическая, на сдвиговых регистрах. Опытные электронщики уже наверняка знают: зачем в той схеме нужен ключ VT1, управляемый сигналом «Ready»? Но я, по началу, не знал насколько он важен…

Внимание: По результатам макетного моделирования, эксперимент показал, что при выводе информации на дисплей, при отработке процедуры DISPLAY_REFRESH, при проталкивании всей последовательности через сдвиговые регистры — на короткое время зажигаются все сегменты дисплея.

Сама процедура DISPLAY_REFRESH отрабатывает за 1/55 сек — что в два раза быстрее, чем заметное человеческому глазу 1/25 сек… И я думал, что столь быстрый рефреш никак не будет замечен пользователем… Но проблема возникает из-за ПОСЛЕСВЕЧЕНИЯ LED-индикаторов: при обновлении изображения (каждые пол секунды), экран ярко вспыхивает! И это очень заметно, просто невозможно пользоваться таким устройством, раздражает!

Бузер, который тоже управляется от выводных сдвиговых регистров — также, попёрдывает при загрузке данных: квохчет, каждые пол секунды… Электронная квочка дома — это прикольно! Но уже через 15мин, от этого квохтанья, голова идёт кругом.

Это проблема, которую нужно решить!

Правильное решение: вместо сдвигового регистра 74HC164 (14pin, с непосредственным выводом), использовать сдвиговый регистр SN74HC595 (16pins, 3-STATE OUTPUT REGISTERS). Последний имеет отдельный выходной буфер (который фиксирует состояние выходных сигналов и поддерживает его пока идёт загрузка данных) и строб-вход (по которому данные из внутренних триггеров копируются в выходной буфер).

Подключение регистра к МК: «строб-вход» — это дополнительный функционал, им нужно управлять, и для этого задействовать ещё один вывод Микроконтроллера (а у меня их всего: только три, для всей периферии)… Но в данном случае, можно было бы легко использовать пин «Clock1»: он используется для сканирования клавиатуры, и разнесен по времени использования от вывода в регистры индикатора. Если даже, с каждым синхроимпульсом сканирования клавиатуры «Clock1», данные будут повторно копироваться на выход SN74HC595 — то это не проблема, ничего не изменится, т.к. в это время данные в выводных регистрах не меняются.

Загрузка данных в регистры: Во время отработки процедуры DISPLAY_REFRESH, когда идёт вывод данных на дисплей — то «Clock1» и сканирование клавиатуры не используется. (можно даже совсем не менять программу)

Но есть проблема: Плата уже распаяна, и она столь нетехнологична, что переделке не подлежит. Кроме того, сдвиговый регистр SN74HC595 имеет на два выхода больше — а корпус использован маленький, и размеры платы таковы, что и 14pin-регистры влазят едва-едва впритык! Таким образом, нужно поискать другое решение…

Извратное решение: состоит в том, чтобы на время загрузки данных в сдвиговые регистры 74HC164 — отключать питание у LED-индикаторов, с помощью ключа… (Тут парню пришла та же идея.)
А заодно, можно отключать и питание Бузера, который тоже попёрдывает при загрузке данных! Хотя последний баг прикольно звучит: как стрелочные часики тикают. Может и оставлю как есть?.. Та не, отключу нафиг! Когда усилил ему питание (транзистором Q1), то он стал звонко цокать — за час процокал мне все уши, звенят.

Но свободных выводов у Микроконтроллера уже нет! Чем управлять?
Будем управляет тем же «Clock2″: который будет, через усилительный каскад на транзисторе, включать (при длительном Clock2=»0″) и отключать (при длительном Clock2=»1») питание для индикаторов. А синхроимпульсы Clock2 будут очень короткие — будут сглаживаться/экранироваться интегрирующей RC-цепочкой, перед базой транзистора Q2. DI HALT описал идею тут…

Расчёт RC-цепочки: при XTAL_CPU=32768Hz, длинна одного такта МК = 30,5мкс. Ширина синхроимпульса = времени выполнения макроса SETB/CLRB = 1-2такта (если доступны инструкции SBI/CBI, для вывода в этот порт) или 3 такта (если переключать бит через IN+OR/AND+OUT). Итак, три такта… Нет, в худшем случае, пусть: 4 такта!

  • Если взять R=1кОм и C=10nF (как в статье), то время полного заряда/разряда будет составлять 3*R*C=30мкс. (хм, как раз один такт — но маловато…)
  • Если взять R=4.7кОм и C=10nF (подходит), то время полного заряда/разряда будет составлять 3*R*C = 141мкс = 4.62 такта CPU. (что погасит любой синхро-строб Clock2!)
  • Если взять R=15кОм и C=4.7nF (надёжнее), то время полного заряда/разряда будет составлять 3*R*C = 211,5мкс = 7 тактов CPU. (что погасит любой синхро-строб Clock2!)

Симуляция показывает: что с другой стороны, для согласования с остальной схемой, резистор НУЖНО брать на порядок больше (а кондёр, наоборот, поменьше) — чтобы уменьшить ток во входной (управляющей) цепи, которая кстати цифровая! И завалы фронтов, от просадки через RC-цепочку, ой как не любит!

Кроме того, здесь, номиналы «постоянной времени» R*C — МОЖНО и ЛУЧШЕ брать на порядок больше (R=100кОм и C=4.7nF), чем при расчёте на единичный импульс. Тут же идёт посылка из серии импульсов (то было 0-0-0-0-0-… и вдруг 1-1-1-1-1-0-1-1-1-) и, вместе с приходом посылки, происходит «аддитивный заряд-разряд» конденсатора СРЕДНЕИНТЕГРАЛЬНЫМ УРОВНЕМ ПОСЫЛКИ, а не единичным импульсом (который оценивается через «постоянную времени» 3*R*C). Тут симуляция правильнее показывает!

РЕАЛИЗАЦИЮ МЕХАНИЗМА смотри на общей схеме — ключ Q2, цепочка C2 R46.
Замечу, что с введением в схему RC-цепочки — потребление устройства увеличилось незначительно: до +5мА (точнее не оценить).

Решение №1: RC-цепочка + биполярный ключ, в инверсном включении (ошибочное и нерабочее)

Макетирование:

Сразу, принялся проверять идею в железе, на макетке: RC-цепочка (R=100кОм С=4.7нФ) питает Биполярный ключ (BC557 PNP, включен инверсно — т.е. неправильно)
Решение 1 (RC-цепочка + биполярный ключ) - Потенциал шины Альтернативной Земли: Сначала, импульс загрузки данных. Затем, индикация включается (уровень понижается)

По результатам макетного моделирования, эксперимент показал: что сам принцип управления ключом через RC-цепочку (R=100кОм * C=4.7nF) — в общем, работает. Но как-то херовато. Решил, что параметры ещё надо подобрать…

Разбор ситуации:

Из осциллограммы, выше, кажется, что ёмкость конденсатора C2 слишком мала для сглаживания пульсаций синхроимпульсов «Clock2″: при загрузке данных (когда доминирует уровень Clock2=»1″) — всё равно, идут иголки, где Clock2=»0». Причём, просадка иголок приличная (до половины Vcс) — таким образом, данная RC-цепочка неспособна управлять БИПОЛЯРНЫМ ключом! В чём причина?

  • Причина: При том, что «постоянная времени» RC хоть и выбрана правильно, но я перекосил соотношение: R (слишком велико, потому обеспечивает малый ток заряда) и С (слишком мало). Такая RC-цепочка, вероятно, хорошо управляла бы ключом на Полевом транзисторе. Но биполярный транзистор — не тянет.

Также замечу (из осциллограммы, выше), что при закрытом ключе, на Эмиттере Q2 (это потенциал «альтернативной земли») наблюдается напряжение Vce=2.4V, а не уровень «лог.1″=3V… В чём причина?

  • Дикое предположение: Возможно ли, транзистор Q2 не полностью закрывается? Если R*C всё же слишком велика, так что C2 недозаряжается? Или конденсатор C2 разряжается через Коллектор биполярного транзистора на «Землю», что мешает работе RC-цепи?
  • Объяснение: Нет, транзисторный ключ закрывается полностью, а величина Vce=2.4V правильная и ожидаемая.
    Реальное напряжение питания схемы Vcc=уровень «лог.1″=2.8V (батарейки 2xAA дают +3V, но минус -0.26V просадка на защитном диоде Шоттки). На p-n переходе LED-индикаторов «SM420361N», в прямом направлении, в полуоткрытом состоянии, падает ещё -0.6V. Итого, на Q2 остаётся: Vce=2.4V

Однако, обнаружена большая проблема: использованный в качестве ключа Q2, биполярный транзистор BC557 (PNP, 50V, 0.1A, 0.5W), при открытии — не входит в режим насыщения. При таком полуоткрытии ключа — просадка на нём получается Vce=1.2V (это потенциал «альтернативной земли»). Данный факт критичен — индикаторы горят недопустимо тускло!

  • Во-первых, я допустил здесь грубую схемотехническую Ошибку: ключевой биполярный транзистор включил не той стороной, нагрузку сунул ему в Эмиттерную цепь, а не в Коллекторную! Был движим желанием управлять ключом не инверсным, а прямым сигналом — чтобы подача «лог.1» закрывала транзистор, отключая/отсекая нагрузку от «Земли», а не наоборот (ну, мне сперва показалось, что здесь так удобнее управлять, и что это допустимо)… И в качестве ключа Q2, поставил транзистор PNP, эмиттер (управляющий электрод) которого не подключён к полюсу Земли/Питания непосредственно (как надо), а подключён к нагрузке (т.е. как бы, к средней точке «делителя напряжений») — и его потенциал болтается при открытии/закрытии транзистора, что очень усложняет управление ключом!
  • Во-вторых, внезапно: при открытии биполярного транзистора Q2, ток из его базы начинает подзаряжать C2 (номинал которого относительно мал, 4.7nF)! При этом НЕДОСТАТОЧНО ТОКА утекает через резисторы R46=100кОм + разделительный R43=15кОм, через порт МК в землю (единственный путь разряда C2). Итак, конденсатор C2 недоразряжается, напряжение на базе держится высокое, и PNP-транзистор не открывается до насыщения.

Выводы:

  1. Таким образом, закрывается транзистор ещё приемлемо: когда задираю уровень Базы до «лог.1» — База-Эмиттерный переход обедняется, транзистор начинает закрываться — его сопротивление растёт, потенциал Эмиттера также растёт, по мере закрытия, примерно до уровня «лог.1» (транзистор Q2 запирается надёжно).
  2. Но что происходит при открытии? Хочу опустить уровень Базы до нуля=»Земля»=»лог.0″ (и ошибочно предполагал, что так будет, но упустил из виду C2)… Но на самом деле, уровень Базы опускается лишь до потенциала на C2. А по мере открытия Q2, ток из Базы также возрастает (через База-Эмиттерный переход) — и хоть какой он ни маленький, а начинает подзаряжать C2!
  3. С другой стороны, когда транзистор начинает открываться — его сопротивление Эмиттер-Коллектор уменьшается, и потенциал на Эмиттере также стремительно падает (вот что я совсем упустил из виду! и употребил транзистор неправильного типа). Таким образом, по мере открывания Q2, уровень Базы задирается вверх, а уровень Эмиттера опускается вниз — транзистор не сможет перейти в режим насыщения, а остановится на уровне, когда Vce > Vc2+0.6V …

Симуляция:

Чтобы разобраться в подробностях процесса, была составлена схема в симуляторе:
Механизм Пригашения Индикаторов. Решение 1 (RC-цепочка + биполярный ключ)

Данная симуляция показывает интересный эффект: подзаряд конденсатора C2, через базу открытого транзистора Q2. Вследствие чего, напряжение на базе Q2 постоянно поддерживается повышенным — и транзистор никак не может полностью открыться, перейти в насыщение!

Тест план:

  1. Отключить генератор управляющего (пульсирующего) сигнала «InputGenerator» соответствующей кнопкой, рядом с ним.
  2. Запустить симуляцию. (Т.е. на момент запуска симуляции — генератор должен быть отключён!) Сейчас, LED-индикатор включён.
  3. Нажать кнопку, подключив генератор «InputGenerator» к RC-цепочек. Конденсатор зарядится, напряжение на Базе PNP-транзистора возрастёт — он закроется. LED-индикатор выключился. Примечание: То, что сигнал генератора здесь «пульсирующий» — ничего особого не значит, RC-цепочка его всё равно проинтегрирует в некий уровень на Базе транзистора. Можно было бы взять и просто генератор DC-уровня «лог.1», но так интереснее — демонстрируется также интегрирующая способность RC-цепи.
  4. Отжать кнопку, отключив генератор «InputGenerator»… Должен пойти разряд конденсатора C2, через R46+R14, на землю… Разряд конечно идёт, но вместе с этим, идёт также подзарядка конденсатора через Эмиттер открытого Q2! Транзистор Q2 открывается не полностью (Vce велико) — и LED-индикатор НЕ включается (малое падение напряжения на нём).
    Выводы:
  • Поэтому, при больших сопротивлениях R46+R14, транзистор Q2 — может даже никогда не открыться полностью (как в данном случае)!
  • При малых сопротивлениях R46+R14 — транзистор-ключ, в конце концов, закроется. Но время его закрытия (спад) будет значительно больше, чем время открытия (фронт) — это надо также учитывать!

 

  • Чтобы убедиться, что проблема именно из-за больших R46+R14 — зажмите кнопку, напрямую соединяющую Базу транзистора с «Землёй». Конденсатор тут же разрядится, ключ откроется
    (В данной симуляции: напряжение Vce, при этом падает на целый вольт, 2.8V до 1.8V; впрочем, всё равно оставаясь слишком большим — транзистор Q2 не в насыщении!)
    Примечание: данный эффект наблюдается также на моём реальном экспериментальный макете (смотри осциллограмму, выше). После пакета импульсов, при спадании уровня Clock2=»0″ и открытии ключа — транзистор открывается не полностью: уровень напряжения Vce — всё ещё слишком высокий, более 1.2V.

 

Workarounds:

Попытка поиграться параметрами вышеуказанной схемы, чтобы хоть как-то приспособить её к жизни, решить задачу:

1)
Попробовал взять другое соотношение R (на порядок меньше) и C (на порядки больше), при том же биполярном Q2=BC557.
Экспериментально установлено, что оптимальные соотношения RC-цепи для управления биполярным Q2=BC557: (R46+R43)=2*15кОм, C2=47нФ. (здесь, для справки: 3*R*C=4230мкс, что на порядок больше теоретической!)
Хотя при этом, просадка на открытом (в насыщении) биполярном ключе: минимум, Vce=0.375V (как и ожидалось — ненулевая!)
Индикатор не блымает, хотя мерцает, притухает при обновлении — каскад помог!
Однако, индикатор едва светит: уже заметнее, чем при Vce=1.2V, но всё равно не годится. Надо перепаивать резисторы R1..R40 с номинала 100 Ом, на меньший… («Убиться веником! Да ипись оно всё конём!» — подумал я.)

В итоге, для этого «единичного экспериментального макета» (который допустимо сделать коряво и неконцептуально правильно), остановился на половинчатом решении: поднял напряжение питания на ещё одну пальчиковую батарейку: до 3xAAA = 4.5V.
При этом, яркость индикаторов возросла до практически нормального состояния.
Однако, таким образом, я похерил всю концепцию низковольтного питания: специально ж подбирал/искал микроконтроллер на 2..3V и схему подгонял…
Также, улетела в трубу рациональная компоновка корпуса: теперь батарейки не умещаются в корпус и будут болтаться снаружи, прилепленные какими-то соплями…
Да и соплей висящих на проводках (усилительных каскадов, собранных «объёмным монтажом») — прибавилось…
Э-эх! В общем, конструкция «удалась»! Граблей поимел немерено — как и задумывалось… ;)

2)
А Бузер мне так и не удалось заглушить на время обновления! Внутри него встроена хитрая схема генератора, рассчитанная на определённое фиксированное напряжение питания. И бузер начинал мутно глючить, при подключении последовательно к нему ещё одного транзисторного-ключа: получилась цепочка «Транзистор-Бузер-Транзистор» — падения напряжений на элементах распределялись непропорционально, и сильно нелинейно изменялись, при включении/выключении и генерации Пищалки… В итоге: Генератор затыкался, частота срывалась; или чаще всего — Пищалка просто не работала, не генерировала. Заметил: Не смотря на то, что цепь питалась от Vcc=4.5V — на Бузере выпадало напряжение только около 1V — это потому что транзисторы не полностью открывались. И ток через бузер был очень нелинейный.

Чисто экспериментально определил, что Бузер лучше всего работает (на повышенном Vcc=4.5V) — если доставить ему последовательно простой резистор 50-60V. Тогда, в диапазоне Vcc=3,5..4,5V — он, «скорее всего, не будет затыкаться». И кратковременные тиканья, при обновлении экрана, при этом резисторе — звучат как-то несколько приглушённее…
Эти тиканья никак не хотели пропадать! И стали, для схемы, более суровым звуковым испытательным критерием, чем визуальный: Даже когда Индикаторы, визуально, уже не мерцали (на самом деле: мерцали, но незаметно). Если тайминги схемы гашения всё ещё были кривыми — то Бузер честно, явно и заметно тенькал.

Кроме того, Бузер нельзя ложить на ту же шину «Альтернативной Земли», что предназначена для Индикаторов — для Бузера пришлось собрать отдельный ключевой-каскад и свою «Альтернативную Землю №2»! Иначе, при подключении на единую шину Индикаторов и Бузера, наблюдалась следующая пачка «эффектов»:

  • Суммарный ток потребления был выше — и напряжение на шине «Альтернативной Земли» значительно повышалось, вернее, скакало в гораздо больших пределах…
  • Наводки от Индикаторов сильно влияли на генератор Бузера (генератор срывался и затыкался).
  • И сильно пригасала яркость Индикаторов, при подключённом параллельно и звонящем Бузере.

Решение №1.5: RC-цепочка + биполярный ключ, в прямом включении (схемотехнически невозможное)

Первым делом, исправим тип использованного транзистора и способ его включения на правильные…

Правильное включение транзистора в схеме «цифрового ключа» (см. «Хоровиц П., Хилл У. — Искусство схемотехники» (изд.5) [1998] / глава «3.14. Логические и мощные ключи на МОП-транзисторах», стр.161):

  • между Нагрузкой и «Землёй» — можно использовать ТОЛЬКО транзистор NPN-биполярный или N-канальный МОП.
  • И уже от типа использованных ключевых транзисторов — и диктуется распределение уровней управления: «лог.1» будет открывать ключ, а «лог.0» — закрывать (и только так)…

Итак, ключевые транзисторные схемы каноничны — это т.н. «Схемы включения с Общим Эмиттером» (или «с Общим Истоком», для МОП) — обеспечивающие максимальную передачу мощности в выходном каскаде. Не так ли?

Но замечу, что В ДАННОЙ СХЕМЕ: Q2 управляется через RC-цепочку… И это накладывает особенность, что здесь использовать биполярный NPN-транзистор также НЕЛЬЗЯ:

  • потому что C2 моментально разряжается через открывающийся База-Эмиттерный переход Q2 (ток поступающий через резистор R46 << тока уходящего в базу Q2) — такой ключ никогда не откроется, потому что напряжение базы не вырастет!
  • Расчёт: Пусть даже возьмём «маленький» (как для логических цепей) резистор R46=15кОм, а напряжение логической единицы 5V -> тогда Iвх.черезR46 = 1/3mA. А для открытого в насыщение биполярного NPN — ему нужно вкатывать в базу, порой, десятки mA! (например, у BC547, в насыщении, при Ic=100mA: в базу вкатывается Ib=5мА — см. datasheet)

Решение №2: RC-цепочка + МОП-ключ (рабочее)

Можно попробовать подобрать другой транзистор, в качестве ключа — ПОЛЕВОЙ! Полевой транзистор не будет вмешиваться в работу управляющей ключом RC-цепочки, что имело место с биполярным транзистором (не будет отбирать/вкатывать в конденсатор ток из Базы).

Может ли он обеспечить меньшую просадку напряжения, при открытии ключа?
Хоровиц и Хилл — «Искусство схемотехники» (5 изд.) [1998] / глава 3.11 «Аналоговые ключи на Полевых Транзисторах» / Пишут:

«Очень часто ПТ, в основном МОП, применяют в качестве ключей. В силу таких свойств, как малое сопротивление в проводящем состоянии (Rds_on), при любом напряжении сигнала, вплоть до 0V…»

Также DI HALT, в своей «Pinboard II REV 2», заменил «диоды защиты от переполюсовки питания» (на котором падает ~0.26V) — на полевые транзисторы «IRLML5203» (с очень малым Rds_on), пояснив выгоду так:

«Это позволило повысить нагрузочную способность с 1А до 3А. Но смысл был не в этом, а в том, что у транзистора в разы меньше падение напряжения: Уже при ста миллиамперах падение составляет сотые доли вольта! А значит, при питании, например, от USB до проца в прямом включении дойдут все 5 вольт, что дает USB. Без падений…»

Но потерпит ли МОП-транзистор такие режимы работы, что имеются в схеме: низкие входные уровни управляющего напряжения (могу дать ему максимум 2V на затворе) и даст ли, при этом, низкое сопротивление/просадку на открытом ключе?
DI HALT предупреждал:

«Одной из проблем состыковки (мощного) MOSFET транзистора и микроконтроллера (или цифровой схемы) является то, что для полноценного открытия до полного насыщения этому транзистору надо вкатить на затвор довольно больше напряжение (Vgs). Обычно это около 10 вольт, а МК может выдать максимум 5V…»

Одно из решений:

«Применить транзистор с малым отпирающим напряжением (Vgs). Например из серии IRL630A или им подобные. У них открывающие напряжения привязаны к логическим уровням.» (например: 5V его открывают уже на полную катушку… но можно и меньше, если достаточно малые токи коммутировать)

Значит, это возможно: подобрать маломощный MOSFET, с малым «напряжением управления» (чтобы при Vgs=2V ещё позволял пропустить небольшой ток — как у меня здесь: всего 20-30мА, на всю схему), и с как можно меньшим сопротивлением Rds_on (замечу, что к сожалению, у маломощных MOSFETов, этот параметр обычно на порядки большим, чем удаётся достичь в мощных транзисторах — ведь габариты меньше, и проводящий канал тоньше). Впрочем, при малых токах потребления (как у меня здесь) — на открытом ключе, даже при значительном Rds_on, упадет малое напряжение…

  • Пусть, навскидку: Rds_on=10 Ом — тогда просадка напряжения: Uds=0.2-0.3V (херово, конечно)
  • Нашёл, выводной в TO92, 2N7000 (N-Channel, Vds=60V, Id=200mA, Rds=5 Ohms, Vgd=20V Vgs_th=0,8..3V): Rds_on=5.5 Ом. С ним просадка напряжения будет: Uds=0,11-0,165V (о, уже не хуже биполярного ключа). Но настораживает низкая отсечка напряжения управления Vgs_th=0,8..3V (данный транзистор может попросту не отрыться!)
  • Эх, если бы я мог, как и DI HALT, втулить SMD IRLML5203 (P-Channel, Vds=30V, Id=3A, Rds=0.165 Ohms, Vgs=20V Vgs_th=1..2,5V): Rds_on=0.165 Ом — тогда просадка напряжения: Uds < 0,005V… (идеально!)

Использовал МОП-ключ: выводной «2N7000»

В итоге, задействовал ключ: МОП «2N7000».
RC-цепочка: R46=100кОм C2=4.7нФ.
РЕАЛИЗАЦИЮ МЕХАНИЗМА — смотри ниже: ключ Q2_, цепочка C2_ R46_.

По результатам макетного моделирования: эксперимент также показал, что Тайминги, наконец-то, работают идеально. RC-цепочка управляет МОП-ключом правильно! Ключ открывается и закрывается, как надо. И даже малого Vgs — хватает, чтобы отпереть ключ. См. осциллограммы…

RC работает: Потенциал на C2. Импульс загрузки данных

RC работает: Потенциал на C2 (уровень лог.1 мал = 2V, батарейки сели VCC=2.4V). Импульс загрузки данных

Но вот просадка напряжения на открытом МОП-ключе «2N7000» — увы, очень значительная (до 0,5V) и гораздо больше, чем просадка на открытом биполярном транзисторе (0.1-0.2V)!

Решение 2 (плохой ключ 2N7000) - Шина Альтернативной Земли: в середине, Импульс загрузки данных; Бузер ПИЩИТ до импульса (см.гребёнка)

Эксперимент:
МОП-ключ 2N7000 открыт, при Vgs=2.3V (так получается при: Vcc=3V — что весьма много для данной схемы, и больше не будет)
Результат:
Падение напряжения на открытом ключе Vds=0,5V, при этом ток Id=23mA => текущий Rds=Vds/Id = 21.7 Ом (а не 5.5 Ом). Значит, МОП-транзистор 2N7000 открыт в линейном режиме! Что также подтверждается визуально: при зажигании ещё нескольких сегментов, ток чуть возрастает — и уровень просадки тут же повышается…
Сейчас, горит примерно половина сегментов, и не работает Пищалка — следовательно, один только полностью засвеченный индикатор (без пищалки) — вызовет просадку уже до Vds=1V. Полный отстой!
Выводы:

  • Таким образом, при Vcc=3V: индикаторы светят тускловато, но в принципе работают, и пищалка пищит…
  • А вот, при Vcc

Workarounds:
(извраты, от безысходности)

1) Придётся всё равно питание поднимать до 3xAAA (4.5V)…
Протестировал:

  • при Vcc=4.5V — всё вообще отлично светит и Пищит. Очень яркие индикаторы, даже слишком! Поэтому ток потребления устройством 200мА (гораздо больше, чем рассчитывал… но зато красиво светит)
  • подключил питание от трёх разряженных аккумуляторов Vcc= ~2.7V. Светит скромненько, но удовлетворительно, хотя Пищалка уже хрипит. Работает значит…

Но это решение же означает — похерить не только низковольтный дизайн, но и корпус (в который батарейки уже не влезут). Досадно…

А вообще, питание 4.5V — меня всё равно не спасёт! При этом, при разряде батареек, напряжение питания будет изменяться, в пределах: Vcc=3..4,5V. Но протестировано, что свечение Индикаторов и ток потребления всего устройства — очень сильно варьируются в этих пределах:

  • при Vcc=4.5V -> устройство потребляет 200мА, и это явный риск запалить устройство! Индикаторы светят очень ярко (повышенная деградация LED). Бузер KPX1201B (рассчитанный на рабочее напряжение = 1,6..3VDC) пищит отлично, но и потребляет в несколько раз больше — для него это явно многовато.
  • при Vcc=3.5V -> устройство потребляет 20мА, индикаторы тусклы, пищалка уже похрипывает…
  • при Vcc=3V -> вся периферия уже сдохла (толком не пищит, не отображает). А Микроконтроллер пашет, как дурак: ему питания до Vcc=1.8V хватает.

Короче, не катит!

2) Но мы же не ищём лёгких путей, не так ли?
Была у меня ещё одна идейка: составной ключ из транзисторов МОП+биполярный (аля, Дарлингтон)… Ну, не Дарлингтон, а «Усилительный каскад на биполярном транзисторе NPN, управляемый от МОП транзистора». Но «усилительный каскад» — будет «инвертирующим»! Т.е. я должен буду опять менять дизайн и (опа!) заменить полевой транзистор Q2 на P-канальный — потому что:

  • Каскады инвертирующие — мне опять придётся менять программу: поменять доминирующие уровни Clock2, заряд/разряд RC-цепи… Гемор, но не в этом дело.
  • Последний транзистор — должен быть NPN, потому что Нагрузка (индикаторы) включается ему в Коллектор, а Эмиттер лежит на Земле.
  • Чтобы закрыть NPN — нужно его Базу положить на Землю. А при такой колбасне уровня на открытом МОП-ключе — мне остаётся только одно: подтянуть Базу к Земле, а МОП-ключом коммутировать на Базу шину Питания.
  • А между Питанием и Нагрузкой — можно разместить только ключ: P-канальный МОП. (на эти грабли я уже наступал — см. выше отсылку к «Хоровиц и Хилл — Искусство схемотехники»…)
  • Итак, надо менять полевой транзистор Q2 на P-канальный, но заменить нечем (такой вот ТРИЗ): нет «правильных» альтернатив, а есть только SMD. Но если лепить SMD — то это отсылает нас к варианту п.3)

Кроме того: первый ключевой каскад, в этой схеме — это по сути «Логический Инвертор». Причём, схемотехнически, он реализован не Комплементарно (т.е. это не КМОП-инвертор, а потому не оптимален) — т.е он будет потреблять ток (драгоценной батареи) просто в Землю, при открытии МОП-ключа (через подтяжку Базы к Земле)… (Это характерная особенность — об этом, там же: «Хоровиц и Хилл — Искусство схемотехники» / стр.162.)
«Мда, куда ни глянь — со всех сторон ж@па!» (с)

На самом деле, все проблемы — из-за недостаточных характеристик МОП-ключа 2N7000. Я даже пытаюсь схемотехнически извращаться, и придумывать неправильные схемы подключения и согласования МОП и Биполярных ключей — но это, что характерно, грозит ещё большими трудностями… (Теория: Как, правильно и по умному, сделать сопряжение ТТЛ->КМОП ключей — также описана в «Хоровиц и Хилл — Искусство схемотехники» (5е изд) / Глава 9. / «Сопряжение логических КМОП и ТТЛ элементов» / стр.590)

Использовал МОП-ключ: SMD «IRLML6344»

Правильным путём здесь, наверняка, будет: оставить схему как есть, но взять другой МОП-транзистор, с на порядок меньшим Rds_on, чем у 2N7000 (например, SMD IRLML5203… упс, ну конечно, подобрать такой же, но N-канальный).

Но 2N7000 — это был ЕДИНСТВЕННЫЙ доступный мне полевой транзистор в корпусе с выводами (TO92), и не очень большой по размерам (не как TO220), да и logiclevel-управляемый. Потому-то я его и взял. Походу, кучу даташитов перекурил, и все доступные мне интернет-магазины перелазил: SMD — навалом, ибо тренд! А выводные полевики — только мощные. А если лепить сюда SMD (подпаивать проводки к выводам), то будет, м-ммм — несколько ненадёжно и неопрятно… Хотя, это наименьшее зло!

Перерыв ассортимент ближайших Интернет-магазинов, я нашёл, что среди SMD MOSFET, мне доступны и наиболее интересны мне по характеристикам:

Также годные (пропускают мощный ток, и управляются низким уровнем напряжения):

  • irlml2502 (N-Channel, Vds=20V, Id=4.2A, Rds=0.045 Ohms, Vgs=12V Vgs_th=0,6..1,2V)
  • irlml6402 (P-Channel, Vds=20V, Id=3.7A, Rds=0.065 Ohms, Vgs=12V Vgs_th=0,4..1,2V)

Механизм Пригашения Индикаторов. Решение 2 (RC-цепочка + МОП-ключ)

Купил, принёс, распаковал… О, мои Боги! Я и не думал, что корпус SOT-23 — такой маленький (просто «микроба»!). Как же я буду его паять? Да ещё и статики очень боится. Ну, подумал… И запаял. Об этом написан мастеркласс…

И знаете, помогло! Все проблемы с «Альтернативной Землёй» — как рукой сняло! Теперь Индикатор удовлетворительно светит, и Бузер пищит, даже на ДВУХ, уже изрядно подсевших, батарейках (2xAAA = 2.6V, дают Vcc=2.4V):

  • При открытом ключе irlml6344, даже при активном бузере и ярких индикаторах, уровень «Альтернативной Земли» = 0 (при прокачивании до 260мА, что бывает при Vcc до 4.5V).
  • При закрытом ключе irlml6344, уровень земли = лог.1 (близок к Vcc=2V, на осциллограмме).

Решение 3 (отличный ключ IRLML6344TR) - Потенциал шины Альтернативной Земли: Сначала, импульс загрузки данных. Затем, индикация включается (нулевой уровень земли).

Примечание: странные импульсы на осциллограмме (в диапазоне 1,2..1,8V) — обусловлены тем, что у меня нет подтяжки «Альтернативной Земли» к Питанию.
Поэтому, там появляется уровень лог.1 — только через сегменты Индикатора или через Бузер, когда они питаются с выходов сдвигового регистра (а на последних, в это время, мешанина переключающихся сигналов)…

Приложения

Комментарии закрыты.