Программатор xxxProg генерирует все необходимые сигналы, необходимые для программирования микросхем в плате пользователя.
Программирование микросхем в плате пользователя осуществляется с помощью специальных адаптеров. Название адаптера указано в окне Chip Information. Схемы всех адаптеров представлены в файле adapters.doc поставки.
Требования при подключении программатора к плате пользователя:
· подключение должно осуществляться в строгом соответствии cо
схемой соответствующего адаптера (см. файл adapters.doc),
· устройство пользователя должно быть разработано с таким учетом,
чтобы не оказывать шунтирующего влияния на логические сигналы
программатора.
· устройство пользователя должно предусматривать (если это
необходимо) возможность подачи со стороны программатора напряжения
программирования, превышающего напряжение питания.
Подача напряжения питания на плату пользователя.
Возможны два варианта:
· Подача питания от программатора. В этом случае необходимо иметь
ввиду, что нагрузочная способность источника питания программатора
ограничена током 80 мА. Источник питания программатора способен работать
на емкостную нагрузку, которая не должна превышать 50 мкФ.
· Подача питания на плату пользователя от внутреннего источника. В
этом случае, питание от программатора на плату пользователя подаваться
не должно. Необходимо иметь ввиду, что логические сигналы
со стороны программатора имеют высокий уровень, соответствующий его
напряжению питания.
ВНИМАНИЕ: категорически запрещается подавать питание на плату пользователя одновременно от программатора и от внутреннего источника.
Электрические характеристики сигналов программатора:
· Логические сигналы имеют внутреннее сопротивление 470 Ом.
· Нагрузочную способность напряжения питания - 80 мА.
· Нагрузочную способность напряжения программирования - 80 мА.
ВНИМАНИЕ:тщательно проверяйте правильность подключения программатора
к плате пользователя. Неверное подключение может привести к выходу из
строя аппаратуры программатора и платы пользователя.
Для того, чтобы максимально уменьшить настройку xxxProg после старта, отладчик сохраняет свое состояние в конфигурационных файлах при завершении своей работы. Можно также любой момент принудительно сохранить конфигурационные файлы, воспользовавшись меню главного окна "File", "Configuration files". Возможно хранить по несколько экземпляров файлов конфигурации, предназначенных для отладки различных программ и подгружать их "на ходу".
Существует два типа конфигурационных файлов, которыми можно манипулировать независимо:
· файл конфигурации экрана и опций отображения (Desktop). В нем сохраняется информация о положении, размерах, цветах, шрифтах всех окон отладчика.
· файл опций (Options). Он содержит информацию о различных опциях: выбранном типе процессора, точках останова, опциях отладки и т.п.
При завершении своей работы xxxProg записывает на диск файл сессии (Session), где запоминает, какие файлы Desktop и Options нужно будет загружать при последующем старте, т.к. можно сохранить эти файлы, придав им произвольные имена. Файл сессии сохраняется в текущей директории, остальные файлы - там, откуда были загружены или где последний раз сохранены.
При выходе в текущей директории записывается также файл history, куда помещается информация обо всех строках, введенных в диалогах.
32 битные микроконтроллеры
Лекция 9 Отличительные особенности микроконтроллеров AVR
Использована AVR расширенная RISC архитектура
Мощный набор из 121 команды, большинство которых выполняется за один машинный цикл
Емкость внутрисистемно программируемой Flash памяти 64 Кбайт (ATmega603/L) и 128 Кбайт (ATmega103/L), 1000 циклов стирания/записи
SPI интерфейс внутрисистемного программирования
Емкость встроенной EEPROM 2 Кбайт (ATmega603/L) и 4 Кбайт (ATmega103/L), 100000 циклов стирания/записи
Встроенная RAM емкостью 4 Кбайт
32 8-разрядных регистра общего назначения, набор регистров управления периферией
32 программируемых линии I/O, 8 линий выхода, 8 линий входа
Программируемые последовательные UART и SPI интерфейсы
Диапазон напряжений питания от 2,7 В до 6,0 В (ATmega603L/ ATmega103L) и от 4,0 В до 6,0 В (ATmega603/ ATmega103)
Диапазон тактовых частот от 0 до 4 МГц (ATmega603L/ ATmega103L) и от 0 до 6 МГц (ATmega603/ ATmega103)
Производительность до 6 MIPS при частоте 6 МГц
Встроенная система реального времени с отдельным генератором
Два 8-разрядных таймера/счетчика с отдельным предделителем и ШИМ
16-разрядный таймер/счетчик с отдельным предделителем, режимами захвата/ сравнения и двойным ШИМ с разрядностью 8, 9 или 10 разрядов
Программируемый сторожевой таймер с встроенным генератором
Встроенный аналоговый компаратор
8-канальный 10-разрядный аналого-цифровой преобразователь
Режимы энергосбережения Idle, Power Save и Power Down
Программная установка тактовой частоты
Программная блокировка защиты программных средств
Назначение выводов
VCC -
| Напряжение питания
|
GND -
| Земля
|
Port A (PA7..PA0) -
| 8-разрядный двунаправленный порт I/O. К выходам порта могут быть подключены встроенные нагрузочные резисторы (отдельно к каждому разряду). Выходные буферы обеспечивают втекающий ток 20 мА и способны напрямую управлять LED индикатором. При использовании выводов порта в качестве входов и установке внешним сигналом в низкое состояние, ток будет вытекать только при подключенных встроенных нагрузочных резисторах. Порт A, при наличии внешней SRAM, используется в качестве мультиплексируемой шины адреса/данных.
|
Port B (PB7. .PB0) -
| 8-разрядный двунаправленный порт I/O со встроенными нагрузочными резисторами. Выходные буферы обеспечивают втекающий ток 20 мА. При использовании выводов порта в качестве входов и установке внешним сигналом в низкое состояние, ток будет вытекать только при подключенных встроенных нагрузочных резисторах. Порт B используется также при реализации различных специальных функций.
|
Port C (PC7. .PC0) -
| 8-разрядный порт выхода. Выходные буферы обеспечивают втекающий ток 20 мА. Порт C используется также как выходы адреса при использовании внешней SRAM.
|
Port D (PD7. .PD0) -
| 8-разрядный двунаправленный порт I/O со встроенными нагрузочными резисторами. Выходные буферы обеспечивают втекающий ток 20 мА. При использовании выводов порта в качестве входов и установке внешним сигналом в низкое состояние, ток будет вытекать только при подключенных встроенных нагрузочных резисторах.
|
Port E (PE7..PE0) -
| 8-разрядный двунаправленный порт I/O со встроенными нагрузочными резисторами. Выходные буферы обеспечивают втекающий ток 20 мА. При использовании выводов порта в качестве входов и установке внешним сигналом в низкое состояние, вытекающий через них ток обеспечивается только при подключенных встроенных нагрузочных резисторах.
|
Port F (PF7..PF0) -
| 8-разрядный порт входа. Входы порта используются также как аналоговые входы аналого-цифрового преобразователя.
|
RESET -
| Вход сброса. Для выполнения сброса необходимо удерживать низкий уровень на входе в течение двух машинных циклов.
|
XTAL1 -
| Вход инвертирующего усилителя генератора и вход схемы встроенного генератора тактовой частоты.
|
XTAL2 -
| Выход инвертирующего усилителя генератора.
|
TOSC1 -
| Вход инвертирующего усилителя генератора таймера/счетчика.
|
TOSC2 -
| Выход инвертирующего усилителя генератора таймера/счетчика.
|
WR -
| Строб записи внешней SRAM.
|
RD -
| Строб чтения внешней SRAM.
|
ALE -
| Строб разрешения фиксации адреса, используемый для разрешении внешней памяти. Строб ALE используется для фиксации младшего байта адреса в защелках адреса в течение первого цикла обращения, в течение второго цикла обращения, при обращении к данным, используются выводы AD0 - AD7.
|
AVCC -
| Напряжение питания аналого-цифрового преобразователя. Вывод подсоединяется к внешнему VCC через низкочастотный фильтр.
|
AREF -
| Вход аналогового напряжения сравнения для аналого-цифрового преобразователя. На этот вывод, для обеспечения работы аналого-цифрового преобразователя, подается напряжение в диапазоне между AGND и AVCC.
|
AGND -
| Этот вывод должен быть подсоединен к отдельной аналоговой земле, если плата оснащена ею. В ином случае вывод подсоединяется к общей земле.
|
PEN -
| Вывод разрешения программирования в низковольтном последовательном режиме программирования. При удержании этого вывода на низком уровне во время сброса по включении питания, прибор перейдет в режим программирования по последовательному каналу.
|
Система команд 8-разрядных RISC микроконтроллеров семейства AVR
SREG:
| Регистр статуса
|
C:
| Флаг переноса
|
Z:
| Флаг нулевого значения
|
N:
| Флаг отрицательного значения
|
V:
| Флаг-указатель переполнения дополнения до двух
|
S:
| NЕV, Для проверок со знаком
|
H:
| Флаг полупереноса
|
T:
| Флаг пересылки, используемый командами BLD и BST
|
I:
| Флаг разрешения/запрещения глобального прерывания
|
Регистры и операнды
|
Rd:
| Регистр назначения (и источник) в регистровом файле
|
Rr:
| Регистр источник в регистровом файле
|
R:
| Результат выполнения команды
|
K:
| Литерал или байт данных (8 бит)
|
k:
| Данные адреса константы для счетчика программ
|
b:
| Бит в регистровом файле или I/O регистр (3 бита)
|
s:
| Бит в регистре статуса (3 бита)
|
X, Y, Z:
| Регистр косвенной адресации (X=R27:R26, Y=R29:R28, Z=R31:R30)
|
P:
| Адрес I/O порта
|
q:
| Смещение при прямой адресации (6 бит)
|
I/O регистры
|
RAMPX, RAMPY, RAMPZ:
| Регистры связанные с X, Y и Z регистрами, обеспечивающие косвенную адресацию всей области СОЗУ микроконтроллера с объемом СОЗУ более 64 Кбайт
|
Стек:
|
STACK:
| Стек для адреса возврата и опущенных в стек регистров
|
SP:
| Указатель стека
|
Флаги:
|
Ы
| Флаг, на который воздействует команда
|
0:
| Очищенный командой Флаг
|
1:
| Установленный командой флаг
|
-:
| Флаг, на который не воздействует команда
|
Система команд
Обозначение
| Функция
|
ADC
| Сложить с переносом
|
ADD
| Сложить без переноса
|
ADIW
| Сложить непосредственное значение со словом
|
AND
| Выполнить логическое AND
|
ANDI
| Выполнить логическое AND c непосредственным значением
|
ASR
| Арифметически сдвинуть вправо
|
BCLR
| Очистить флаг
|
BLD
| Загрузить T флаг в бит регистра
|
BRBC
| Перейти если бит в регистре статуса очищен
|
BRBS
| Перейти если бит в регистре статуса установлен
|
BRCC
| Перейти если флаг переноса очищен
|
BRCS
| Перейти если флаг переноса установлен
|
BREQ
| Перейти если равно
|
BRGE
| Перейти если больше или равно (с учетом знака)
|
BRHC
| Перейти если флаг полупереноса очищен
|
BRHS
| Перейти если флаг полупереноса установлен
|
BRID
| Перейти если глобальное прерывание запрещено
|
BRIE
| Перейти если глобальное прерывание разрешено
|
BRLO
| Перейти если меньше (без знака)
|
BRLT
| Перейти если меньше чем (со знаком)
|
BRMI
| Перейти если минус
|
BRNE
| Перейти если не равно
|
BRPL
| Перейти если плюс
|
BRSH
| Перейти если равно или больше (без знака)
|
BRTC
| Перейти если флаг T очищен
|
BRTS
| Перейти если флаг T установлен
|
BRVC
| Перейти если переполнение очищено
|
BRVS
| Перейти если переполнение установлено
|
BSET
| Установить флаг
|
BST
| Переписать бит из регистра во флаг T
|
CALL
| Выполнить длинный вызов подпрограммы
|
CBI
| - Очистить бит в регистре I/O
|
CBR
| Очистить биты в регистре
|
CLC
| Очистить флаг переноса
|
CLH
| Очистить флаг полупереноса
|
CLI
| Очистить флаг глобального прерывания
|
CLN
| Очистить флаг отрицательного значения
|
CLR
| Очистить регистр
|
CLS
| Очистить флаг знака
|
CLT
| Очистить флаг T
|
CLV
| Очистить флаг переполнения
|
CLZ
| Очистить флаг нулевого значения
|
COM
| Выполнить дополнение до единицы
|
CP
| Сравнить
|
CPC
| Сравнить с учетом переноса
|
CPI
| Сравнить c константой
|
CPSE
| Сравнить и пропустить если равно
|
DEC
| Декрементировать
|
EOR
| Выполнить исключающее OR
|
ICALL
| Вызвать подпрограмму косвенно
|
IJMP
| Перейти косвенно
|
IN
| Загрузить данные из порта I/O в регистр
|
INC
| Инкрементировать
|
JMP
| Перейти
|
LD Rd,X
| Загрузить косвенно
|
LD Rd,X+
| Загрузить косвенно инкрементировав впоследствии
|
LD Rd,-X
| Загрузить косвенно декрементировав предварительно
|
LDI
| Загрузить непосредственное значение
|
LDS
| Загрузить непосредственно из СОЗУ
|
LPM
| Загрузить байт памяти программ
|
LSL
| Логически сдвинуть влево
|
LSR
| Логически сдвинуть вправо
|
MOV
| Копировать регистр
|
MUL
| Перемножить
|
NEG
| Выполнить дополнение до двух
|
NOP
| Выполнить холостую команду
|
OR
| Выполнить логическое OR
|
ORI
| Выполнить логическое OR с непосредственным значением
|
OUT
| Записать данные из регистра в порт I/O
|
POP
| Загрузить регистр из стека
|
PUSH
| Поместить регистр в стек
|
RCALL
| Вызвать подпрограмму относительно
|
RET
| Вернуться из подпрограммы
|
RETI
| Вернуться из прерывания
|
RJMP
| Перейти относительно
|
ROL
| Сдвинуть влево через перенос
|
ROR
| Сдвинуть вправо через перенос
|
SBC
| Вычесть с переносом
|
SBCI
| Вычесть непосредственное значение с переносом
|
SBI
| Установить бит в регистр I/O
|
SBIC
| Пропустить если бит в регистре I/O очищен
|
SBIS
| Пропустить если бит в регистре I/O установлен
|
SBIW
| Вычесть непосредственное значение из слова
|
SBR
| Установить биты в регистре
|
SBRC
| Пропустить если бит в регистре очищен
|
SBRS
| Пропустить если бит в регистре установлен
|
SEC
| Установить флаг переноса
|
SEH
| Установить флаг полупереноса
|
SEI
| Установить флаг глобального прерывания
|
SEN
| Установить флаг отрицательного значения
|
SER
| Установить все биты регистра
|
SES
| Установить флаг знака
|
SET
| Установить флаг T
|
SEV
| Установить флаг переполнения
|
SEZ
| Установить флаг нулевого значения
|
SLEEP
| Установить режим SLEEP
|
ST X,Rr
| Записать косвенно
|
ST Y,Rr
| Записать косвенно из регистра в СОЗУ с использованием индекса Y
|
ST Z,Rr
| Записать косвенно из регистра в СОЗУ с использованием индекса Z
|
STS
| Загрузить непосредственно в СОЗУ
|
SUB
| Вычесть без переноса
|
SUBI
| Вычесть непосредственное значение
|
SWAP
| Поменять нибблы местами
|
TST
| Проверить на ноль или минус
|
WDR
| Сбросить сторожевой таймер
|
Таблица 35. Соответствие обозначений выводов обозначениям сигналов
Обозначение сигнала в режиме программирования
| Обозначение вывода
| I/O
| Описание
|
RDY / BSY
| PD1
| O
| 0: Прибор занят программированием, 1: Прибор готов к новой команде
|
OE
| PD2
| I
| Разрешение выхода (Активен низким уровнем)
|
WR
| PD3
| I
| Импульс записи (Активен низким уровнем)
|
BS1
| PD4
| I
| Выбор байта (бит 0)
|
XA0
| PD5
| I
| Режим XTAL (бит 0)
|
XA1
| PD6
| I
| Режим XTAL (бит 1)
|
BS2
| PD7
| I
| Выбор байта (бит 2 -всегда на низком уровне)
|
PAGEL
| PA0
| I
| Загрузка страницы программирования памяти
|
Биты XA1/XA0 определяют действие, запускаемое по положительному импульсу на XTAL1. Установки битов представлены в следующей таблице:
Таблица 36. Кодирование битов XA1 и XA0
XA1
| XA0
| Характер действия при поступлении импульса на XTAL1
|
|
| Загрузка Flash или EEPROM адреса (старший или младший байт адреса Flash памяти определяет бит BS1)
|
|
| Загрузка данных (старший или младший байт адреса Flash памяти определяет бит BS1)
|
|
| Загрузка команды
|
|
| Нет действия, ожидание
|
При поступлении импульсов WR или OE загруженная команда определяет действие на входе или выходе. Команда является байтом, в котором каждый бит определяет функцию, как это отражено в таблице:
Таблица 37. Кодирование битов байта команды
N бита
| Выполняемая операция при установленном бите
|
| Очистка кристалла
|
| Запись бита-предохранителя. Размещаются в байте данных по следующим битам: D5: SPIEN бит-предохранитель, D3: EESAVE бит-предохранитель, D1: SUT1 бит-предохранитель, D0: SUT0 бит-предохранитель (Примечание: запись 0 для программирования, запись 1 для стирания)
|
| Запись бита блокирования. Размещаются в байте данных по следующим битам::D2: LB2, D1: LB1 (Примечание: запись 0 для программирования)
|
| Запись Flash или EEPROM памяти (определяется битом 0)
|
| Чтение сигнатуры
|
| Чтение битов блокирования и битов-предохранителей. Размещаются в байте данных по следующим битам:D5: SPIEN бит-предохранитель, D3: EESAVE бит-предохранитель, D2: LB2, D1: SUT1/LB1, D0: SUT0 (Примечание: состояние 0 программируется)
|
| Чтение из Flash или EEPROM памяти (определяется битом 0)
|
| 0 : Обращение к Flash, 1 : Обращение к EEPROM
|
Вопросы для проверки знаний
Что в вычислительной технике принято называть портом?
Какие порты применяются в современной технике?
Какие блоки входят в состав порт ввода вывода UART?
Основные характеристики порт ввода вывода UART?
В чем измеряется скорость передачи данных.?
Определить число которое необходимо для задания скорости обмена данными 57600 бод битов в секунду записать в регистр UBRR если кварцевый резонатор рассчитан на частоту 3.6864 МГц ?
Определите погрешность от применения кварцевого резонатора на частоту 4 МГц при той же скорости обмена данными?
От чего зависит погрешность при задании скорости передачи данных?
Каковы пути уменьшения погрешности при построении устройств на микроконтроллерах?
Что понимается в вычислительной технике под термином кадр?
Принцип передачи данных через порт ввода вывода UART?
Принцип приема данных через порт ввода вывода UART?
Перечислите сигналы управления записываемые в виде определенных битов и назовите их назначение?
Дополнительный материал