Приветствую вас, друзья!
Продолжаем работу с универсальной платой для E-Ink экранов. В этот раз проверим пути токов, найдём и исправим ошибки схемы и разводки, постараемся побороть шипение, соберём и запустим проект. Сделаем важные выводы.
Узнаем полезные мелочи, которые могут пригодиться при сборке проекта EPDiy.
В любом деле важно осмысление, поиск и работа над ошибками. Это способствует росту и движению вперёд.
❯ Ошибки в разводке преобразователей
Вспомнилась картинка из статьи про три составляющих хорошего силового преобразователя.
После взгляда на эту схему, появляется желание проверить разводку источников питания. Кажется, у нас неправильно объединены сигнальная и силовая земли. Проверим пути протекания тока инвертирующего преобразователя.
Как протекает ток при замыкании ключа?
От + питания и входного конденсатора на вывод 5 (Vin) микросхемы, затем на вывод 6 (Lx) через дроссель на землю (у левого вывода индуктивности переход на земляной полигон через отверстие на нижний слой).
Далее ключ размыкается, ток прекращается, но катушка хочет продолжения. Поэтому она ведёт себя так, что ток начинает течь уже через диод, питая нагрузку и заряжая конденсатор.
На плате это будет так. От катода диода ток течёт через дроссель и переходное отверстие на земляной полигон на нижнем слое (пунктирная линия). Далее заряжает конденсатор, «вылезая» из переходного отверстия, а также идёт к нагрузке (по полигону земли на нижнем слое) и возвращается от неё через ферритовую бусину к аноду диода.
И вот здесь ошибка, так как силовой ток протекает по участку сигнальной земли (показан зелёным прямоугольником). Это будет подбрасывать земляной потенциал. Видимо, отсюда и шум в выходном сигнале.
Силовой ток нужно пустить в обход сигнального, от конденсатора и бусины напрямую к аноду диода, а не через делитель. Для этого просто разрежем дорожку (на месте креста) и добавим перемычку (на месте стрелочек).
Спешил сделать прототип, вот и ошибся с разводкой. Но это ещё не всё. Проверим, как протекают токи заряда ёмкости Сio.
Конденсатор Cio предоставляет путь для тока с Vin на –Vout при переходных процессах в нагрузке. Ток протекает от + питания и входной ёмкости через конденсатор Cio по дорожке под корпусом контроллера, через вывод земли микросхемы и землю делителя (то есть, снова по сигнальной земле) к выходному конденсатору и нагрузке.
Кстати, через Cio ВЧ шум от источников входного питания может лезть напрямую в нагрузку, протекая по сигнальной земле. Это неправильно. Нужно пустить этот ток в обход сигнальной земли. Исправим ошибку, просверлив 2 отверстия и сделав путь тока проволочкой кратчайшим путём под нижним слоем.
После исправления ошибок я ожидал заметного эффекта вплоть до полного пропадания слышимого шума. Как бы не так! Такое чувство, что он вообще не изменился. По крайней мере, разница незаметна. Слышится так, будто песочек сыпется на металлическую поверхность. Или где-то утечка газа.
Проверим разводку повышающего преобразователя.
При открытии транзистора ток течёт от плюса источника питания и входного конденсатора через индуктивность и ключ к минусу источника питания и конденсатора.
На нашей плате это так: от плюса питания и входного конденсатора ток течёт через индуктивность к выводу SW, далее внутри микросхемы через ключ на землю (вывод 2) и через отверстие на земляной полигон снизу платы.
При размыкании ключа катушка стремится поддержать ток. Он начинает течь через диод в нагрузку и выходной конденсатор.
На плате это так: от индуктивности через диод к выходному конденсатору, затем через отверстие на землю на нижнем слое. Также через бусину в нагрузку и возвращается по нижнему слою.
В целом, разводка буста в порядке.
Большую часть времени мы питали преобразователи от банки (power bank). При питании от зарядки начались проблемы.
При 100% нагрузке на входе преобразователей можно наблюдать пульсации 100 Гц большой амплитуды (1 В пик-пик).
Если питать от другой зарядки, то пульсации значительно меньше (31 мВ пик-пик).
Скачок нагрузки на выходе преобразователя также приводит к скачку тока на входе преобразователя.
Если у входного источника питания проблемы со стабильностью или есть заметная индуктивность в проводах, нестабильность во входном источнике питания также может быть видна на выходе. Проблема может быть решена путем добавления нескольких конденсаторов параллельно преобразователю (документ A Simple way to test buck converter stability. Richtek Design Tips).
Колебания удалось несколько сгладить установкой на вход преобразователя двух керамических конденсаторов (100 нФ, 4,7 мкФ) и двух танталовых (2х100 мкФ).
Но полностью убрать колебания не удалось. Колебания сильно зависят от качества и состояния самой зарядки.
Исправление ошибок в разводке преобразователя и добавление конденсаторов не убрало лёгкое шипение. В чём же причина?
При включении и выключении питания платы иногда был слышен небольшой щелчок, который, видимо, зависит от условий (величина нагрузки, источник питания и другое). Так щёлкает феррит в источнике питания, если плохо стянуть сердечник. Вероятно, шумит дроссель из-за магнитострикции. Он может создавать и остальной шум. На плате стоит полуэкранированный дроссель. Можно попробовать литой.
А может конденсаторы шипят из-за электрострикции и пьезоэффекта (поющие конденсаторы)?
Долго проверять это я не стал, двигаемся дальше.
❯ Незакрывающийся ключ
В схеме проекта EPDiy не было Rзи. Ранее мы добавили их для надёжности.
Но ключ VT2 полностью не закрывается. Если на SMPS_CTRL подать 0 В (выключить), то на вход преобразователей напряжения через ключ подаётся ненулевое напряжение и, к примеру, на выходе буста появляется напряжение +8.6 В, чего быть не должно.
Всё потому, что 3,3 В < Vbus, поэтому R19 приоткрывает VT2 (спасибо @alcotel за подсказку). Убираем этот резистор.
❯ Ошибка в схеме запуска инвертирующего преобразователя
Для первоначального запуска преобразователю на AOZ1280CI нужно напряжение на входе EN выше, чем GND микросхемы. Как минимум на пороговые 1,2 В + некоторый запас для надёжности.
Сколько выходит у нас сейчас?
Преобразователь выключен.
Начинаем включать преобразователь. VT3 открывается и ток начинает течь к земле системы. Из-за диода VD5 земля микросхемы поднимается на 0,6 В (преобразователь пока не запустился).
Для VT3 Vэкнас = 0,3 В.
Напряжение на EN относительно земли микросхемы получается
Ven = (3,3 – 0,3 – 0,6)/2 = 1,2 В
Если напряжение будет не 3,3 В, а ниже, то будет ещё меньше, чем 1,2 В.
Не годится. Сделаем запас 50%.
Напряжения на делителе распределим как 0,6 и 1,8 В. Верхний резистор можно сделать 33 кОм. Тогда после включения преобразователя и появления -15 В на его выходе, напряжение на EN будет не 9 В, а примерно
18 В*3/4=13,5 В.
В данном случае можно вообще убрать R18, т к запаса по напряжению у вывода EN достаточно (можно до 26 В).
Здесь я поспешил, просто взяв схему сдвига уровня для цепи запуска из апноты и забыв про неё в дальнейшем. Благодарим @alcotel за подсказку!
❯ Собираем проект, прошиваем
В папке waveforms проекта есть файлы для экранов: ED047TC1, ED047TC2, ED060SC4, ED060SCT, ED060XC3, ED097OC4, ED097TC2, ED133UT2.
Какой из файлов подходит для модели ED050SC3? Попробуем запускать наш ED050SC3 с файлом для ED060SCT. Диагональ у него другая (6", а не 5"), но разрешение такое же – 600 x 800.
На нашей плате стоит модуль ESP32-Wrover-B c 16 МБ памяти, поэтому ставим такие параметры:
Нажимаем на кнопку загрузки, скетч компилируется, но не прошивается, вылетает ошибка:
«esptool.py v4.5.1
Serial port COM12
Connecting…
A fatal error occurred: Failed to connect to ESP32: Invalid head of packet (0xF4): Possible serial noise or corruption (выбранный последовательный порт не существует или плата не подключена к нему For troubleshooting steps visit:)».
Видимо, не работает USB-UART преобразователь. Странно, вроде всё верно подключено, контакт есть, микросхемы новые. Хотя с Али могло что угодно приехать.
Проверим. Отсоединяем модуль esp32, делаем перемычку Rx–Tx и посылаем посылку. Должны получить то же самое. В ответ другие символы. Не работает микросхема? Подсоединяем внешний USB-UART преобразователь – всё работает, модуль прошивается.
Почему же у нас не работает CH340C? На вид пайка хорошая, контакт есть. На всякий случай тщательно пропаяем ещё раз. И это помогло! Всё прошилось, но картинки нет.
Картинка появилась с такими параметрами:
❯ Большая ошибочка
Рассмотрим подробнее, как работает схема автосброса.
Вывод IO0 ESP32 подтянут к +3,3 В (на картинке этот участок схемы не показан). Для прошивки модуля IO0 нужно подтянуть к земле и перезапустить модуль (убрав питание или изменением уровня на выводе EN).
Low/GND |
ROM serial bootloader for esptool |
High/VCC |
Normal execution mode |
Или поручить сброс программе для прошивания с помощью схемы автосброса, как сделано у нас. Получается, сброс осуществляется именно по запросу программы загрузки прошивки, а не просто при подключении платы к компьютеру. Неверное понимание этой маленькой, но весьма важной детали привело к серьёзной ошибке на уровне проектирования всей системы.
Дело в том, что от USB 2.0 можно взять не более 500 мА. Потребление нашей платы может доходить до 2,3 А. Пусть и не постоянно, а только при активности экрана. Планировалось, что плата будет питаться от зарядки или от банки (power bank), а при подключении к компьютеру ESP32 будет сбрасываться, что не даст ему запустить преобразователи и увеличить потребление тока более 500 мА.
В исходном проекте EPDiy питание платы осуществляется от аккумулятора.
Слева видим схему переключения источников питания. Когда питание по USB не подключено, затвор транзистора подтянут к земле и он открыт. Плата питается от батареи. При подключении USB напряжение Vbus становится около +5 В, ток течёт в нагрузку через диод. Напряжение затвор-исток задаётся падением на диоде и меньше порогового значения, поэтому транзистор закрыт.
Напряжение Vin подаётся на А0 (IO34).
К этому выводу подключен 6-й канал АЦП.
Судя по всему, именно измеряя напряжение, модуль узнаёт, питается ли он от аккумулятора и можно ли запускать силовые преобразователи. Таким образом можно исключить чрезмерное потребление от USB порта компьютера.
❯ Из-за чего ошибка?
С самого начала проекта меня интересовала именно силовая часть. Система питания показалась занятной, и захотелось её спроектировать. Внимание программной части и «мозгам» платы практически не уделялось. Обвязку ESP32 и большую часть схемы, касающуюся этого модуля, я оставил без изменения.
Сейчас я понимаю, что где-то я просто поспешил, упустив при этом малую, но очень важную часть системы.
❯ Что дальше?
Можно было бы заново спроектировать систему питания, используя накопленный опыт. Добавить питание от аккумулятора, контроллер заряда. Я снова изучил схемы (версий 5, 6 и новую 7-ю) проекта EPDiy и понял, что, целом, мне нравится, как они сделаны. Микросхему TPS651851 удалось найти дешевле, чем на момент старта проекта. В том числе, поэтому решил остановиться на схеме EPDiy v7. Так же в 7-й версии проекта используется более новый чип ESP32S3, а в версиях 5,6 и на нашей плате – ESP32-WROOVER-B.
В целом, поставленных перед собой целей я достиг: получил опыт проектирования, испытал новые топологии, новые компоненты. Время идёт, с полученным опытом меняются интересы. А впереди ждут новые, более интересные проекты!
Почему я всё же решил рассказать о проекте?
- В нём есть много интересного, поучительного и забавного, на мой взгляд.
- Рассказать об ошибках не менее важно. Может, это прибавит кому-то уверенности или поможет их избежать и понять, что на ошибках учатся, и перестать их бояться.
- Написать статью – это всегда переосмыслить проект заново. Тщательно и с самого начала. Это помогает лучше проанализировать ошибки и сделать правильные выводы.
- Друзья говорят: «Пиши!».
- Возможно, кому-то рассказ об этом проекте поднимет настроение. Буду только рад ☺.
- Какие-то описанные нюансы проекта могут помочь тем, кто будет делать что-то подобное.
❯ Небольшие заметки
Разъём в EPDiy v7 подходит для ED050SC3.
В начале проекта для экспериментов купил не отдельный экран, а целую читалку Digma e501. В каком-то источнике было указано, что там должен быть экран ED050SC3. Но внутри оказался другой экран – LB050S01-RD02. Разъём у него не такой, как у ED050SC3, поэтому стоял ещё переходник. И вообще были некоторые следы ремонта читалки.
Экспериментировал я именно с LB050S01-RD02, запуская его так, будто это ED050SC3. Всё прекрасно работает.
Для модели ED050SC3 подходит разъём THD0510-33CL-GF. На плате EPDiy v7 нет этого разъёма. Но есть разъём XF2M-3315-1A. Количество и назначение контактов у этих двух разъёмов полностью совпадают. На всякий случай проверяем шаг разъёмов и толщину шлейфа.
Шаг совпадает, толщина шлейфа также примерно одинаковая. Проверил это подключением экрана к обоим разъёмам. В читалке Digma e501 стоит как раз XF2M-3315-1A. В целом, этот разъём мне понравился больше, так как он крупнее и кажется более надёжным.
❯ Выводы
Системному уровню (проектированию на уровне системы) нужно уделять достаточно внимания.
Важный урок: не упускать из вида составные части системы. Не спешить, тщательно проверять всё в конце. Хорошо дать проект на проверку своему компетентному товарищу.
Народная мудрость «тише едешь – дальше будешь» очень даже работает!
В случае ошибок не стоит расстраиваться. Ведь именно ошибки запоминаются лучше всего ☺! Не расстраивайтесь, вдохновляйтесь и делайте новые крутые проекты! Желаю вам удачи в добрых начинаниях!