Proteus VSM. Модель микроконтроллеров Atmel AVR
Введение
Модель AVR для Proteus VSM может имитировать поведение следующих микроконтроллеров от Atmel:
ATTINY11
ATTINY12
ATTINY13
ATTINY15
ATTINY24
ATTINY25
ATTINY44
ATTINY45
ATTINY84
ATTINY85
ATTINY261
ATTINY461
ATTINY861
ATTINY2313
AT90S2313
AT90S2333
AT90S2343
AT90S4433
AT90S4434
AT90S8515
AT90S8535
ATMEGA16
ATMEGA32
ATMEGA48
ATMEGA64
ATMEGA88
ATMEGA103
ATMEGA128
ATMEGA168
ATMEGA640
ATMEGA644
ATMEGA1280
ATMEGA1281
ATMEGA2560
ATMEGA88P
TMEGA164P
ATMEGA168P
ATMEGA324P
ATMEGA328P
ATMEGA644P
Поддержка компиляторов
Отладка на уровне исходников поддерживается:
- для WINAVR/GNU, Imagecraft и CodeVision ‘C’ компиляторов через COFF загрузчик;
- для IAR ‘C’ компилятора через UBROF загрузчик.
Последнее изменение данного файла помощи было 16 мая 2008 года.
Свойства модели
Модель AVR может быть настроена через ряд свойств, описанных ниже. Заметьте, что не все свойства имеют значение для установленной модели, и только те свойства, которые имеют значение для конкретного устройства, будут показаны в диалоговом окне устройства Редактировать Компонент (Edit Component).
Свойство | Значение по умолчанию | Описание |
---|---|---|
Program | — | Устанавливает один или более файлов программы для загрузки во внутреннюю память программ модели. Эти файлы могут быть в формате Intel Hex (.HEX), в формате IAR UBROF (.D90), или в фомате COFF (.COF). Расширение файла должно быть задано, какое оно есть на самом деле, так как оно используется для определения фомата файла. |
Clock | 1MHz | Устанавливает тактовую частоту микроконтроллера. В целях эффективности тактовая схема не моделируется, и величина тактовой частоты микроконтроллера определяется только этим значением. |
Suspend on stop (приостанавливать при стопе) | TRUE | Приостанавливает моделирование модели, когда встречается инструкция STOP. |
Simulate power on reset delay (имитировать задержку при сбросе и включении) | FALSE | Если TRUE, модель имитирует 4064 цикла задержки при сбросе и включении. Иначе модель выполняет последовательность сброс/вектор как только увидит, что на выводе сброс уровень логической 1. |
Force breakpoints on adc samples (ускорить прерывания при измерениях АЦП) | FALSE | Если TRUE, модель ускоряет смешанный режим моделирования прерываний каждый раз, когда АЦП необходимо измерить входное напряжение. Иначе модель интерполирует значение отсчета. Это более правильно, если ваша программа не делает вещи, которые воздействуют на входные аналоговые напряжения, измеряемые АЦП. Если АЦП запущен в непрерывном режиме, установка данной опции заметно замедлит моделирование. |
Log events in simulation log window (вносить события в окно журнала моделирования) | FALSE | Когда TRUE, модель пишет диагностику системы в журнал моделирования. |
Eeprom write delay (задержка записи EEPROM) | 4ms | Это свойство устанавливает задержку, используемую между записями в EEPROM. |
Initial contents of eeprom (начальное содержимое EEPROM) | — | Это свойство позволяет Вам загрузить бинарный файл начального содержимого EEPROM. |
Watchdog clock (тактовая частота сторожевого таймера) | 1MHz | Устанавливает тактовую частоту сторожевого таймера. |
External reset enabled (включение внешнего сброса) | TRUE | Эта опция передается в fuse-бит RSDSBL в микроконтроллерах ATTINY. Когда выключена, вывод RESET может быть использован как вход или вход/выход (зависит от микроконтроллера). |
Clock select options (опции выбора тактового генератора) | Internal Oscillator | Эти опции передаются в fuse-биты CKSEL в микроконтроллерах ATTINY. Выводы, зависящие от конфигурации этой опции, могут стать доступными для ввода/вывода. Оптимальная конфигурация для ввода/вывода — это значение по умолчанию. |
Основные ограничения модели
В текущей версии не моделируются следующие функциональные возможности устройств:
- Сброс при понижении питания не выполняется.
- Изменение напряжения источника питания не поддерживается.
- Интерфейс JTAG не поддерживается.
- Внешнее программирование памяти не поддерживается.
- Зависимость электрических характеристик от температуры не выполняется.
Ограничения модели для Mega 8/16/32
В текущей версии модели Mega 8/16/32 не моделируются следующие функциональные возможности:
- USART моделируется только как UART. Также дополнительные свойства UART, такие как четность и двойная скорость, не моделируются.
- Значение регистра OSCCAL ни на что не влияет; тактовая частота устанавливается только свойством CLOCK.
- Значение регистра XDIV ни на что не влияет; тактовая частота устанавливается только свойством CLOCK.
- Влияние битов блокировки загрузки не моделируется.
- Интерфейс JTAG не моделируется.
Планируется полное моделирование USART в следующей версии.
Ограничения модели для Mega 64/128
В текущей версии модели Mega 64/128 не моделируются следующие функциональные возможности:
- USART моделируется только как UART. Также дополнительные свойства UART, такие как четность и двойная скорость, не моделируются.
- Значения регистров OSCCAL и XDIV ни на что не влияют; тактовая частота устанавливается только свойством CLOCK.
- Влияние битов блокировки загрузки не моделируется.
- Влияние битов спящего режима SM0 и SM2 не моделируется; моделирование инструкции sleep аппроксимируется к любому из двух режимов (“ожидание” или “энергосбережение”), в зависимости установлен ли бит SM1 в 0 или в 1.
- Интерфейс JTAG не моделируется.
Планируется полное моделирование USART в следующей версии.
COFF загрузчик
Формат COFF — всеобщий формат отладки, используемый инструментами, включенными в AVR Studio. Файлы COFF для AVR имеют расширение “.COF” и содержат полную отладочную информацию, включая адреса строк исходников и переменные данные. Чтобы загрузить файл COFF в модель, Вам необходимо в свойство Program установить полное имя файла и расширение. Например:
PROGRAM=MYFILE.COF
Обратите внимание, что файл COFF содержит абсолютные пути к исходным ‘C’ файлам, и могут возникнуть проблемы, если проект был перемещен из одного каталога в другой.
Будущая версия возможно поддержит отладку виртуального железа VSM напрямую из AVR Studio 4.
IAR UBROF загрузчик
Формат UBROF принадлежит IAR Systems и это основной отладочный формат, используемый во всем ряду компиляторов IAR. Файлы UBROF имеют расширение “.D90” и содержат полную отладочную информацию, включая адреса строк исходников и переменные данные. Чтобы загрузить файл UBROF в модель, Вам необходимо в свойство Program установить полное имя файла и расширение. Например:
PROGRAM=MYFILE.D90
Обратите внимание, что файл COFF содержит абсолютные пути к исходным ‘C’ файлам, и могут возникнуть проблемы, если проект был перемещен из одного каталога в другой. Решение — перекомпилировать проект с IAR workbench.
Обратите внимание, что Proteus поддерживает UBROF 8 или более ранний, поэтому Вам необходимо установить опции XLINK в вашем проекте для создания выходного файла типа UBROF 8 (forced).
Удаленный драйвер отладки позволяет отладку виртуального железа, запуская Proteus напрямую из отладчика Embedded Workbench, в настоящее время разрабатывается.