Моделирование программы в симуляторе VMLab – первая программа на МК

April 29, 2014 by admin Комментировать »

После компиляции и получения файла «demol.hex» пользователь оказывается на распутье — запрограммировать MK сразу или предварительно провести моделирование процессов. Если нет времени или творческого настроения, то выбирают первый путь. Если отсутствует хороший осцилограф или же цена ошибки в программе слишком велика — выбирают второй путь.

Моделирование пригодится также тем, кому предстоит в дальнейшем работать с другими семействами MK (не с AVR-контроллерами). Они могут не изготавливать SKit «в железе», но на его примере изучить теорию языка Си и разобраться в моделировании входных и выходных цепей в VMLab. Поскольку разные типы

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

Чтобы моделирование было продуктивным, надо поставить перед собой одну или несколько задач. В простейшем случае можно выяснить, нет ли логических ошибок в программе, т.е. действительно ли будет включаться светодиод HL1 при нажатии на кнопку SB1 Но этого мало. Программа VMLab позволяет довольно точно измерять временные интервалы, поэтому вторая задача — узнать, сколько времени пройдёт от момента нажатия кнопки до загорания светодиода.

Порядок действий.

1.               Запустить на выполнение файл «Install_VMLAB315.exe» (4.5 Мбайт), находящийся на прилагаемом компакт-диске. Этот файл при необходимости можно свободно скачать из Интернета [6-11]. Инсталлировать VMLab в папку C:\VMLab\.

2.               Запустить VMLab на выполнение: «Пуск — Программы — VMLAB — Run VMLAB». Создать новый проект: «Project — New project — <заполнить графы как на Рис. 6.13> — ОК». В окне «Messages» должно появиться сообщение «PRJ file is ОК!». Созданный проект не является окончательным. Это всего лишь заготовка, которую предстоит адаптировать под конкретную электрическую схему.

Рис. 6.13. Заполнение заготовки npoeKTaVMLab «demol.prj».

3.              Развернуть окно с проектом «demol.prj» и откорректировать в нём текст co- гласноРис.6Л4.Сохранитьфайл:«РПе — SaveAll>>,<<Project — C1ose Project». Убедиться, что в папке C:\1001\ появился новый файл «demol.prj» длиной 1428 байтов. Не путать его с файлом проекта WinAVR с расширением «.proj».

Рис. 6.14. Файл проекта VMLab «demol.prj».

Пояснения к тексту проекта VMLab.

Начальные строки определяют тип MK и названия файлов, участвующих в компиляции. Отсутствующая в VMLab микросхема ATmega48A была успешно заменена аналогичной ATmega48. Обязательным является описание конфигурационного бита CKDIV8, иначе тактовая частота вместо 8 МГц станет 1 МГц.

В средней части проекта «рисуется» схема подключения светодиода HL1, резисторов R1, R2 и кнопки SB1 к линиям MK. Подробнее с синтаксисом команд можно ознакомиться в справке помощи «Help — Contents». Учёба пойдёт легче, если проштудировать примеры из папки C:\VMLAB\AVR_demo\.

В последней строке проекта указываются точки подключения «щупа» виртуального осциллографа к линиям MK, в данном случае к PC0 и PB1.

4.               Открыть только что созданный проект: «Project — Open project — <выбрать файл С:\Ю01\бето1.ро> — Открыть». Запустить построение проекта, для чего нажать на клавиатуре клавишу <F9> или иконку «Build» в верхней полосе меню. В окне «Messages» наблюдать сообщение «Success! All ready to run».

5.               Открыть экран виртуального осциллографа: «View — Scope». Установить развёртку по вертикали 2 В/деление, развёртку по горизонтали 20 мс/деление, поставить точку в кружке «Cursor — None».

6.               Запустить симуляцию процессов, для чего нажать на клавиатуре клавишу <F5> или иконку «Go/Continue» в верхней полосе меню. В окне «Messages» наблюдать сообщение «Starting hardware-software co-simulation…».

7.               Открыть панель управления: «View — Control Panel». Нажать на виртуальной тастатуре кнопку «1» (Рис. 6.15), которая соответствует реальной кнопке SB1 SKit и наблюдать в окне осциллографа отклики на осях «РСО», «РВ1» (Рис. 6.16, а).

Рис. 6.15. Имитация нажатия кнопки SB1 натастатуре VMLab.

Рис. 6.16. Виртуальный осциллограф VMLab: а) развёртка 20 мс/деление; б) 500 нс/деление.

8.              Сделать паузу в работе симулятора клавишами <Shift+F5> или иконкой «Pause program» в верхней полосе меню. Установить в настройках осциллографа развёртку по горизонтали 500 нс/деление. Переместить ползунок времени внизу экрана так, чтобы стал виден момент перехода уровней НИЗКИЙ/ВЫСОКИЙ или ВЫСОКИЙ/НИЗКИЙ. Поставить точку в кружке «Cursor 1» и мышью выбрать вертикаль первого замера. Затем поставить точку в кружке «Cursor 2» и выбрать мышью вертикаль второго замера. Точная разность отсчётов между двумя курсорами высвечивается влевом нижнем поле осциллографа (Рис. 6.16, б).

Расшифровка осциллограмм.

На экране осфиллографа VMLab имеются три горизонтальные оси. Верхняя ось «Тгасе/Prio» — системная. Она размечена чёрточками, которые регистрируют элементарные действия (такты), совершаемые процессорным ядром MK. Следующие две оси «РС0», «РВ1» отводятся под одноимённые линии портов MK и связанные с ними кнопку SB1 и светодиод HL1.

Если растянуть масштаб по горизонтали влево, то можно заметить, что MK в первые 0.3 мс после старта находится в состоянии сброса, поскольку на верхней оси вместо чёрточек имеется сплошной ВЫСОКИЙ уровень. Интересно, что в этот момент на осях «РС0», «РВ1» присутствует напряжение +5 В за счёт привязки к питанию линий MK через элементы RJ, R2, HL1.

Первый переход сигнала на оси «Тгасе/Prio» с ВЫСОКОГО в НИЗКИЙ уровень означает окончание сигнала сброса и переход к инициализации внутренних регистров MK. Первые операторы Си-программы начнут выполняться ещё через 3.4 МК с в момент, когда уровень сигнала на оси «РВ1» перейдёт с ВЫСОКОГО в НИЗКИЙ.

Пауза между нажатием кнопки SB1 и включением светодиода HL1 составляет 625…875 нс. Эти числа и есть главный результат моделирования. Разброс между ними означает, что кнопка SB1 нажимается асинхронно во времени, без привязки к какому-нибудь оператору в цикле «while» из строк 19…21 листинга.

Чтобы лучше освоить интерфейс управления VMLab, следует пройти всю процедуру повторно, но уже в пошаговом режиме. Для этого нажать на экранную кнопку сброса (иконка «Restart (deep)»), сымитировать повторное включение питания (меню «Project — Re-build all»), а затем несколько раз подряд нажимать на иконку «Step into» и наблюдать пошаговую прорисовку осциллограмм.

Источник: Рюмик, С. М., 1000 и одна микроконтроллерная схема. Вып. 2 / С. М. Рюмик. — М.:ЛР Додэка-ХХ1, 2011. — 400 с.: ил. + CD. — (Серия «Программируемые системы»).

Оставить комментарий

Устройство витков выходе генератора импульсов микросхемы мощности нагрузки напряжение напряжения питания приемника пример провода работы радоэлектроника сигнал сигнала сигналов сопротивление схема теория транзистора транзисторов управления усиления усилитель усилителя устройства частоты