Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kyrsova_robota.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.38 Mб
Скачать

Разработка отладочного модуля

Компания Atmel предлагает уже готовые отладочные модули вместе с программатором, программным обеспечением и инструкциями (документацией). Одним из таких отладочных модулей является STK500. Как видно на рисунке этот отладочный модуль состоит из множества панелек для разных микроконтроллеров, множество различных кнопок, светодиодов, джамперов, шлейфов, экраны на ЖКИ, разъемы подключения к ПК и т. д. Такой модуль не из самых дешевых (не менее 100$). Тем более такой модуль в бытовых условиях практически невозможно сделать. Гораздо более приемлемым вариантом будет создать (разработать) свой отладочный модуль, таким образом мы лучше разберемся в конструкции микроконтроллера, способах подключения обвязки, сами будем определять что к чему и как подсоединяется.

Рис. отладочный модуль STK500

Разработаем отладочный модуль, который будет включать в себя средства индикации (светодиоды) и манипуляции (кнопки).

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

Разработаем принципиальную схему нашего модуля.

Рис. принципиальная схема модуля

По принципиальной схеме разработаем печатную плату. Разводка печатной платы изображена на Рис.

Рис. Печатная плата модуля

Рис. Размещение элементов на модуле

Чтоб это все работало по нужному нам алгоритму, перейдем к следующему этапу – написанию программы для контроллера.

Программы и инструменты

Пора создавать программу которая, будучи загруженной (зашитой, прожженной) в МК, будет изменять физическое состояние его внутренностей и ножек делая записи в регистры МК и узнавать о физическом состоянии содержимого МК читая его регистры с целью выполнения задуманного вами.

Программу для МК удобно создавать в специальных программах - называются они компиляторы.

Если кроме компилятора в пакете есть отладчик-симулятор и/или программатор то это уже IDE (интегрированная среда разработки).

Компилятор позволяет написать программу для МК на универсальном языке программирования - одинаковом и для ПК и для различных МК (кстати для МК требуется всего 3-5% всех возможностей языка программирования).

Текст программы набранный вами (или другими добрыми людьми) в компиляторе называют исходным кодом (или исходником или сырцом - англ: source code)

Компилятор по вашей команде проверяет отсутствие ошибок в набранном исходнике и, если ошибок нет, преобразует исходник (компилирует его) в специальный файл обычно с расширением .hex - его называют "прошивка".

Прошивку с помощью программатора (для AVR это например 5 проводков с параллельного порта ПК) помещают во FLASH память программ МК и при необходимости частично в его EEPROM.

Очень трудно написать программу сразу правильно и без ошибок поэтому Важнейшим этапом разработки электронного устройства является отладка программы МК (программа МК называется - firmware).

Для отладки вы :

- включаете ваше устройство с прошитым МК (либо симулятор МК)

- находите отклонения от требуемого алгоритма вызванные ошибками проги,

- выявляете хитрыми способами эти ошибки,

- вносите соответствующие изменения в исходный текст программы

- опять компилируете

- прошиваете новый .hex в МК и опять на верхний пункт этого списка

И так до победного конца - т.е. до тех пор пока устройство заработает так как вам нужно.

Не всегда допустимо включить устройство не зная наверняка правильно ли работает программа МК - в некоторых случаях могут произойти серьезные и дорогостоящие повреждения обвязки МК и другой аппаратуры.

Иногда требуется проверить работу МК не имея его и вообще какой либо реально спаянной схемы и самого МК. В этих случаях я рекомендую использовать специальные программы - Симуляторы.

Симулятор приблизительно моделирует на ПК работу "прошитого" вашей программой МК и его обвязки - т.е. электронных компонентов окружающих МК по схеме устройства.

Кроме того симуляторы позволяют вам:

- останавливать программу когда нужно - в ручную и автоматически

- выполнять программу по шагам

- видеть как именно происходит выполнение программы

- наблюдать и изменять значения в регистрах МК

- наблюдать текущие значения переменных

- использовать виртуальные измерительные приборы с памятью

- симулировать работу МК с обвязкой включающей различные электронные компоненты и устройства

- виртуально обмениваться информацией с терминалом на ПК

- делать еще много полезного !

Теперь подробнее ...

Считаю, что :

Для начинающих наиболее удобен в работе компилятор Си для AVR CodeVisionAVR ( или CVAVR)

Обязательно читайте Help к компилятору - по сути это одновременно и учебник по Си для AVR и именно в нужном вам объеме !

Компилятор CodeVisionAVR (http://www.hpinfotech.ro/) имеет и встроенный программный модуль для прошивки МК и конфигурирования фьюзов прямо в схеме.

Компания Atmel подсказывает как начать работать с этим компилятором Си для AVR:

Для полного цикла разработки устройства достаточно только одного компилятора CodeVisionAVR.

Не имея МК, не покупая эл. компонентов и без пайки Без риска спалить что либо ! Вы можете проверить работу не только программы загруженной в модель МК но и работу модели целого электронного устройства!

Записать на диск результат его работы для последующего анализа, поиска недочетов.

Создадим программу для микроконтроллера в CodeVisionAVR.

Запускаем CodeVisionAVR.

File->new -> Source ->OK

File -> Save as ->Сохраняем исходник

File->new -> Project ->OK

На появившееся окно нажимаем «нет»

Рис. Создание проекта в CodeVisionAVR

Вводим имя проекта и сохраняем. В открывшемся окне нажимаем кноку «Add», выбираем наш исходник.

Рис. Добавление в проект файла с исходным кодом

Переходим на закладку С compiler, выбираем частоту тактирования 4 МГц, и наш микроконтроллер.

Рис. Выбор частоты тактирования и микроконтроллера

После чего нажимаем ОК.

В исходнике пишем программу.

Для проверки ошибок в коде пользуемся кнопками изображенными на Рис.

Рис. 1-проверка правильности кода, 2- сделать проект 3- скомпилировать проект

Программа зашитая в контроллер будет выполнять такие действия:

- мигать тремя лампочками (две крайние светятся, а средняя не светится, и наоборот)

- при нажатии кнопки скорость мигания будет увеличена

Исходный код программы:

#include<TINY45.h> //подключение библиотеки описания контроллера

#include<delay.h> //подключение библиотеки описания задержки

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]