- •А.В. Шарапов
- •Часть 1. Микроконтроллеры мк51
- •Предисловие
- •1 Принципы построения цифровых устройств управления
- •2 Общая характеристика микроконтроллеров семейства мк51
- •3 Программная модель и система команд мк51 ( лабораторная работа №1)
- •Программная модель микроконтроллера мк51
- •Система команд микроконтроллера
- •Команды микроконтроллера семейства мк51
- •Команды, влияющие на флаги результата
- •Запись программы на языке ассемблера и ее трансляция
- •Загрузка программы в эмулятор и управление его работой
- •Программа работы
- •Контрольные вопросы
- •Содержание отчета
- •4 Таймеры и система прерываний mк51 (лабораторная работа №2)
- •Таймеры/счетчики событий mcs-51
- •Система прерываний mк51
- •Программа работы
- •Контрольные вопросы
- •Содержание отчета
- •Машинные коды команд mк51
- •5 Упражнения по решению задач
- •6 Примеры программ обработки данных
- •7 Последовательный порт мк51
- •8 Организация линий портов мк51. Подключение внешних устройств
- •9 Направление развития элементной базы 8-разрядных микроконтроллеров Отличительные признаки современной элементной базы
- •Направления развития 8-разрядных мк
- •Модульный принцип построения
- •Резидентная память мк
- •Таймеры и процессоры событий
- •Сторожевой таймер
- •Контроллеры последовательного ввода/вывода
- •Минимизация потребления энергии в системах с мк
- •10 Микроконтроллеры семейства ат89 фирмы Atmel
- •Микроконтроллер at89c4051
- •Микроконтроллер at89s51
- •11 Примеры вопросов компьютерной контрольной работы
- •Литература
- •Часть 2. Микроконтроллеры avr
- •Предисловие
- •1 Общая характеристика микроконтроллеров avr, программная модель и система команд
- •2 Директивы ассемблера
- •Include — Вложить другой файл
- •Форматы представления чисел
- •3 Программный пакет avrStudio
- •4 Микроконтроллер aTtiny15l(лабораторная работа №3)
- •Таймеры aTtiny15l
- •Энергонезависимая память данных еeprom
- •Аналоговый компаратор
- •Аналого-цифровой преобразователь
- •Программа работы
- •Контрольные вопросы
- •Содержание отчета
- •Перечень команд микроконтроллера aTtiny15l
- •5 Микроконтроллер aTmega8 (лабораторная работа № 4)
- •Порты ввода-вывода
- •Регистры таймера т1
- •Режимы работы таймера т1
- •Нормальный режим работы (Normal)
- •Режим сброса таймера при совпадении (стс)
- •Режим быстрой шим (Fast pwm)
- •Режим шим с фазовой коррекцией
- •Режим шим с фазовой и частотной коррекцией
- •Прерывания от таймеров /счетчиков
- •Программа работы
- •Контрольные вопросы
- •Содержание отчета
- •6 Средства разработки программы на языке си, компиляторы и симуляторы
- •7 Язык си для микроконтроллеров
- •Структура программы на языке Си
- •Пункт 4. Объявление переменных
- •8 Загрузка программы в микроконтроллер
- •9 Моделирование работы микроконтроллера avrс помощью симулятораvmlab (лабораторная работа №5)
- •Программа работы
- •Содержание отчета
- •10 Моделирование работы микроконтроллера avr с помощью симулятора proteus vsm
- •11 Измеритель частоты сети
- •Обоснование алгоритма решения задачи
- •Разработка прикладной программы
- •Моделирование работы устройства с помощью vmlab
- •Моделирование работы устройства с помощью симулятора
- •Литература
8 Загрузка программы в микроконтроллер
Прошивать микроконтроллер можно прямо из программатора, встроенного в компилятор CodeVisionAVR через простейший адаптер (буквально "пять проводков"), соединяющих принтерный порт ПК с прошиваемым микроконтроллером AVR. Результат написания и компиляции программы – файл-прошивку с расширением .hex (и возможно файл с содержимым для EEPROM МК) нужно записать ("зашить") в МК. МК AVR многократно программируются прямо в устройстве, в котором будут работать. Та-
кое программирование называют ISP. Для этого установите на плате вашего устройства 6 контактов, а лучше 6-ти штырьковый разъем для ISP.
|
Рис. 8.1 –Разъем для внутрисхемного программирования
Вывод 2 нужно подключить к плюсу питания МК, если вы собираетесь использовать программатор, питающийся от вашего же устройства, например фирменный ISP AVR. Для "5 проводов" этот вывод не подключается. Для программирования достаточно 5 контактов. Соответственно и разъем, который вы будете использовать, может быть любым удобным для размещения на плате и имеющим минимум 5 контактов. Все контакты ISP разъема подсоединяются к ножкам МК в соответствии с названиями.
Будем пользоваться интерфейсом программирования, встроенным в компилятор CodeVisionAVR, и в нем разрабатывать программу для МК.
Вы можете в компиляторе CodeVisionAVR открыть меню "Project -> Configure -> After Make" и отметить чек бокс "Program the chip", затем ОК.
Еще нужно в меню "Settings -> Programmer" выбрать ваш адаптер для программирования.
После безошибочной компиляции программы вам будет доступна кнопка "Program" - нажмите на нее и произойдет программирование МК - т.е. файл .hex будет загружен в память программ МК. Затем МК будет "сброшен" (на ножку RESET будет подан лог. 0, а затем опять "1") и начнет выполнять только что прошитую (загруженную в него) программу.
Вам даже не нужно будет отсоединять адаптер программирования от вашего устройства, если вы не используете в устройстве последовательный интерфейс SPI.
В диалоге настройки программирования не трогайте галочки установки фьюзов МК, если не разобрались четко, что они делают! Иначе вы можете отключить режим ISP или внутренний RC-генератор и для следующего программирования вам понадобится ставить кварц с конденсаторами.
В ATmega с завода включен внутренний RC-генератор на частоте 1 МГц (уточните это по ДШ и его возможные частоты). Если вам нужна другая частота или нужно включить внешний кварцевый или керамический резонатор – вам нужно запрограммировать некоторые фьюзы по таблицам из ДШ. Незапрограммированный фьюз – 1, запрограммированный – 0.
Пример: чтобы включить в ATmega16 внешний кварцевый резонатор с частотой от 3 до 8 МГц с конденсаторами (по схеме рис. 12 ДШ) найдите в ДШ раздел "System Clock". В таблице 2 указаны комбинации фьюзов для разных источников тактового сигнала. Далее написано, что с завода МК поставляется с такой комбинацией фьюзов
СKSEL 0001 SUT 10 CKOPT 1
По таблице 4 находим: для кварца с частотой от 3 до 8 МГц нужны конденсаторы от 12 до 22 пФ и вот такая комбинация фьюзов :
СKSEL 1111 SUT 10 CKOPT 1
Установка фьюзов в программаторе компилятора CVAVR показана на рисунке. Сняв галочку "Program Fuse Bit(s)" вы cможете не менять установку фьюзов!
Рис. 8.2 – Окно программатора
Для прошивания МК нажмите кнопку "Program All". Для использования ATmega16 с внешним кварцевым или керамическим резонатором на частотах выше 8 МГц вам нужно установить фьюзы как в примере выше, но запрограммировать CKOPT – значит сделать его "0". Т.е. вам нужна такая комбинация:
СKSEL 1111 SUT 10 CKOPT 0
Приведенный ниже адаптер "5-проводков" (источник информации указан на рисунке) прекрасно работает с компилятором CodeVision. Для изготовления адаптера лучше взять "принтерный" шнур – он длинный и экранированный, а неэкранированные проводки не стоит делать более 10-15 см.
Рис. 8.3 –Адаптер связиAVRс персональным компьютером
Подробно работа с программатором описана в его help. В help CVAVR и VMLAB вы можете найти информацию по работе с компилятором и симулятором, а также ДШ для любого типа микроконтроллера AVR. Естественно, эта информация приводится на английском языке. На русском языке эти вопросы хорошо представлены в работе [9], на базе которой построены разделы [5-9] настоящего учебного пособия и которую можно рекомендовать для более детального изучения дисциплины.