ИК загрузчик – это микроконтроллерный электронный комплекс, с помощью которого возможно осуществить дистанционное программирование микроконтроллеров семейства AVR в пользовательском устройстве по ИК каналу связи. Комплекс состоит из двух частей: целевое устройство и Host-устройство. Целевое устройство имеет ИК-приемник, ИК-передатчик и два канала интерфейса внутрисхемного программирования (для подключения к пользовательскому устройству). Передатчик (Host-устройство) подключается к USB интерфейсу компьютера, на котором установлено соответствующее ПО и драйверы Host-устройства. Все данные передаются по ИК каналу целевому устройству, которое после успешного принятия данных осуществляет программирование пользовательского микроконтроллера. Проект является бесплатным с открытым исходным кодом и разработан для образовательных целей.
Изначально основной целью данного проекта была программная реализация USB интерфейса на микроконтроллерах семейства AVR компании Atmel с помощью программной библиотеки известной как V-USB от Objective Development Software.
Host-устройство базируется на микроконтроллере ATmega8, на котором с помощью V-USB программно реализован USB интерфейс. К микроконтроллеру подключаются ИК-приемник и ИК-передачик, которые собраны в виде отдельных подключаемых модулей. Для программного обеспечения использовался компилятор WinAVR (AVR-GCC).
Программное обеспечение для персонального компьютера написано с использованием бесплатной библиотеки Libusb-Win32 и скомпилировано с использованием Lazarus Freepascal.
Полностью вся реализация использует пользовательский класс устройства, требует простой inf-файл и драйвер libusb, установленный на персональном компьютере.
Передача данных по ИК каналу реализуется при помощи встроенного в микроконтроллер ATmega8 модуля UART и Таймера 2 (таймер используется в качестве генератора сигнала модуляции 38 кГц). Скорость передачи данных 2400 бит/с. При использовании одного ИК светодиода коммуникация между Host и целевым устройством возможна на расстоянии 6.5 м. В последней версии ИК-передатчика применены 6 ИК светодиодов, что позволило увеличить расстояние до 15 метров.
Принципиальная схема Host-устройства
Отличительные особенности и характеристики Host-части проекта:
- программное обеспечение микроконтроллера реализует устройство пользовательского класса;
- поддержка операций работы с памятью микроконтроллера: стирание, запись, чтение;
- доступ возможен к Flash-памяти, EEPROM, fuse-битам;
- определение ошибок в процессе передачи данных (CRC16);
- размер пакета данных 128 Байт (возможно дальнейшее увеличение длины);
- процедура usbpoll не может быть запущена, пока идет передача данных USART. Работа модуля USART имеет высший приоритет, чтобы поддерживать ИК коммуникацию между Host и целевым устройством;
- разработка для микроконтроллеров семейства AVR (не все модели протестированы, ограничения накладываются по частоте сигнала тактирования SCK интерфейса ISP в различных сериях микроконтроллеров);
- максимальный объем целевой памяти с которой поддерживается работа 32640 Байт (32 КБайт) – это ограничение накладывается из-за ограниченного количества пакетов данных (255) и длиной пакета данных (128 Байт)
Принципиальная схема модуля ИК-передатчика
Принципиальная схема модуля ИК-приемника
Список компонентов для Host-части комплекса
Обозначение в схеме |
Описание |
IC1 |
Микроконтроллер ATmega8 |
C1, C2 |
18 пФ |
С3 |
100 нФ |
С5 |
10 мкф |
Q2 |
Кварцевый резонатор 12 МГц |
R1 |
10 кОм |
R2, R6 |
68 Ом |
R3, R4, R5, R8 |
330 Ом |
R7 |
1.5 кОм |
D1, D2, D3, D4 |
Светодиоды красного, зеленого, синего и |
DZ1, DZ2 |
Стабилитрон 3.6 В |
KONEKTOR_ISP |
Коннектор интерфейса внутрисхемного |
KONEKT |
Коннектор USB |
Модуль ИК-передатчика |
|
IC1C, IC1D |
Логические элементы микросхемы 74HC32 |
Q1, Q2 |
Транзистор 2N3906 |
IR1, IR2, IR3, IR4, IR5, IR6 |
Светодиоды ИК IR333/H0/L10 |
R1, R3 |
820 Ом |
R2, R4 |
22 Ом |
R9 |
330 Ом |
LED1 |
Светодиод красного цвета свечения |
Модуль ИК-приемника | |
IRM8510 |
Модуль ИК-приемника IRM-8510 |
R9 |
1 кОм |
С1 |
100 мкФ |
LED |
Светодиод красного цвета свечения |
В заключительной части мы познакомимся со схемотехническим решением целевого устройства, которое осуществляет прием данных и процесс внутрисхемного программирования микроконтроллера в пользовательском устройстве.
Загрузки
Host-часть: принципиальная схема, программное обеспечение для микроконтроллера, программное обеспечение для ПК: 20081008.host.side.zip
Модуль ИК-приемника, модуль ИК-передатчика: принципиальная схема: 20080726.ir.circuit.zip
Ссылки