Все записи автора Konstantin

Модуль LX-LCBST зарядки li-ion аккумуляторов со Step-Up DC-DC преобразователем. Часть 2

OpenSource проект. Разработано в EasyEDA
Посмотреть проект на OSHW LAB

Здесь описан принцип работы основных компонентов модуля. Если Вам не знаком этот модуль и больше интересует как пользоваться платой для зарядки LX-LCBST, то лучше сначала ознакомиться с ЧАСТЬЮ 1, в которой более подробно описана схема подключения модуля LX-LCBST и представлены основные технические характеристики модуля.

Что внутри модуля LX-LCBST?

Известно, что данный модуль сочетает в себе контроллер заряда, устройство защиты и регулируемый повышающий преобразователь. Так, модуль оснащен микросхемой TP4056 (или ее аналогом – SL4056, PT4056, GX4056 и др.) для зарядки одноячеечных литий-ионных аккумуляторов Li-Ion с номинальным напряжением 3,7В, микросхемой защиты аккумулятора типа DW03 (ближайший аналог – HM5434) и микросхемой контроллера повышающего преобразователя типа MT3608 с регулируемым выходным напряжением посредством подстроечного резистора. На входе модуля имеется разъем типа USB-type-C. В качестве альтернативы для подачи питания можно использовать площадки на обратной стороне модуля. Рекомендуемое напряжение питания модуля составляет примерно 5В, на деле оно ограничено значением питания микросхемы заряда TP4056, согласно технической документации, на уровнях от 4,2В до 6,5В.

Для формирования схемы электрической принципиальной рассмотрим печатную плату модуля

Справа налево на ней расположены контроллер заряда, устройство защиты и повышающий (STEP-UP) преобразователь.

Контроллер заряда аккумулятора — микросхема TP4056

TP4056 – это недорогая микросхема контроллера зарядного устройства для литий-ионных аккумуляторов. Данный контроллер поддерживает механизм заряда постоянного тока и постоянного напряжения (CC/CV) для одноэлементной литиевой батареи. Представлена микросхема в 8-контактном корпусе SOP-8 (ESOP-8) и требует минимального количества внешних компонентов для построения схемы зарядного устройства.

Скачать datasheet TP4056 (NanJing)  TP4056 (UTD-Semi)

Функциональное назначение выводов микросхемы:

  • Контакт 1 – TEMP : входной контакт для измерения температуры. По напряжению на этом выводе можно определить температуру аккумулятора. Он может быть подключаться к выходу термистора NTC в аккумуляторном блоке. Однако, в модуле LX-LCBST не используется.
  • Контакт 2 – PROG: Ток заряда аккумулятора устанавливается путем подключения резистора Rprog между этим контактом и GND. В зависимости от номинала резистора зарядный ток может составлять от 130мА до 1А.
  • Контакт 3 – GND: контакт заземления.
  • Контакт 4 — VCC: контакт питания. TP4056 поддерживает до 6.5В, но обычно используется 5В.
  • Контакт 5 – BAT: контакт подключения аккумулятора.
  • Контакт 6 – STDBY: когда аккумулятор полностью заряжен, этот контакт подтягивается к земле. К этому выводу подключен светодиод, обозначающий режим ожидания.
  • Контакт 7 – CHRG: когда аккумулятор заряжается, этот контакт подтянут к земле. К этому контакту подключен светодиод, указывающий на процесс заряда батареи.
  • Контакт 8 – CE : это входной контакт для включения или отключения чипа. При подключении к VCC TP4056 находится в обычном режиме, т.е. контроллер заряда включен.

Расчет зарядного тока описан в ЧАСТИ 1 и сводится к выбору сопротивления резистора Rprog. Его значение рассчитывается по формуле: IBAT = (VPROG/RPROG  )*K, где VPROG = 1В, К = 1200.

Относительно коэффициента К. Было замечено, что ток заряда разных партий модулей и разных продавцов известной китайской площадки несколько отличается от расчетного и обнаружено, что “аналоги” микросхем не совсем аналоги и все таки имеют различия в пределах напряжений питания и тока заряда. В связи с этим различные производители приводят различные формулы расчета тока заряда, в которой коэффициент К варьируется от 1000 до 1200. Это следует учитывать при расчете отдельно взятого модуля.

На модуле имеется два светодиода для контроля состояния процесса заряда. Светодиод CHRG красного цвета и светодиод STDBY синего цвета.


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

Защита аккумулятора — микросхема DW03

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

Потребление в режиме ожидания микросхемы крайне низкое, около 50мкА. Микросхема требует минимального количества компонентов обвязки, выполнена в компактном корпусе SOT23-5 и занимает очень мало места на плате. Микросхема защиты аккумулятора отключит нагрузку, когда напряжение аккумулятора упадет ниже 2,5 В.

Скачать datasheet DW03 (PJ)  HM5434 (H&M Semi)

Функциональное назначение выводов микросхемы:

  • Контакт 1 – NC : Не используется.
  • Контакт 2 – GND: контакт заземления.
  • Контакт 3 — VDD: контакт питания.
  • Контакты 4,5 – VM: контакты подключения отрицательной клеммы аккумулятора. Внутренний ключ подключает эту клемму к GND.

Для тех аккумуляторов, на которых уже установлен блок защиты на модуле LX-LCBST предусмотрена возможность отключения микросхемы защиты для передачи этой функции блоку установленному на аккумуляторе. На модуле имеются две площадки с маркировкой «Т», которые как раз и необходимы, если вы используете батарею с собственной схемой защиты.


В этом случае необходимо спаять эти контакты между собой.

Повышающий преобразователь – микросхема STEP-UP преобразователя MT3608

Как и в случае с контроллером заряда данная микросхема имеет ряд аналогов. Микросхема представлена в корпусе SOT23-6, предназначена для приложений с низким энергопотреблением. Высокая частота переключения позволяет использовать миниатюрные конденсаторы и катушки индуктивности. Микросхема MT3608 оснащена функцией автоматического переключения в режим частотно-импульсной модуляции при небольших нагрузках, оснащена функцией блокировки от пониженного напряжения, превышения тока и защиты от тепловых перегрузок для предотвращения повреждения в случае перегрузки на выходе.

Скачать datasheet MT3608 (AeroSemi)  SDB628 (Shouding)

Функциональное назначение выводов микросхемы:

  • Контакт 1 – SW : выход внутреннего силового MOSFET-переключателя.
  • Контакт 2 – GND: контакт заземления.
  • Контакт 3 — FB: вход обратной связи.
  • Контакт 4 – EN: Вход управления включением/выключением регулятора. В модуле LX-LCBST подключён так, что преобразователь всегда включен.
  • Контакт 5 – IN: Вход питания.
  • Контакт 6 – NC: не используется.

Для регулирования выходного напряжения на схеме предусмотрен подстроечный резистор.

Выходное напряжение модуля может быть изменено в диапазоне от 4,2 до 28 В посредством изменения сопротивления данного резистора.

Принципиальная схема модуля LX-LCBST

Версия 1.0

Принципиальная схема выполнена по печатной плате готового модуля. Проводники печатной платы:

Печатная плата модуля LX-LCBST

Печатная плата выполнена размер-в-размер, с сохранением всех печатных элементов исходной китайской платы за исключением шелкографии на китайском языке – все обозначения переведены на английский язык.

Печатная плата выполнена в приложении EasyEDA.

Список элементов модуля LX-LCBST

Проект доступен на OSHWLAB. Также, там доступно обсуждение проекта, замечания и ответы на вопросы.

OpenSource проект. Разработано в EasyEDA.
Посмотреть проект на OSHW LAB

Как сделать резервную копию прошивки контроллера ESP32

Может показаться, что задача стянуть прошивку с микроконтроллера мало кому интересна, да и к тому же существует множество способов защиты и шифрования, которые блокируют этот процесс еще на этапе программирования. Но, почему бы не попробовать, решил я, когда столкнулся с простой задачей – скачать исходную прошивку с китайской платы, так сказать, на всякий случай. Встал вопрос как сделать “резервную” копию заводской прошивки отладочной платы на микроконтроллере ESP32 от Espressif Systems.

В сети нашлось несколько способов сделать это. Здесь описан один из них, он проверен, работоспособный и понятный.

Сразу скажу, что все это сработало на плате, которую в сети называют Cheap Yellow Board, а ее официальное название ESP32-2432S028. Позже, этот способ был проверен и на аналогичных платах китайского производителя, таких как ESP32-2432S024 и ESP32-2432S035.

Перед началом работы необходимо:

1. Скачать архив либо по ссылке, либо взять из проекта с github автора (@SmittyHalibut).

2. Распаковать архив, найти файл _ESP32 save flash 4MB.cmd, открыть его в блокноте и изменить COM-порт на тот, к которому подключена ESP32

После этого запустить этот файл и прошивка сохранится в формате *.bin с именем backup1.

В результате это и будет Ваша прошивка, которую потом можно загрузить в микроконтроллер.

Для того, чтобы загрузить прошивку в ESP32 необходимо открыть в блокноте файл _ESP32 write flash.cmd и изменить COM-порт на тот, к которому подключена ESP32

После этого запустить этот файл _ESP32 write flash.cmd и Ваш микроконтроллер будет прошит.

Замечания. Некоторые пользователи замечают, что файлы необходимо запускать от имени администратора.

Автор данного решения Марк Смит – энтузиаст из Калифорнии. Его проекты есть на GitHub (@SmittyHalibut).

Модуль LX-LCBST зарядки li-ion аккумуляторов со Step-Up DC-DC преобразователем. Часть 1

OpenSource проект. Разработано в EasyEDA
Посмотреть проект на OSHW LAB

Если Вы уже знакомы с принципом работы данного модуля, то можно сразу перейти к ЧАСТИ 2, в которой более подробно описана схемотехника модуля, выполнен реверс-инжениринг и по его результатам составлена схема и печатная плата модуля. Там же рабочие файлы для среды EASYEDA (принципиальная схема модуля LX-LCBST и печатная плата)

Обзор модуля и принцип работы

Модуль LX-LCBST совмещает в себе небольшое зарядное устройство для литий-ионного аккумулятора с номинальным напряжением 3,7В, схему защиты для него и повышающий преобразователь с регулируемым выходным напряжением.

Модуль LX-LCBST может быть применен для переоборудования питания различных электронных измерительных приборов, мультиметров, тестеров с батареями типа “Крона”, часов, металлоискателей, радиоприемников, игрушек и других электронных устройств с батарейным питанием.

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

Технические параметры модуля LX-LCBST

  • Диапазон выходного регулируемого постоянного напряжения: 4,2-28 В
  • Входное постоянное напряжение (от зарядного устройства или блока питания): 4,2-6,5 В
  • Максимальная выходная мощность: 5 Вт
  • Потребляемый ток без нагрузки: до 0,2 мА
  • Максимальный ток заряда АКБ: 1 А
  • Защита от перезаряда: до 4,2 В
  • Защита от глубокого разряда: до 2,5 В
  • Разъём зарядки: USB Type-C
  • Светодиодные индикаторы: красный — зарядка, синий (в некоторых версиях зеленый) — зарядка окончена
  • Габариты платы: 23.5x19x4,3 мм

Подключение модуля LX-LCBST

Подключение внешнего питания для заряда аккумулятора происходит через порт USB-type-C, подключение аккумулятора и нагрузки через выводы в отверстия на печатной плате.

Аналогично, питание для заряда аккумулятора может быть подано по двум проводам к площадкам с обратной стороны под USB-разъемом. Напряжение питание также должно быть в диапазоне от 4,5 до 5,5В. Припаять провода нагрузки можно как в отверстия, так и к площадкам с обратной стороны модуля. Это одни и те же выходные цепи на печатной плате разнесенные в разные стороны модуля.

У модуля есть встроенная защита от перезаряда и глубокого разряда батареи. Если в подключаемом аккумуляторе есть схема защиты, то в модуле её следует отключить. Для этого на обратной стороне платы нужно замкнуть (соединить) два контакта отмеченных буквой “T”.

Выбор зарядного тока

Как правило, производителем аккумуляторной батареи регламентируется диапазон допустимого тока заряда, однако, если говорить про неизвестный китайский аккумулятор, то можно дать только общую рекомендацию – ограничивать ток заряда величиной равной 0,2 – 1С, другими словами ток заряда не должен превышать одной емкости аккумулятора. Также, следует помнить, что чем выше ток заряда, тем меньше срок жизни аккумулятора, но в то же время, значительное его снижение не ведет к столь же значительному увеличению срока жизни аккумулятора, т.к. зависимость эта нелинейная. Чаще всего на практике используется значение 0,5С, т.е. аккумулятор емкостью 1000мАч следует заряжать током 500мА.

Регулировка зарядного тока

Ток заряда аккумулятора определяется установленным резистором и на данном модуле равен 1А. Это максимальный ток заряда который способен обеспечить контроллер заряда модуля. И, как указывает техническая документация на контроллер заряда, это обеспечивается при надежном его охлаждении. Для снижения тока, нужно заменить резистор (Rprog), сопротивление которого вычисляется по формуле R=1200/I, где R – искомое сопротивление в Омах, I – ток заряда в Амперах.

В технической документации на контроллер заряда есть таблица расчетных значений сопротивления резистора для некоторых величин тока заряда. Значения в ней усреднены и ток заряда несколько занижен:

Rprog (k)Ibat(mA)
10130
5250
4300
3400
2580
1.66690
1.5780
1.33900
1.21000
Таблица значений сопротивлений для заданного тока заряда

На практике удобнее использовать значения наиболее распространенных резисторов из ряда Е24 с точностью 5%.

Rprog, кОмIbat, мАRprog, кОмIbat, мА
1,201000 ±503,90308 ±15
1,30923 ±464,30279 ±14
1,50800 ±404,70255 ±13
1,60750 ±385,10235 ±12
1,80667 ±335,60214 ±11
2,00600 ±306,20194 ±10
2,20545 ±276,80176 ±9
2,40500 ±257,50160 ±8
2,70444 ±228,20146 ±7
3,00400 ±209,10132 ±7
3,30364 ±1810,00120 ±6
3,60333 ±17
Таблица значений сопротивлений для заданного тока заряда

Визуально можно отобразить как меняется максимальный ток заряда от номинала резистора Rprog на графике:

По мере заряда ток будет падать и заряд окончательно прекратится как только ток заряда снизится до 1/10 от заданного максимального значения. По окончании заряда контроллер продолжит отслеживать напряжение аккумулятора и запустит новый цикл заряда как только напряжение на аккумуляторе упадет ниже номинального на 120мВ.

Модуль имеет светодиодную индикацию: при заряде аккумулятора горит красный светодиод, по окончании заряда – синий. Напряжение на АКБ после полного заряда чуть меньше 4,2В.

Регулировка выходного напряжения модуля

Выходное напряжение модуля регулируется в диапазоне от 4,2 до 28 В. Изменение напряжения производится изменением сопротивления подстроечного резистора на плате.

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

“Обратная” разработка

Исследование работы модуля LX-LCBST по результатам реверс-инжиниринга подробно описано в ЧАСТИ 2. Там же приведена схема электрическая принципиальная и печатная плата модуля LX-LCBST созданные по этому модулю. Все файлы собраны в проект и доступны на площадке OWSHWLAB.

Продолжить чтение… ЧАСТЬ 2

Пользовательские расширения для EasyEDA

Пользователи-энтузиасты создают дополнительные расширения для EasyEDA, В сети существует огромное количество полезных и не очень дополнений для удобной работы в приложении. Ниже, представлены самые востребованные и проверенные расширения и краткое описание каждого из них:

1. EasyEDA iBOM

iBom – это расширение для EasyEDA и LCEDA: Standard Edition. Расширение основано на проекте InteractiveHtmlBom, разработанном и созданном компанией qu1ck. С помощью расширения iBOM возможно создание автономного HTML-представления проекта платы, которое может стать хорошим помощником при сборке печатной платы.

https://github.com/turbobabr/easyeda-ibom-extension

2. EasyEDA ToggleView

Расширение ToggleView поможет переключить текущий вид редактора плат между обычным и перевернутым видом. Как сообщает автор этого расширения это всего лишь хакерский обходной путь, пока EasyEDA не реализует его в своем приложении. По сути, он применяет преобразование стиля: ScaleX(-1) к редактору, чтобы перевернуть его в направлении X. Чтобы по-прежнему иметь возможность правильно взаимодействовать с перевернутым представлением с помощью мыши, все события мыши также необходимо перехватывать и переворачивать в направлении X, что и реализовано в расширении.

https://github.com/xsrf/easyeda-toggleview

3. EasyEDA SVG Import

Это расширение для EasyEDA, которое может импортировать файлы SVG в слои EasyEDA без каких-либо искажений, которые создает внутренний импорт изображений. Он также позволяет импортировать SVG в виде сплошных областей или дорожек/контуров.

https://github.com/xsrf/easyeda-svg-import

4. EasyEDA Label Maker

Простое расширение для создания названий меток на печатной плате. Поддерживает настройки шрифтов, изменений размера метки и ее формы.

https://github.com/xsrf/easyeda-labelmaker

5. EasyEDA Tools

Данное расширение представляет из себя набор инструментов для работы с модулями схем. Помогает в создании модуля схемы для многократного использования, переименование модуля и замены имен цепей). В настоящее время EasyEDA поддерживает модули схем и печатных плат, но не иерархические модули.

https://github.com/ppeetteerrs/EasyEDA-Tools

6. EasyEDA Themes

Это расширение обновляет весь пользовательский интерфейс EasyEDA, добавляя несколько уникальных темных и светлых тем.

https://github.com/FiercestT/EasyEdaThemes

7. EasyEDA Quick Align

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

https://github.com/turbobabr/easyeda-quick-align-extension

8. EasyEDA Extension Menu

Данное расширение создано для решения проблемы всплывающего меню при наведении на него курсора мыши. После установки не требуется отдельный запуск расширения, оно будет запускаться автоматически и блокировать всплывающее меню по наведению ожидая нажатия на выбранный пункт меню.

https://github.com/turbobabr/easyeda-extension-menu-ux-normalizer

9. EasyEDA QR-code Generator

Расширение представляет из себя генератор QR-кода для дальнейшего размещения на печатной плате в любом выбранном слое.

https://github.com/turbobabr/easyeda-qrcode-generator-extension

10. EasyEDA Round Tracks

Данное расширение применяет округление к дорожкам печатной платы. Оно применит сглаживание ко всем дорожкам на верхнем и нижнем печатных слоях. Далее, создаст дуги на всех Т-образных пересечениях или в областях, где невозможно применить сглаживание путей (например, там, где пересекаются дорожки разной ширины). После чего, оно добавит каплевидные переходы к отверстиям и площадкам со сквозными отверстиями. Полученная печатная плата будет открыта как новый документ, в связи с тем, что процесс сглаживания необратим.

https://github.com/mattshepcar/easyeda-round-tracks

Обзор микросхемы монитора тока/мощности с I2C интерфейсом INA219

Микросхема INA219 производства Texas Instruments представляет из себя монитор тока/мощности с интерфейсом I2C, позволяет измерять напряжение на нагрузке в диапазоне от 0 до 26 В с точностью 0,2…1%, рассчитывать мощность как произведение тока, проходящего через нагрузку, на напряжение, подведенное к нагрузке. С помощью внешних перемычек позволяет запрограммировать до 16 адресов для работы по I2C.

Технические параметры

  • Напряжение питания: от 3 до 5,5В
  • Измеряемое напряжение: от 0 до 26В
  • Сигма-дельта АЦП: 12Bits
  • Диапазон измерения тока (входного) напряжения
  • Поддерживаемый протокол: I2C
  • Ток потребления: менее 1мА

Общие сведения

Для измерения тока микросхеме необходим внешний шунтирующий резистор. В состав чипа INA219 входит 12-разрядный аналого-цифровой преобразователь (АЦП). Для питания микросхемы необходимо напряжение от 3 до 5.5 В. Потребляемый ток микросхемы не превышает 1мА.

Одна из наиболее частых проблем при измерении – это шумы. Для минимизации их воздействия в INA219 применён сигма-дельта аналого-цифровой преобразователь. АЦП данного типа имеют хорошее шумоподавление. Кроме того, в INA219 имеется возможность усреднения результатов измерений путем выполнения серии измерений (до 128) с последующим нахождением среднего значения. Данный режим может быть удобен при наличии шумов в измеряемом напряжении. При усреднении измерения будут отнимать больше времени, однако точность результата возрастет.

Схема INA219

Для измерения тока и напряжения в чипе используются входы VIN+ и VIN‑.

Входы программируемого усилителя (Programmable Gain Amplifier, PGA) с помощью коммутатора могут подключаться двумя разными способами:

  • оба входа подключаются к VIN+ и VIN‑;
  • один вход подключается к VIN‑, а другой — к земле GND

Первый способ нужен для измерения тока. Предполагается, что между VIN+ и VIN‑ включен шунт и через него идет измеряемый ток. Второй способ применяется для измерения напряжения.

Выход PGA подключен ко входу АЦП. Результаты измерений из АЦП записываются в регистры тока Current Register и напряжения Voltage Register. В регистр мощности Power Register микросхема INA219 автоматически записывает произведение измеренного тока и напряжения.

Для чтения регистров используется интерфейс I2C. При этом с помощью входов A0 и A1 можно изменять адрес устройства на шине I2C.

Меняя подключения A0 и A1 есть возможность изменить адрес чипа INA219 на шине I2C. В зависимости от подключения А0 и А1 можно задать следующие адреса:

A1A0Адрес (bin)Адрес (hex)
GNDGND10000000x40
GNDVS+10000010x41
GNDSDA10000100x42
GNDSCL10000110x43
VS+GND10001000x44
VS+VS+10001010x45
VS+SDA10001100x46
VS+SCL10001110x47
SDAGND10010000x48
SDAVS+10010010x49
SDASDA10010100x4A
SDASCL10010110s4B
SCLGND10011000x4C
SCLVS+10011010x4D
SCLSDA10011100x4E
SCLSCL10011110x4F

Таким образом к одной шине I2C можно подключить до 16 адресов микросхем INA219.

Преобразование шрифтов из TrueType в Adafruit GFX

Многие проекты Arduino и готовые устройства поставляются с дисплеем. И многие из них используют драйвер дисплея Adafruit GFX для отображения шрифтов переменной ширины. Некоторые шрифты поставляются вместе с драйвером, но наступает момент, когда требуется сложная процедура добавления ваших собственных шрифтов. Это включает в себя компиляцию инструментов и процесс проб и ошибок, чтобы выяснить, насколько большим будет шрифт на вашем дисплее, а также каким будет новый шрифт относительно других шрифтов.

Но, теперь вы можете пропустить все это и с легкостью преобразовать шрифты, необходимые вашему проекту Arduino. Нет необходимости в инструментах компиляции, нет необходимости определять размер шрифта методом проб и ошибок. Просто выберите бесплатный шрифт или загрузите любой шрифт TrueType, выберите размер, выгрузите прилагаемый файл и получите готовый шрифт, который можно использовать в своем проекте.

Автором Rop Gonggrijp на площадке GitHub предложен вариант простого и быстрого преобразования шрифта онлайн. Если вы просто хотите использовать конвертер truetype в gfx можно воспользоваться его ресурсом.

Сам инструмент – это онлайн решение, которое работает без установки. Он доступен для использования на сайте, не нужно ничего устанавливать, достаточно просто следовать рекомендациям разработчика. На этой веб-странице есть не только инструмент, но и вся информация, которая понадобится для его использования.

Расширенные возможности

Помимо готового решения на GitHub автор публикует решение для самостоятельного запуска подобного сценария на своем ресурсе.

В этом репозитории есть исходный код PHP / Javascript и документы о том, как его установить, если вы хотите запустить копию на своем собственном сервере или просто посмотреть, как это было сделано. Для этого потребуется скопировать файлы из репозитория в каталог на своем сервере, на котором включен PHP. Также понадобится поддержка gd и freetype, включенная при установке PHP. С помощью phpinfo(), можно узнать, есть ли они там. В этот каталог также необходимо добавить скомпилированную версию Adafruit font converter tool (смотрите здесь) и убедиться, что она является исполняемой для пользователя, который запускает ваш веб-сервер.

Убедитесь, что каталог fonts/user доступен для записи пользователем веб-сервера.

Перевод ресурса truetype2gfx – Converting fonts from TrueType to AdafruitGFX

Панель печатных плат для выпрямительного блока электромагнитного тормоза

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

Панель из печатных плат маленького размера удобно использовать при автоматическом монтаже компонентов. В данном случае панель 2х4 печатных платы будущих изделий выполнена в размер не превышающем 100х100мм. Такой формат прототипирования предпочтительный для большинства китайских производителей печатных плат и потому самый удачный для небольших заказов. С некоторыми оговорками такую панель можно будет использовать в оборудовании автоматического монтажа. Из экономических соображений технологические поля выполнены очень небольшими, но в то же время на них предусмотрены реперные метки и отверстия для позиционирования. Для небольших партий это излишне, потому на этом было принято решение не заострять внимание.

Из интересного, что есть в такой панели – это комбинация типа создания края печатной платы. На данной панели край печатных плат формируется как скрайбированием, так и фрезеровкой на двух механических слоях. Таким образом удалось получить сложный контур с сохранением красивого края после разделения печатных плат. Китайский производитель был не против такого подхода. В результате получилась панель, которую можно было разобрать и исключить обработку края печатной платы, что потребовалось бы при формировании контура фрезеровкой с перемычками для удержания плат в панели.

Каждая печатная плата устанавливается в корпус из черного ABS-пластика. На верхней крышке корпуса размещается этикетка. Печать выполнена на самоклеющейся непрозрачной белой пленке на цветном лазерном принтере. По контуру выполнен рез на плоттере.

Для надписей использовался opensource шрифт семейства Manrope. Это минималистичный, графически простой шрифт без засечек от Михаила Шаранда.

Карта выводов. Создание схемы распиновки

По сети гуляет огромное количество схем распиновки (pinmap / pinout map) различных модулей и микросхем выполненных в вольном, можно даже сказать дизайнерском стиле, но достаточно качественно и профессионально.

Хороший учебник по этой теме есть у Adafruit, показывающий, как создавать профессиональные схемы распиновки и подключения с помощью бесплатного векторного программного обеспечения Inkscape. Как становится понятно из описания, весь процесс предлагаемый Adafruit можно адаптировать под работу в Illustrator, хоть и с некоторыми ограничениями.

Здесь ссылка на сообщение в блоге Adafruit с видео и ссылкой на файл шаблона.

Зачем создавать что-то другое, когда есть готовое решение

Создавая схемы по технике предложенной Adafruit приложение Inkscape не даст разработчику забыть о том, что оно все таки в первую очередь является графическим приложением, нежели техническим, конструкторским. Привязки, перемещения блоков и цепей здесь реализованы как в типичном графическом редакторе. Что касается небольших карт распиновки, то это не всегда проблема, но если появляется задача создания карты с вложенными блоками, то появляется желание упростить процесс создания таких схем.

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

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

Подобные ярлыки и должны быть разного размера и цвета. Каждый такой ярлык – отдельный элемент.

Продолжение следует…

Обзор часов реального времени DS3231 (RTC)

Модуль DS3231 (RTC, ZS-042) — представляет собой недорогую плату с чрезвычайно точными часами реального времени (RTC), с температурной компенсацией кварцевого генератора и кристалла. Модуль включает в себя литиевую батарею, которая поддерживает бесперебойную работу, даже при отключении источник питания. Интегрированный генератор улучшить точность устройства и позволил уменьшить количество компонентов.

Технические параметры

  • Напряжение питания: 3.3В и 5В
  • Чип памяти: AT24C32 (32 Кб)
  • Точность: ± 0.432 сек в день
  • Частота кварца:32.768 кГц
  • Поддерживаемый протокол: I2C
  • Габариты: 38мм x 22мм x 15мм

Общие сведения

Большинство микросхем, таких как DS1307 используют внешний кварцевый генератор частотой 32кГц, но в них есть существенный недостаток, при изменении температуры меняется частота кварца, что приводит к погрешности в подсчете времени. Эта проблема устранена в чипе DS3231, внутрь которого установили кварцевый генератор и датчик температуры, который компенсирует изменения температуры, так что время остается точным (при необходимости, данные температуры можно считать). Так же чип DS3231 поддерживает секунды, минуты, часы, день недели, дата, месяц и год информацию, а так же следит за количеством дней в месяце и делает поправку на високосный год. Поддерживает работу часов в двух форматов 24 и 12, а так-же возможно запрограммировать два будильника. Модуль работает по двух проводной шине I2C.

Теперь немного о самом модуле, построен он на микросхеме DS3231N. Резисторная сборка RP1 (4.7 кОм), необходима для подтяжки линий 32K, SQW, SCL и SDA (кстати, если используется несколько модулей с шиной I2C, необходимо выпаять подтягивающие резисторы на других модулях). Вторая сборка резисторов, необходима для подтяжки линий A0, A1 и A2, необходимы они для смены адресации микросхемы памяти AT24C32N. Резистор R5 и диод D1, служат для подзарядки батарее, в принципе их можно выпаять, так как обычной батарейки SR2032 хватает на годы. Так же установлена микросхема памяти AT24C32N, это как бы бонус, для работы часов RTC DS3231N в ней нет необходимости. Резистор R1 и светодиод Power, сигнализируют о включении модуля. Как и говорилось, модуль работает по шине I2C, для удобства эти шины были выведены на два разъема J1 и J2, назначение остальных контактов, можно посмотреть ниже.

Назначение J1:

  • 32K:   выход, частота 32 кГц
  • SQW: выход
  • SCL:   линия тактирования (Serial CLock)
  • SDA:  линия данных (Serial Data)
  • VCC:   «+» питание модуля
  • GND: «-» питание модуля  

Назначение J2

  • SCL:  линия тактирования (Serial CLock)
  • SDA:  линия данных (Serial Data)
  • VCC:  «+» питание модуля
  • GND: «-» питание модуля

Немного о микросхеме AT24C32N. Это микросхема с 32к памятью (EEPROM) от производителя Atmel, собранная в корпусе SOIC8, работающая по двухпроводной шине I2C. Адрес микросхемы 0x57, при необходимости легко меняется, с помощью перемычек A0, A1 и A2 (это позволяет увеличить количество подключенных микросхем AT24C32/64). Так как чип AT24C32N имеет, три адресных входа (A0, A1 и A2), которые могут находится в двух состояния, либо лог «1» или лог «0», микросхеме доступны восемь адресов. от 0x50 до 0x57

Подключение DS3231 к Arduino

Необходимые детали:

  • Arduino NANO x 1 шт.
  • Часы реального времени на DS3231, RTC, SPI, AT24C32 x 1 шт.

Подключение:

В данном примере буду использовать только модуль DS3231 и Arduino NANO, все данные будут передаваться в «Мониторинг порта». Схема не сложная, необходимо всего четыре провода, сначала подключаем шину I2C, SCL в A5 (Arduino NANO) и SDA в A4 (Arduino NANO), осталось подключить питание GND к GND и VCC к 5V (можно записать и от 3.3В), схема собрана, теперь надо подготовить программную часть.

Библиотеки работающий с DS3231 нет в среде разработке IDE Arduino, необходимо скачать «DS3231 » и добавить в среду разработки Arduino.

Установка времени DS3231

В сети есть библиотека microDS3231 от Gyver. Свежую версию всегда можно установить/обновить из встроенного менеджера библиотек Arduino по названию microDS3231. Краткая документация находится по ссылке, базовые примеры есть в самой библиотеке.

Чтобы автоматически установить текущее время на модуле, можно прошить следующую программу:


#include <microDS3231.h>
MicroDS3231 rtc;
void setup() {
  rtc.setTime(COMPILE_TIME);
}
void loop() {
}

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


#include <microDS3231.h>
MicroDS3231 rtc;
void setup() {
  Serial.begin(9600);
}
void loop() {
  // получаем и выводим каждый элемент отдельно
  Serial.print(rtc.getHours());
  Serial.print(":");
  Serial.print(rtc.getMinutes());
  Serial.print(":");
  Serial.print(rtc.getSeconds());
  Serial.print(" ");
  Serial.print(rtc.getDay());
  Serial.print(" ");
  Serial.print(rtc.getDate());
  Serial.print("/");
  Serial.print(rtc.getMonth());
  Serial.print("/");
  Serial.println(rtc.getYear());
  
  // выводим температуру модуля
  Serial.println(rtc.getTemperatureFloat());  
  
  // выводим дату и время готовыми строками
  Serial.println(rtc.getTimeString());
  Serial.println(rtc.getDateString());
}