Поиск по сайту: |
|
По базе: |
|
Главная страница > Применение > Микроконтроллеров > AVR |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AVR146: Зарядка литий-ионных аккумуляторов через USB с помощью Atmega16/32U4Свойства:
1. ВведениеЭти «рекомендации» предназначены для Atmega16/32U4 и их цель — объяснить как использовать оценочную плату EVK527 для зарядки литий-ионных аккумуляторов используя соединение USB как источник питания. USB CDC класс предлагает простой интерфейс для отображения параметров зарядки. Эти «рекомендации» происходят от AVR458: зарядка литий-ионных аккумуляторов с ATAVRBC100. Программное обеспечение полностью написано на Си (использовалось IAR®Systems Embedded Workbench) и его легко портировать на другие AVR® микроконтроллеры. 2. ОписаниеЭтот документ описывает приложение, работающее на оценочном наборе EVK527. EVK527 разработан для Atmega16/32U4. USB обеспечивает 5 вольтовое питание на выводе VBUS. Доступный диапазон токов: от 100 мА до 500 мА. Этого достаточно для зарядки элемента литий-ионных аккумуляторов. Литий-ионные аккумуляторы требуют точного контроля над током и напряжением во время зарядки. Atmega16/32U4 имеет full speed USB интерфейс, ШИМ-каналы и каналы 10-битного АЦП. Все эти возможности используются для реализации зарядки литий-ионных аккумуляторов через USB.
Для обеспечения дружественного интерфейса пользователя все параметры зарядки (статус зарядки, напряжение на аккумуляторах, ток зарядки, температура аккумуляторов...) отображаются на ПК без использования измерительных приборов. После USB нумерации, появляется виртуальный com-порт (см. Рис. 1.2). В окне HyperTerminal, подключенного к этому порту, отображаются параметры зарядки. Т.к. Com-порт является виртуальным, настройки порта HyperTerminal (скорость, четность) не учитываются. Пользователь может выбрать конфигурацию по умолчанию.
2.1 Отображение параметров зарядки на ПК Приложение обеспечивает постоянное обновление параметров, отображаемых на ПК. Если аккумуляторов не обнаружено или не идентифицировано, зарядка не начинается. Состояние зарядки доступно только на стадии зарядки постоянным напряжением. (см. Раздел 3.2.2). Когда HyperTerminal запущен, пользователь должен нажать кнопку HWB для начала посылки информации в ПК.
3. Принцип работыЗарядка аккумуляторов возможна благодаря обратимой химической реакции, которая восстанавливает энергию в химической системе. В зависимости от используемых химикатов аккумулятор будет иметь различные характеристики. Для того, чтобы не нанести серьезный вред аккумуляторам требуется подробное знание этих характеристик. 3.1 Технология литий-ионных аккумуляторов У литий-ионных аккумуляторов лучшее соотношение энергия/вес и энергия/размер среди современных перезаряжаемых аккумуляторов. Сейчас это наиболее быстро растущие системы аккумуляторов на рынке, которые используются в таких приложениях, как ноутбуки, сотовые телефоны, портативные медиа плееры, КПК и медицинские устройства. По сравнению с традиционными перезаряжаемыми аккумуляторами у литий-ионных нет внутреннего сопротивления, долгое время жизни, быстрое время зарядки, маленькая саморазрядка, низкая токсичность и нет требований по поддержке. Например, элементы литий-ионных аккумуляторов с кобальтовыми катодами обеспечивают в два раза большей энергией, чем никелиевые аккумуляторы и в четыре раза больше энергии, чем свинцово-кислотная батарея. Литий-ионные аккумуляторы практически не требуют ухода — преимущество, которым не могут похвастаться другие химические аккумуляторы. У литий-ионных аккумуляторов нет эффекта памяти и они не требуют плановой циклической работы для продления времени жизни. У литий-ионных аккумуляторов низкий саморазряд и они безопасны для окружающей среды. Причиняют минимальный вред после окончания использования. К недостаткам литий-ионновых аккумуляторов относятся низкий перезаряд и необходимость встроенной защитной цепочки. Электрическое короткое замыкание может привести к протеканию большого тока, при этом увеличится температура и термическое отклонение, при котором опасные газы выходят наружу. 3.1.1 Безопасность При соблюдении определенных предосторожностей при зарядке и разрядке литий-ионные аккумуляторы безопасны. Производители аккумуляторов дополнительно обеспечивают высокий уровень надежности с помощью трех уровней защиты таких, как:
Устройства защиты элементов аккумуляторов работают следующим образом:
Электрическая защитная цепочка работает следующим образом:
Сегодня литий-ионные аккумуляторы являются одними из самых успешных и безопасных среди других химических аккумуляторов, они производятся с миллионами элементов каждый год. 3.2 Зарядка литий-ионных аккумуляторов Существует только один способ зарядки литий-ионных аккумуляторов. У производителей литий-ионных аккумуляторов есть очень строгие нормативы по процессу зарядки и литий-ионные аккумуляторы должны заряжаться при условиях, указанных производителем. Литий-ионные аккумуляторы заряжаются постоянным напряжением (после достижения напряжением номинального значения) с ограничением по току, чтобы избежать перегрева в начальной стадии зарядки. Зарядка заканчивается, когда ток зарядки падает ниже уровня, заданного производителем. При зарядке осуществляется мониторинг нескольких параметров: времени зарядки и температуры аккумулятора. Аккумулятор повреждается при перезарядке и может взорваться, если его перезарядить. 3.2.1 Безопасность Статическое электричество или неисправное устройство зарядки могут повредить защитную цепь аккумулятора и перевести твердотельные переключатели в постоянное положение «включено». Это может случиться без ведома пользователя. Аккумулятор с поврежденной защитной цепью может работать нормально, но не обеспечивает защиту от неправильного использования. Литий-ионные аккумуляторы потребительского класса не могут заряжаться при температуре ниже 0°C (32°F). Если аккумуляторы заряжать при низкой температуре, то зарядка может происходить нормально, но химические реакции внутри элемента могут привести к долговременному дефекту и могут подвергнуть риску безопасность аккумулятора. Аккумулятор становится более уязвимым к поломке, при ударе, разрушении или высокой скорости зарядки. Аккумулятор должен оставаться прохладным. Аккумулятор, который нагревается во время зарядки, не должен использоваться. 3.2.2 Первоначальная зарядка и интервалы зарядки В отличие от многих других типов перезаряжаемых аккумуляторов литий-ионные аккумуляторы не требуют специфической первоначальной зарядки. Первая зарядка литий-ионных аккумуляторов не отличается от 10-ой или 100-ой. Литий-ионные аккумуляторы могут и должны заряжаться часто. Аккумуляторы дольше сохраняют работоспособность, если они частично разряжены, чем если они постоянно полностью разряжаются. Для предотвращения износа аккумуляторов нужно избегать полной разрядки. Емкость аккумулятора уменьшается со временем в независимости от того, используется он или нет. 3.2.3 Стадии зарядки Зарядка литий-ионных аккумуляторов состоит из трех этапов:
Нижеприведенный рисунок иллюстрирует напряжение и ток литий-ионного аккумулятора во время зарядки.
На вышеприведенном рисунке «перезарядка» — это уровень, при котором включается защитная цепь элемента и открывает твердотельный переключатель и останавливает протекание тока. После этого напряжение аккумулятора обычно должно упасть на несколько сотен милливольт прежде чем протекание тока возобновится. «Чрезмерная разрядка» —это уровень, при котором начинается протекание тока для предотвращения глубокой разрядки аккумулятора. 3.3 Аккумулятор VARTA™ 3.3.1 Типичные характеристики зарядки Параметры аккумуляторов всегда должны проверятся по документации производителя. Ниже приведена сводка типичных характеристик зарядки литий-ионных аккумуляторов. Реальные параметры могут отличаться. Таблица 3-1. Типичные характеристики зарядки
3.3.2 Типичные характеристики аккумуляторов Ниже приведена сводная таблица данных производителей по используемым в этом приложении аккумуляторам. Другие типы аккумуляторов также могут использоваться, но, возможно, потребуется адаптация программного и/или аппаратного обеспечения. Таблица 3-2. Данные производителя по литий-ионным аккумуляторам серии VARTA™ EasyPack
1 RID: внутреннее сопротивление аккумулятора определяет емкость подключенного аккумулятора. 2 Значение B используется в формуле для расчета температуры. 3.3.3 Электрические выводы В этом приложении используются литий-ионные аккумуляторы определенного типа и все представленные здесь конфигурации основаны на данных производителя. Другие литий-ионные аккумуляторы тоже могут использоваться, но пользователь должен посмотреть документацию производителя и убедиться, что необходимые изменения внесены в программное и аппаратное обеспечение. Нижеприведенный рисунок показывает выводы аккумуляторов, используемых в этом приложении.
Аккумулятор подключается к устройству зарядки следующим образом. Таблица 3-3. Подключение аккумулятора к заряжающему устройству
3.4 Напряжение питания VBUS Приложения, получающие питание от USB, делятся на три категории:
Источником тока для питания EVK527 и для зарядки аккумуляторов является VBUS. EVK527 должна ограничивать ток зарядки, если это необходимо. Простое решение — изменение параметра тока зарядки в таблице. Например, для аккумулятора на 550мАч может использоваться ток зарядки 260мА. Изменение этого параметра на 90мА (например) позволяет подключать устройство зарядки к маломощной шине, т.к. Известно, что потребление EVK527 с кварцем на 8МГц составляет около 10мА. В этом случае ток предварительной оценки также должен быть не более 90мА 3.5 Версия EVK527 EVK527 версии 1.0.0 должна быть изменена следующим образом:
На схемах, показанных в разделе 6, эти изменения не показаны. 3.6 Вольтодобавочный преобразователь
Вольтодобавочный преобразователь интегрирован на EVK527 с целью контроля напряжения аккумулятора и тока. Переключатель управляется высокоскоростным ШИМ-выходом. 3.6.1 Частота ШИМ Скорость ШИМ запрограммирована на максимальное значение (64МГц). Источником тактирования является выход ФАПЧ (96МГц), используемый и ШИМ и USB. Постделитель реализует деление сигнала ФАПЧ на 1.5: 96МГц/1.5=64МГц (см. PLLTM1 и PLLTM0 в регистре PLLFREQ). Частота результирующего выходного сигнала ШИМ составляет 250кГц: 64МГц/256=250кГц. Где 256 — это размер в битах регистра сравнения OCR4A, используемого в таймере 4.
Программное обеспечение управляет напряжением/током аккумулятора регулируя коэффициент заполнения ШИМ-сигнала. Если тон увеличивается, напряжение/ток аккумулятора прикладываются к большей нагрузке. 4. Программное обеспечение для устройства зарядки аккумуляторов4.1 Планировщик Планировщик реализован для постоянного выполнения определенных задач. Перед началом выполнения бесконечного цикла вызываются функции инициализации. Существует три задачи. Каждая задача вызывается после выполнения предыдущей (нет приоритетного прерывания обслуживания).
4.2 Список файлов Программное обеспечение написано на Си с использованием IAR Systems Embedded Workbench®, версии 5.10. Так как программное обеспечение полностью написано на Си, не должно быть сложно портировать его на другие AVR Си-компиляторы. Из-за некоторых специфических особенностей компиляторов, тем не менее часть кода должна быть переписана. В нижеприведенной таблице содержится список файлов проекта. Таблица 4-1. Файлы проекта для приложения CDC (см. файл IAR EW workspace).
Таблица 4-2. Файлы проекта для модуля аккумуляторов (см. файл IAR EW workspace file)
4.3 Обзор Программное обеспечение содержит все необходимые функции для зарядки аккумуляторов. Таблица 4-3. Требования программного обеспечения к памяти (без оптимизации IAR).
4.4 Конечный автомат Конечный автомат реализован в задаче аккумуляторов. Этот конечный автомат достаточно прост и использует указатели на функции. Он просто находит адрес следующей функции для выполнения и затем переходит к этой функции. Алгоритм работы конечного автомата показан на нижеприведенном рисунке.
После возврата конечный автомат ожидает, что функция укажет следующее состояние посредством возвращаемого аргумента. Распознаваемые возвратные коды описаны в нижеприведенной таблице. Таблица 4-4. Коды конечного автомата (см. исходные коды, menu.h)
Функции состояний описаны в разделах ниже. 4.4.1 Initialize() Функция инициализации является первой функцией состояния, которая будет выполнена после сброса устройства. Алгоритм работы функции показан на нижеприведенном рисунке.
Функция инициализации всегда возвращает один и тот же код, который указывает на функцию контроля аккумуляторов. 4.4.2 BatteryControl() Функция контроля аккумуляторов проверяет, что все джамперы установлены правильно, затем проверяет, вставлены ли аккумуляторы разрешенного типа и нужно ли их заряжать. Алгоритм работы показан на нижеприведенном рисунке.
4.4.3 Charge() Функция зарядки содержит алгоритм зарядки, разделенный на этапы. Для этого приложения процесс зарядки состоит из 4 этапов:
Ключевыми переменными этой функции являются ChargeParameters и HaltParameters. Алгоритм работы этой функции показан на нижеприведенном рисунке.
4.4.4 Discharge() Эта функция не была реализована. 4.4.5 Sleep() Приложение переходит в sleep режим, когда все аккумуляторы заряжены. Приложение периодически «просыпается» через заданный промежуток времени для проверки текущего состояния аккумуляторов. Режим sleep прерывается, если какому-либо аккумулятору требуется зарядка. Алгоритм работы в Sleep режиме показан на рисунке ниже.
4.4.6 Error() Ход программы изменяется, если возникает ошибка. Программа покинет обработчик ошибок, когда все причины ошибок будут устранены. Алгоритм программы показан на нижеприведенном рисунке.
4.5 Функции управления зарядкой Эти функции вызываются Charge() после установки всех параметров. 4.5.1 Constant Current/Voltage Эти две функции похожи, не считая того, что они используют разные измерения АЦП для сравнения с установленными пределами. Поэтому ниже приведен алгоритм работы только ConstantCurrent(). Обе эти функции используют переменную ChargeParameters.
4.5.2 Определение прерывания процесса зарядки Прерывание зарядки определяется функцией HaltNow(). Эта функция вызывается для определения, закончилась ли зарядка, функциями ConstantCurrent() и ConstantVoltage() каждый раз, когда они выполняются в цикле. С помощью переменной HaltParameters пользователь может задать при каких условиях прерывается зарядка, и должен ли выставляться флаг ошибки, если истекает заданный промежуток времени. Установка флага ошибки приводит к следующему состоянию ST_ERRQR, таким образом прекращая зарядку. Если не установлен ни один флаг ошибки, то следующим состоянием будет состояние, установленное ранее в Charge(). В заключение, функция проверяет не выходит ли температура за заданные пределы, исправен ли аккумулятор, и превышает ли питающее напряжение минимум. Если одна из этих проверок не проходит, то следующее состояние будет соответствовать подходящему обработчику ошибок (ST_ERRQR, ST_INIT или ST_SLEEP) и зарядка прекращается.
4.6 Другие функции 4.6.1 Аналогово-цифровое преобразование АЦП использует мультиплексор для считывания значений из разных каналов. По окончании преобразования вызывается обработчик прерывания (ADC Interrupt Service Routine (ISR)), как это показано в алгоритме ниже. После завершения обработки прерывания выполнение программы возобновляется в нормальном порядке. Для всех каналов опорное напряжение АЦП является внутренним и составляет 2,56В.
4.7 Реализация Этот раздел описывает, как сконфигурировать, создать и загрузить программное обеспечение. 4.7.1 Конфигурирование Наиболее важные при компилировании константы приведены в таблице ниже. Больше программных констант содержится в файле battery.h. Таблица 5-1. Константы, относящиеся к аккумуляторам (см. исходный файл battery.h)
4.7.2 Компиляция Доступны проекты под IAR и GCC. Проект GCC может использовать внешний makefile (см. Makefile в \gcc\default) или опции, которые определяются в проекте в AVR Studio. Таблица 5-2. Конфигурирование компилятора
4.7.3 Программирование Скомпилированный код легко загрузить в целевое устройство с помощью AVR Studio® и любого отладочного средства или программатора по выбору, например JTAGICE mkII. Заметьте, что скомпилированный код может содержать данные для EEPROM, если это необходимо. Эта возможность предусмотрена для дальнейшей разработки. Ответьте OK, когда AVR Studio спросит, должны ли быть загружено содержимое EEPROM. Это показано на рисунке ниже.
В программе используется внутренний генератор и тактовый сигнал используется без предделителя. Некоторые фьюзы должны быть запрограммированы для обеспечения правильной работы программы. Установки фьюзов, которые отличаются от изначальной заводской конфигурации, приведены в таблице ниже. Таблица 5-3. Установки фьюзов, отличающиеся от изначальных.
На EVK527 версии 1.0.0 выводы JTAG совмещены с выводами, идущими к кнопкам джойстика. Поэтому при нажатии кнопок CDC приложение отключается. Кнопка HWB используется для начала передачи данных в HyperTerminal. После загрузки программного обеспечения с помощью AVR Studio загрузчик ATmega16/32U4 стирается. Если требуется загружать ПО с помощью FLIP (ATMEL ISP), то предварительно нужно восстановить загрузчик с помощью AVR Studio. 5. Схемы EVK527 версии 1.0.0Рисунок 6-1. Страница 1/5 (схемы версии 3.0.0, соответствуют платам версии 1.0.0) 6. Связанные документы
Документация:
Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|