Кафедра света и электричества

Основной элемент - плата с контроллером

Целью этого проекта было создание простой, дешевой и удобной платы для школьников. Первый вариант дизайна увидел свет в 2006 году. С применением этой платы был прочитан курс "Микроконтроллеры и их применение" на Летней Экологической школе. Основная идея разработки следующая: расположение свободных контактных площадок на плате, насколько это возможно, соответствует расположению ножек микросхемы контроллера; все внешние устройства монтируются на отдельных небольших платках, и соединяются с основной при помощи пайки проводом МГТФ. Расположение контактов на платах внешних устройств в основном стандартно. На плате контроллера в изобилии имеются контактные площадки с землей и питанием, так что припаивать внешние устройства достаточно удобно. Кроме того, уменьшается вероятность отслаивания фольги при многократных перепайках, которые, без сомнения, школьники будут производить достаточно часто.

Эксплуатация платы показала, что идеология была выбрана правильная, но имеется одна существенная проблема. А именно, с программаторами. Школьники, успешно прослушавшие курс, получили платы, но не смогли их использовать, поскольку цена программатора показалась им слишком высокой. Мы предприняли попытку исправить положение, спаяв и раздав несколько дешевых программаторов, работающих через LPT, но использование их оказалось слишком сложным для школьников.

Тогда, в 2008 году, была создана вторая версия платы. Для ее программирования не нужен был отдельный программатор, а питание и прошивка осуществлялись через USB. В 2009 году курс "Микроконтроллеры и их применение" снова был прочитан на ЛЭШ, и новые школьники получили новые контроллеры.

Кроме USB, вторая версия платы содержит часы реального времени с батарейкой. В результате плата очень хорошо подходит для реализации систем записи данных и монторинга. Несложная процедура позволяет "усыпить" контроллер, заведя будильник RTC на любое заданное время.

Печатная плата содержит несколько "хитростей". Как известно, интерфейс USB поставляет питание +5 вольт, но работает с уровнями 3.3 вольтовой логики. Существует два основных способа решения этой проблемы. Более дешевый состоит в том, чтобы поставить в цепь питания два кремниевых диода последовательно. В результате напряжение на контроллере уменьшается до 3.4 - 3.7 вольта, что вполне достаточно. Недостаток этого способа состоит в том, что у разных плат будет немного разное напряжение питания. Второй способ - поставить стабилизатор напряжения с малым падением (LDO). Это обеспечит точность, но будет немного дороже.

Разводка платы позволяет использовать любой способ без какой-либо переделки. Если же разрабатываемое устройство должно работать от 5 вольт, то на этот случай предусмотрен джампер, который закорачивает цепь, понижающую напряжение. На плату можно ставить как вертикальный, так и горизонтальный держатель для батарейки типоразмера 2032.

Вариант с диодами Вариант со стабилизатором

На плате имеется два джампера, названные VOLT и PROG. Первый подает на микроконтроллер питание +5 вольт, а также может служить точкой съема питания для пятивольтовых устройств. К таким устройствам относятся, например, LCD индикаторы, которые хорошо работают с сигналами 3.3 вольта при питании от 5 вольт. Джампер PROG служит для активизации загрузчика при включении питания.
Для платы разработан широкий ассортимент периферии, а также программное обеспечение для работы с PC (Windows) и внешними устройствами, в число которых входят ЖКИ, акселерометр, термометр, драйверы шаговых двигателей, светодиодные индикаторы, итп.

Используемые детали
Обозначение на схеме Номинал или тип Примечание
ATMEGA8 ATMega8-16PU Производитель: ATMEL
U2 PCF8563 Производитель: Philips
IC1 LD1117S33  
D1, D2 1N4004  
D5 BAT54C  
Q1 12МГц  
С1, С2 33пФ  
С3 100.0мкФ  
С4, С5 0.1мкФ  

Вид сверху


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

Рисунок печатной платы в разрешении 600 DPI в зеркальном отображении для распечатки на лазерном принтере можно скачать здесь.

Перед использованием платы в контроллер необходимо загрузить загрузчик - программу, которая занимает 2 килобайта памяти из 8 и позволяет загружать программы через интерфейс USB. Сделать это придется обычным программатором, причем крайне важно не забыть правильно поставить FUSE-биты. Программу вместе с исходными кодами можно взять здесь. Сайт программы - здесь, можно взять более свежую версию.
Если используется программатор с визуальным интерфейсом, то FUSE-биты надо ставить так:


Программатор AS-1 фирмы ARGUSSOFT

После заливки программы и прошивки загрузчика программатор больше не понадобится. Это удобно для школ и других образовательных учреждений: на группу можно иметь всего один программатор. Теперь для загрузки FLASH-памяти понадобится только программа BootLoadHID.exe. В качестве параметра ей передается имя HEX файла с прошивкой. Размер загружаемой программы не должен превышать 6 килобайт. Преимуществом данного загрузчика является то, что он не требует установки каких-либо драйверов. Основными инструментами разработки будут служить компилятор WinAvr и среда AVRStudio4. Оба продукта - бесплатные. После установки обоих пакетов,  в AVRStudio появляется возможность создать проект AVR GCC:


После создания проекта открываем в меню Project-Configuration Options и устанавливаем следующие параметры проекта:

Красным подчеркнуты те параметры, которые следует проверить.

Набираем самую простую программу:
int main()
{
}

и компилируем. Если все прошло нормально, и ошибок нет, то в каталоге проекта будет создан подкаталог с именем default. Программу загрузки BootLoadHID.exe можно просто скопировать в этот каталог. Пробуем прошить контроллер. Для этого устанавливаем джампер PROG, подключаем контроллер USB кабелем и запускаем BootLoadHID.exe с параметром - именем HEX файла. Если прошивка прошла успешно, BootLoadHID.exe сообщит об этом и выведет размер доступной FLASH-памяти. Теперь можно приступать к разработке программ.

Если не проходит прошивка и BootLoadHID.exe сообщает

Error opening HIDBoot device: The specified device was not found.

то первым делом нужно проверить качество монтажа. Причинами неприятностей могут быть неправильно установленные FUSE-биты, интерфейс USB и кварц. Кварц может не заработать из-за неправильной емкости конденсаторов.