Продолжение
Начало читайте здесь:
Часть 1. Введение
Часть 2. Теория
Зарядное устройство
Литературы по аккумуляторам очень мало. Я изучил достаточно, чтобы поверить, что литий-ионные аккумуляторы будут работать на меня. Единственное, что мне следовало сделать, это найти или собрать зарядное устройство. Мой первый аккумулятор была из ноутбука AMS Tech Rodeo 7000 – к нему продавалось внешнее зарядное устройство за 200$. Я искал на Ebay и других магазинах универсальное зарядное устройство с интерфейсом Smart, но не нашел ни одного, способного обслужить мой аккумулятор. Эти зарядные устройства способны давать максимальный зарядный ток в пределах 1 А, они не для больших парней. И я решил собрать свое собственное.
Я рассматривал четыре возможных варианта такого контроллера заряда:
- На микросхемах, поддерживающих линейную стабилизацию напряжения/тока – простейшие, неэффективные, для зарядки более двух ячеек такие чипы не производятся.
- На микросхемах, поддерживающих импульсную стабилизацию напряжения/тока – более сложные и более эффективные. Maxim и TI выпускают контроллеры для зарядки до четырех ячеек. Выпускаются только для поверхностного монтажа.
- На микросхемах, поддерживающих импульсную стабилизацию напряжения/тока с интерфейсом Smart – контроллер заряда связывается с аккумулятором и аккумулятор сообщает зарядному устройству, что делать. Вся прелесть в том, что вам не надо знать характеристик аккумулятора. Но эти микросхемы требуют удвоенного количества внешних элементов и не работают с аккумуляторами без интерфейса Smart. Выпускаются только для поверхностного монтажа.
- Использование микроконтроллера для управления зарядкой.
К счастью, Atmel опубликовала целую статью по этой теме – App Note AVR450, описывающую как собрать универсальное зарядное устройство для NiCd, NiMH, SLA и литий-ионных аккумуляторов на основе микроконтроллера AT90S4433. Именно это я взял за основу своей разработки. Я значительно модифицировал схему, добавив интерфейс Smart, (что вынудило меня заменить микроконтроллер AT90S4433 на ATmega8) и добавить набор предустановленных и настраиваемых параметров аккумулятора. Я использовал имеющиеся у меня подходящие транзисторы, MOSFET, диоды Шоттки и ферритовое кольцо вместо указанных, и все прекрасно заработало с первого раза.
Проект
Ниже описано, как собрать плату контроллера зарядки и как запрограммировать AVR микроконтроллер. Для экспериментов вам понадобится литий-ионный аккумулятор. Аккумулятор, на котором практиковался я, до сих пор жив, несмотря на жестокое обращение. Чем больше вы будете знать об аккумуляторе, тем лучше: максимальное зарядное напряжение и ток (иногда напечатаны на корпусе), термистор (есть или нет и его сопротивление не всегда 10 кОм) и наличие интерфейса Smart.
Источник питания должен обеспечивать напряжение как минимум на 2 вольта большее, чем максимальное напряжение аккумулятора (в моем случае 14.6 В) при требуемом зарядном токе. Я нашел источник питания от ноутбука Dell дающий 18 В 3.5А.
Плата собрана с использование легко доступных компонентов, которые я выбрал из списка в статье Atmel. Некоторые компоненты я заменил и сделал соответствующие пометки в схеме.
ATmega8 – это микроконтроллер, имеющий 8 Кб флеш-памяти и 1 Кб ОЗУ, выполненный в 28 выводном узком корпусе DIP, поддерживающий тактовую частоту до 16 МГц. Если вам не нужен интерфейс Smart, его и некоторую часть отладочного кода можно удалить, а сам код переделать так, чтобы он соответствовал микроконтроллеру AT90S4433, как в первоначальной схеме от Atmel.
Программа для микроконтроллера написана с использованием GCC версии 3.2. Эту версию необходимо адаптировать для прямого назначения ввода/вывода. Это является результатом преобразования кода из IAR, используемого в статье Atmel. Программа, фактически, является комбинацией кода Atmel, преобразованного из IAR, I2C интерфейса, преобразованного из 68HC11/Imagecraft и моего собственного GCC кода. В результате программа не имеет цельного вида и в ней ясно просматриваются три разных стиля программирования.
Для управления зарядным током и напряжением используется ШИМ и P-канальный MOSFET. Комбинация катушки индуктивности и конденсатора большой емкости используется для стабилизации схемы. Специализированные зарядные устройства обычно работают на более высоких частотах (150 кГц по сравнению 15 кГц) и таким образом в них могут использоваться компоненты меньших размеров, но в моем случае это не так важно.
Зарядное устройство генерирует непрерывный поток данных из UART в ПК. Я посылаю информацию инициализации и информацию о состоянии процесса зарядки от зарядного устройства, и, если будет обнаружен аккумулятор с интерфейсом Smart, его параметры можно будет посмотреть в терминальной программе на ПК. Скорость передачи данных – 115 Кбит/с, но при желании ее можно снизить.
Светодиод зарядки мигает быстро в процессе зарядки постоянным током, медленнее при зарядке в режиме постоянного напряжения и горит постоянно, когда зарядка окончена.
Зарядное устройство заработало после нескольких недель усилий, еще несколько дней были потрачены на Smart интерфейс и еще пара на то, чтобы все это задокументировать.
Железо
Для таких одноразовых проектов, как этот, я предпочитаю использовать накрутку в комбинации с пайкой:
Я использовал одностороннюю перфорированную фольгированную макетную плату. Большинство компонентов я припаял к плате, а соединения выполнил накруткой. В этом устройстве требуются более сильные силовые провода, которые я установил в нужных местах. Работает достаточно хорошо. Этот проект был бы реальным кандидатом на изготовление печатной платы, но стимула для этого у меня не оказалось, поскольку плата работает и так.
Устройство представлено тремя схемами:
Кликните для увеличения
Собственно микроконтроллер
Разработанная Atmel схема контроля заряда
Разработанная Atmel схема источника опорного напряжения
К микроконтроллеру подключен резонатор с частотой 7.3 МГц (ATmega8 поддерживает до 16 МГц). Я добавил 8- кнопочный переключатель в корпусе DIP для установки параметров аккумулятора и переменный резистор для установки тока заряда в «Ручном» режиме. Я использовал UART но не устанавливал интерфейс RS-232 на плату, так как у меня есть очень полезный кабель со встроенной микросхемой MAX233.
На фото видно, что я присоединил радиатор к MOSFETу. Я полагаю, что при таком подходе смогу без проблем получить от 3.5 до 4 ампер. Я смонтировал силовые компоненты на противоположной к микроконтроллеру стороне и развел 3 отдельных земли (для микроконтроллера, аналоговую и для питания зарядного устройства), соединенных только в одной точке. Для измерения напряжения и тока аккумулятора используется схема на операционном усилителе, которая дает небольшую погрешность, но в точных значениях нет необходимости, поскольку схема калибруется программно. Для расчета сопротивления и индуктивности в вашем специфическом случае используйте статью Atmel. Можете также воспользоваться электронной таблицей Excel.
На случай если в вашем аккумуляторе нет термистора, или его сопротивление отличается от 10 кОм, я сделал перемычку на плате. Можно было бы сделать несколько перемычек для разных сопротивлений термистора, так как диапазон их номиналов оказался довольно широким.
Я использовал стандартный разъем для источника питания и для аккумулятора. В дополнение, я использовал 3-проводный кабель для подключения к термистору и интерфейсу Smart. Разъемы для аккумуляторов очень специфичны и их тяжело найти. Я нашел разъем для моего первого аккумулятора, но не нашел для аккумулятора Gateway.
Окончание читайте здесь