Описание учебного стенда для изучения основ программирования микроконтроллеров
Версия 4 (Январь 2017)


Плата разработчика микроконтроллеров avr Atmega8

На фотографии хорошо видны многочисленные разъемы и гнезда. Благодаря такой конструкции использование паяльника сводится к минимуму, если он вообще потребуется: весь процесс коммутации узлов к микроконтроллеру осуществляется путем установки проводов-перемычек в соответствующие разъёмы.


Отладочная плата для микроконтроллеров АВР Atmega8a

Изделие имеет несколько стоек - думаю, знакомая ситуация, когда под контактами платы оказываются металлические изделия. Короткое замыкание и всё - тю-тю микросхемам и прочим деталям :(


Что можно освоить, используя данный стенд:

На плате имеются несколько джамперов, которые полностью изменяют возможности кнопок и периферии.

Имеются две отдельные кнопки, их можно подключить на "+", а можно на "-"
Следовательно, можно работать с разными уровнями "активности" сигнала.
Это же применимо для освоения прерываний по внешнему сигналу: спад, фронт, изменение
Тут же работа с клавиатурой (снимаем перемычку вообще) и "лечим" дребезг контактов.

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

Динамик - учимся работать с задержками (прибавляем умение делать уровни).
Итог: звуки разной тональности и длительности. Затем, пример работы ШИМ: генерация тона аппаратным ШИМом, после - таймер: таблица длительностей и тона = музыка

Следующий шаг: протоколы обмена
Со звуком поигрались, научились "дергать ножками" МК - увидели это на светодиодах. Теперь протокол обмена. Осваиваем понятие "аппаратной" и "логической" составляющих любого, даже самого простого, протокола обмена. Как одностороннего, так и двустороннего. У нас их аж два: односторонний - 7-сегментный индикатор, двусторонний - порт RS-232
Вначале то, что и проще, и нагляднее: 7-сегментник. У нас три управляющих сигнала, учимся работать с удаленным приемником, указываем ему на начало и конец посылки из 8 бит. Тут же видим результат.

Переставляем гибкие перемычки и осваиваем динамическую индикацию на 7-сегментный индикаторе. Мы уже пробовали таймер, развиваем идею: таймер формирует "картинку" на индикаторе

Далее работа с последовательным портом, и обмен данными с ПК.
тут вообще кладезь знаний!
На ПК запускаем терминал (а он есть и в Linux, и в Windows). Из него передаём, в него и принимаем
Возникли проблемы из-за нестабильности внутреннего задающего генератора МК, и ПК не принимает данные? - осваиваем "фузы" и предделители в МК.

Переставляем джамперы на четырёх кнопках и получаем клавиатуру (матрица),
снова переставляем - получаем клавиатуру на АЦП. Опрашиваем, программно и аппаратно боремся с наводками.
В стенде специально не запаян резистор (питание АЦП в МК): можно самому поиграться с питанием, и увидеть как работает "опорное напряжение АЦП", и на что оно влияет.
Выдаем на индикатор, выводим в порт.

Наигрались - переходим к "хакерству": принимаем ИК-сигналы от пультов ДУ бытовой техники, выводим на индикатор. Дальше - больше: сами генерируем сигналы ИК-пультов. Делаем свое устройство, управляемое сигналами в ИК-спектре.

А дальше самое неинтересное: подключаем индикатор 16*2, разъясняем 4 и 8 битные шины. Работаем с библиотекой этого устройства в компиляторе.
Делаем несколько меню с этим индикатором, управляем кнопками...
ЖК-Индикатор 1602



> И тем не менее! Для САМОСТОЯТЕЛЬНОГО изучения микроконтроллера - > идеальная вещь! Для инженеров, радиолюбителей малых лабораторий - очень удобно. Особенно для этого удобна монтажная панель, оставленная в углу платы.
значит, я достиг того, к чему стремился
Питание - на самой плате, уже не страшно перепутать полярность.
Сделано не гнездо - их видов пять, а клемник "под винт": чтобы любые проводки от внешнего адаптера можно было бы подключить...




Рассмотрим устройство подробнее.
Для этого приведены: рисунок печатной платы со всеми надписями на ней, а также схему описываемых узлов данного стенда
Надписи на плате


Скачать схему стенда "StartPCB", исходный текст демо-программы (bascom) и готовые прошивки. (zip, 2.3 МБ) >>



Преобразователь MAX232

В верхней части платы расположен модуль преобразователя интерфейсов TTL-RS-232, выполненный на типовой микросхеме, аналоге MAX232. На край платы вынесен разъем "RS-232" (DB-9, "мама"), с использованием которого стенд подключается к COM порту компьютера. Распайка этого разъема типовая, что позволяет подключить стенд к компьютеру прямым удлиняющим, не "нуль-модемным" кабелем. Также возможно подключение стенда к компьютерам не имеющих COM порта, для этого удобно использовать типовой преобразователь интерфейсов USB-COM.
Ниже разъема расположены две перемычки, замыканием которых данный преобразователь подключается к микроконтроллеру. Работа преобразователя хорошо прослеживается по свечению двух желтых светодиодов, расположенных рядом с разъёмом RS-232.

Благодаря наличию интерфейса связи RS-232 в процессе обучения будут:
- рассмотрены методы обмена данными между микроконтроллером и компьютером;
- изучены методы последовательной передачи данных;
- на практике будут показаны методы создания своего протокола связи (логический/верхний уровень) между микроконтроллером и компьютером, и другим оборудованием.



Измеряем температуру DS18b20

Верхние три контакта правого разъема предназначены для подключения цифрового датчика температуры - DS18b20. Микросхема выполнена в корпусе ТО-92 (как транзистор, три вывода). Устанавливается непосредственно в указанный разъем (маркировка указана на плате)

EEPROM и часы\таймер

В правом нижнем углу платы (под ЖК индикатором) установлены две микросхемы: часов\таймера DS1307 и энергонезависимой памяти - 24C16. Они подключены на общую шину I2C.

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



7-Сегментный индикатор

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



Модуль ИК связи

В правой части платы стенда расположен модуль инфракрасной связи: ИК-приёмник и ИК-передатчик.
Используя эти устройства мы будем управлять различными устройствами с использованием ИК связи. В процессе изучения мы научимся принимать и расшифровывать сигналы управления, передаваемые ИК пультами дистанционного управления (ПДУ), а также генерировать команды, имитируя нажатие клавиш различных пультов.

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



Блок питания

В левом углу платы стенда расположены цепи формирования питания 5 Вольт. Схема классическая: разъем клемного типа (это наиболее универсальный метод подключения внешнего источника питания), диод для защиты от неверной подачи питающего напряжения 8-18 Вольт (оптимально 8.5-9 Вольт), микросхема стабилизатора 7805.
Микросхема стабилизатора подключена по рекомендуемой изготовителем схеме. Для наглядности наличие напряжения питания 5 Вольт индицируется свечением светодиода.



Светодиоды ОА и ОК

Ниже расположены где группы 4 светодиода: 4 - красного свечения, 4 - зелёного. Первые подключены по схеме "общий катод", вторые - "общий анод". Выводы светодиодов выведены на разъем "LED" и пронумерованы. Эти индикаторы будут использоваться в процессе обучения в различных целях:
- благодаря разным схемам подключения программист учится работать с разными логическими уровнями:
в одних случаях для включения некого устройства необходимо на выводе МК создать "единицу", в других - "ноль";
- увеличивается наглядность работы с битовыми (бинарными) операциями: And, Or, Not, Xor;
- при изучении ШИМ будем изменять яркость свечения светодиодов.



Кнопки А и В

Еще ниже расположены две кнопки, обозначенные на плате как "А" и "В". Выводы кнопок выведены на разъем "Buttons_AB" и пронумерованы. Между этими двумя кнопками расположен блок джампера (перемычка):
- если перемычку установить в левую (от центра) позицию, то свободные выводы кнопок будут подключены к "общему" проводу - Gnd,
- если же установить перемычку в правую позицию - к проводу питания - Vcc (через токоограничительный резистор сопротивлением 3.3 кОм)

Если же перемычку снять полностью, то возможно подключение кнопок к любому выводу МК с помощью провода-перемычки. Для этого на разъём выведен сигнал "Общий провод" - "Common".

Данные кнопки будут использоваться:
- при изучении опроса клавиатуры;
- при изучении работы с прерываниями от внешних сигналов.

Благодаря наличию возможности изменять режим подключения кнопок к питающему или "общему" проводу мы сможем изменять реакцию нашего стенда при разных типах входного сигнала: по спаду/фронту/изменению.



Клавиатура на АЦП

В левом нижнем углу платы стенда расположены четыре кнопки, блок джампера "But/ADC" и разъем "Buttons/ADC", к выводам которого подключены эти кнопки. Используя джампер "But/ADC" и четыре блока джамперов мы изменяем схему подключения этих четырёх кнопок.
Если установить перемычку "But/ADC" в левое положение и на всех четырёх блоках джамперов в верхнее, то мы получим схему из четырёх кнопок, замыкаемых на "общий" провод - Gnd.
Если же установить перемычку "But/ADC" в правое положение и на всех четырёх блоках джамперов в нижнее, то мы получим схему "аналоговой" клавиатуры - нажатие кнопок создает различное напряжение на выводе "ADC" разъема "Buttons/ADC".

Данная схема будет использоваться:
- при изучении работы с кнопками;
- создании программы опроса матричной клавиатуры;
- при работе с АЦП.



Модуль микроконтроллера

В центре платы стенда расположен модуль микроконтроллера. Данная версия платы стенда разработана для использования микроконтроллеров семейства AVR от компании ATMEL. Могут быть установлены следующие модели МК: ATMEGA-48/8/88/168. Стенд поставляется с микроконтроллером ATMEGA8a.
На два разъема (2*40, мама) выведены сигналы со всех выводов МК, а также питающее напряжение. На плате имеются контакты для подключения кварцевого резонатора и двух конденсаторов.
К микроконтроллеру подведено напряжение питания, на блок АЦП микроконтроллера также подается питающее напряжение через дроссель.
Ниже панельки микроконтроллера расположен разъем, к которому подключается внешний программатор. Левее разъёма расположена кнопка "Сброс".



На главную страницу >>



Проект начат: 24-07-2010