AVR ATMega16 Quick Start

Материал из Документации
Перейти к: навигация, поиск

Содержание

Конфигурация питания процессорного модуля

Важнейший этап необходимый при КАЖДОЙ смене процессорного модуля. Дело в том, что у разных контроллеров разное питающее напряжение. Например, у AVR оно может достигать 5вольт, тогда как у STM32 3.3 вольта уже предел.


Чтобы обезопасить контроллер, схема выбора напряжения сделана таким образом, чтобы контроллерный модуль сам определял свое питающее напряжение. Т.е. конфигурационные резисторы установлены на контроллерном модуле.


Стабилизатору шины CPU POWER требуется около 1 вольтa разницы между напряжениями входа и выхода, иначе он не сможет удержать необходимое напряжение. Так что если шина MAIN POWER настроена на 5 вольт и нам нужно получить строго 5 вольт на CPU POWER, то необходимо одеть перемычку BYPASS, которая исключит стабилизатор из схемы питания, пустив напряжение в обход. Соединив шины Main Powerи CPU Power.


За обход стабилизатора отвечает джампер BYPASS который расположен с обратной стороны платы.


Bypas jp.jpg

Через отверстие можно наблюдать положение джампера.

Bypass hole.jpg


Все это справедливо и для первой ревизии платы, только там иное расположение джампера:

Bypas jp1.jpg
ВАЖНО!!!
При смене контроллерного модуля в ОБЯЗАТЕЛЬНОМ порядке возвращайте перемычку BYPASS в 
исходное положение, чтобы питание шло через стабилизатор. Тем самым, вы исключите риск сжечь 
контроллер неподходящим напряжением.

Без необходимости лучше не трогать этот переключатель. В подавляющем большинстве случаев, падение напряжения на стабилизаторе не критично и не является какой-либо проблемой при программировании. При напряжении на шине MAIN POWER в 5 вольт после стабилизатора остается чуть больше 4 вольт, что достаточно для работы AVR контроллера в нормальном режиме.

Конфигурация линии связи

Для безопасности и удобства контроллер лучше прошивать через BootLoader. Бут это небольшая программка, которая сидит в верхних адресах памяти контроллера (в AVR модулях я прошиваю ее перед продажей платы сам. Во многих других контроллерах бут бывает прошит с завода) и слушает коммуникационный порт. В данном случае это UART. При старте первым делом контроллер выполняет бутсектор и в течении нескольких секунд ждет кодовый сигнал с порта.


Если сигнала нет, то происходит переход к основной программе контроллера. А вот если сигнал есть, то boot на него отвечает и готов принять и прошить в основную память прошивку. Так что если мы хотим общаться с бутлоадером, то надо наладить линию связи, подключить UART к компьютеру, к виртуальному COM порту, чтобы программка AVRprogмогла достучаться до бутлоадера. Но тут есть ряд особенностей.

AVRProg опрашивает только первые четыре COMпорта. Поэтому наш виртуальный COM порт должен иметь номер от 1 до 4, не выше.

Comports.jpg

Если они иные, то нужно зайти в свойства какого либо из портов и выставить нужный порт принудительно:

Com options.jpg

Правда при этом может отпасть что либо другое, что использовало ранее виртуальный COMпорт. Например, блутуз передатчик для связи с сотовым. Но это мелочи ;)


После чего надо найти за какой канал какой COMпорт отвечает. Запускаем программу Terminal1.9b и замыкаем перемычку на канале А, замыкающую RxA на TxA:

Rxtx jps.jpg

В терминале цепляемся на свободный порт:

Term port.jpg

И шлем что нибудь. Если символы вернулись, значит выбранный COMпорт (в нашем случае COM2) соответствует каналу А. Не вернулось эхо? Значит не тот COM, ищем на каком у нас COM порту висит канал А. Потом замыкаем перемычку на канал B и таким же образом определяем порт канала В.

Следующим шагом нужно совместить любой канал, пусть это будет канал А с UART контроллера. Для этого надо одеть джамперы на коммутационной панели так, чтобы соединились соответствующие линии процессорного блока (он идет под номером 1, под номером 2 идет разъем модуля расширения) с соответствующим каналом FTDI. Покажу на примере подключения канала А с процессорным блоком.

Jp on mod avr.jpg

Мы соединили джамперами TxA с RxA1 и RxA с TxA1. Канал В в даном случае никуда не подключен. Теперь надо подключить джамперы UART на процессорном блоке, чтобы соединить линии связи от демоплаты, до Rx-Tx собственно микроконтроллера:

Rxtx jps2.jpg

Обратите внимание, что на блоке один UARTмикроконтроллера дублирован на канал А и на канал В, для удобства. Если у микроконтроллера было бы два канала UART, то один был бы разведен на А, другой на В. Мы же подключили джамперы, соединив канал А с UART микроконтроллера.

Подготовка проводов и подключение джамперов

Также не помешает подключить светодиоды, соединив джамперами выводы OCxx(вывод ШИМ генераторов) на светодиоды:

А на самой плате надо подключить джамперы, чтобы к линиями ОСхх были подключены именно светодиоды, а не RCцепочки. Заодно не помешает подключить АЦП – правый джампер на процессорном блоке. И три джампера возле крутилки переменного резистора. Ну и, раз уж взялись за джамперы, подготовить кнопки. Четыре джампера в правом нижнем углу. При этом мы кнопки BTN1..3 одним концом подключаем к земле (ROW1 на землю, вертикальный джампер), а колонки, отвечающие за кнопки, к выводам BTN1..3

Jmp on board for demo.jpg

Общая карта джамперов выглядит так:

J on board all.jpg

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

ВАЖНО!!! 
При питании от сетевого адаптера или иного источника с напряжением выше 5 вольт 
Не исключайте импульсный стабилизатор! Верните оба его джампера в положение REG. Иначе высокое напряжение с адаптера может попасть на шину MAIN POWER и что-нибудь пожечь.

Еще потребуется спаять семижильный кабель. Он пригодится для подключения дисплея. Вот такой:

Displ cab.jpg

Четыре линии на шину данных дисплея. Три на управление. И желательно еще иметь четыре одиночных проводка с напаянными на них контактами, ими мы подключим кнопки к контроллеру.

Запуск и наблюдение за демкой

USBподключен, COM порты определились в системе. Джамперы все установлены. Включаем плату, кнопкой Power ON. Изначально, в ходе проверки, контроллер AVR прошит загрузчиком и небольшой демопрограммкой.


При включении должен загореться LED3 -- это стартовал Bootloader и просигнализировал о своем запуске.

Через примерно 3-5 секунд LED3 погаснет и начнет выполняться основная программа. В данном случае, заранее прошитая демка. Она ничего особо полезного не делает, только берет данные с АЦП и отправляет их в UART. Еще плавно мигает светодиодами LED3 и LED2

При этом, если запустить программу Terminal и выбрать скорость 9600 и наш COM порт, настроенный на канал А, то увидим бегущие значения. При вращении ручки переменного резистора выдаваемые значения будут меняться от 0 до 255 (и такжебудет меняться символы выходящие в терминал).

Demo terminal.jpg

А при нажатии кнопки Graph можно будет увидеть зависимость кривой от угла вращения:

Gra demo terminal.jpg

Если все получилось, значит микроконтроллер запущен, интерфейс работает и можно попробовать что-либо залить в него с помощью бутлоадера.

Активация бутлоадера

Подключение дисплея и кнопок

Тесты расширенной демопрограммы

Небольшой FAQ

Разбор алгоритмов и исходников демопрограммы

Личные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты