AVR микроконтроллер AT90S2333 фирмы Atmel
Альтернативные функции порта D
AIN1 - Порт D, бит7 - инвертирующий вход аналогового компаратора. Если вывод сконфигурирован как вход (DDD7=0) и отключен внутренний подтягивающий резистор, этот вывод может работать как инвертирующий вход аналогового компаратора. В экономичном режиме триггер Шмитта отключен от цифрового входа. Это позволяет удерживать на входе напряжение близкое к Vcc/2 без заметного увеличения потребления.
AIN0 - Порт D, бит6 - неинвертирующий вход аналогового компаратора. Если вывод сконфигурирован как вход (DDD6=0) и отключен внутренний подтягивающий резистор, этот вывод может работать как инвертирующий вход аналогового компаратора. В экономичном режиме триггер Шмитта отключен от цифрового входа. Это позволяет удерживать на входе напряжение близкое к Vcc/2 без заметного увеличения потребления.
T1 - Порт D, бит 5 - тактовый вход таймера/счетчика 1. Подробнее см. описание таймера.
T0 - Порт D, бит 4 - тактовый вход таймера/счетчика 0. Подробнее см. описание таймера.
INT1 - Порт D, бит 3 - вход внешних прерываний 1. Подробнее см. описание прерываний.
INT0 - Порт D, бит 2 - вход внешних прерываний 0. Подробнее см. описание прерываний.
TXD - Порт D, бит 1 - выход передатчика UART. Если разрешена работа передатчика UART, независимо от состояния DDRD1 этот вывод сконфигурирован как выход.
RXD - Порт D, бит 0 - выход приемника UART. Если разрешена работа приемника UART, независимо от состояния DDRD0 этот вывод сконфигурирован как выход. Когда UART использует вывод для приема данных, единица в PORTD0 подключает встроенный подтягивающий резистор.
ПРОГРАММИРОВАНИЕ ПАМЯТИ
Программирование битов блокировки памяти
Микроконтроллер имеет два бита блокировки, которые могут быть оставлены незапрограммированными (1) или программироваться (0), при этом достигаются свойства приведенные в таблице 20.
Таблица 26. Режимы защиты и биты блокировки
Биты блокировки |
Тип защиты |
||
Режим |
LB1 |
LB2 |
описание |
1 |
1 |
1 |
защита не установлена |
2 |
0 |
1 |
дальнейшее программирование флэш памяти и EEPROM запрещено |
3 |
0 |
0 |
как режим 2, но запрещено и чтение |
Примечание: биты блокировки стираются только при полном стирании памяти
Биты конфигурации (Fuse bits)
В AT90S2333/4433 предусмотрены шесть бит конфигурации - SPIEN, BODLEVEL, BODEN, и CKSEL[2:0].
Когда запрограммирован бит SPIEN (0) разрешен режим
последовательного программирования. По умолчанию бит запрограммирован
(0). В режиме последовательного программирования этот бит недоступен.
BODLEVEL. Задает уровень срабатывания схемы сброса по пропаданию питания. Если бит незапрограммирован (1), этот уровень - 2.7В, для
запрограммированного бита - 4В. По умолчанию бит незапрограммирован.
BODEN. Когда этот бит запрограммирован (0), разрешен сброс по пропаданию питания. По умолчанию бит незапрограммирован.
CKSEL[2:0]. В таблице 4 приведены значения задержки при сбросе на которые влияют эти биты. По умолчанию биты установлены в 010 - 64mS+16K CK.
Код устройства
Все микроконтроллеры фирмы Atmel имеют 3-байтовый сигнатурный код, по которому идентифицируется устройство. Этот код может быть прочитан в параллельном и последовательном режимах. Эти три байта размещены в отдельном адресном пространстве и для AT90S4433 имеют следующие значения:
1. $000: $1E - код производителя - Atmel
2. $001: $92 - 4 кБ флэш памяти
3. $002: $01 - при $01=$92 - м/сх AT90S4433 для AT90S2333:
1. $000: $1E - код производителя - Atmel
2. $001: $91 - 2 кБ флэш памяти
3. $002: $05 - при $01=$92 - м/сх AT90S2333
Программирование флэш памяти и EEPROM
AT90S2333/4433 имеют 2кБ или 4кБ перепрограммируемой флэш памяти программ и 256 байт энергонезависимой памяти данных.
При поставке флэш память и память данных стерты (содержат FFh) и готовы к программированию. Микросхемы поддерживают высоковольтный (12В) параллельный режим программирования и низковольтный режим последовательного программирования. Напряжение +12В используется только для разрешения программирования, этот вывод почти не потребляет тока. Последовательный режим программирования предусмотрен для загрузки программы и данных в системе пользователя (внутрисистемное программирование). В обоих режимах программирования память программ и данных программируется байт за байтом. Для программирования EEPROM предусмотрен цикл автоматического стирания при программировании в последовательном режиме.
Параллельное программирование.
Ниже рассмотрено параллельное программирование флэш памяти программ, энергонезависимой памяти данных, битов блокировки и конфигурации. Некоторые выводы процессоров ниже называются именами, отражающими функциональное назначение сигналов при параллельном программировании. Выводы не приведенные в следующей таблице называются своими обычными именами.
Таблица 27. Имена выводов
Имя сигнала при программирован. |
Имя вывода |
Вх/Вых |
Функция |
RDY/BSY | PD1 | Вых |
0: мкросхема занята программированием 1: мкросхема готова к приему команды |
OE | PD2 | Вх | Разрешение выходов (активный 0) |
WR | PD3 | Вх | Импульс записи (активный 0) |
BS | PD4 | Вх | Выбор байта |
XA0 | PD5 | Вх | Действие XTAL бит 0 |
XA1 | PD6 | Вх | Действие XTAL бит 1 |
Биты XA0 и XA1 определяют действие происходящее по положительному импульсу XTAL1. Установки битов приведены в следующей таблице:
Таблица 28. Установка XA1 и XA0
XA1 |
XA0 |
Действие при подаче импульса XTAL1 |
0 |
0 |
Загрузка адреса памяти программ или данных (старший/младший байт задается выводом BS |
0 |
1 |
Загрузка данных (старший/младший байт для флэш памяти задается выводом BS) |
1 |
0 |
Загрузка команды |
1 |
1 |
Не работает, холостой ход |
По импульсу WR или OE загружается команда определяющая действие по вводу или выводу. В байте команды каждому биту присвоена функция, как показано в таблице 29.
Таблица 29. Биты конфигурации командного байта
Бит |
Значение при установке |
7 |
Стирание кристалла |
6 |
Запись битов конфигурации, расположенных в следующих позициях байта данных: D5-SPIEN, D4-BODLEVEL, D3-BODEN, D2-D0-CKSEL (0 для программирования, 1 для стирания) |
5 |
Запись битов блокировки, расположенных в следующих позициях байта данных: D2 - LB2, D1 - LB1 (для программирования устанавливать 0) |
4 |
Запись памяти программ или данных (определяется битом 0) |
3 |
Чтение сигнатуры |
2 |
Чтение битов блокировки и конфигурации, расположенных в следующих позициях байта данных: D5-SPIEN, D4-BODLEVEL, D3-BODEN, D2-D0 -CKSEL (для BS=1) или D2-LB2, D1-LB1 (для BS=0) |
1 |
Чтение памяти программ или данных (определяется битом 0) |
0 |
доступ к памяти программ, 1 к памяти данных |
ВХОД В РЕЖИМ ПРОГРАММИРОВАНИЯ
Следующий алгоритм переводит устройство в режим параллельного программирования:
1. Подать напряжение 4.5...5.5В на выводы питания.
2. Установить RESET и BS в 0 и выдержать не меньше 100 нС.
3. Подать 12В на RESET и выждать не менее 100 нС перед изменением
BS. Любая активность на выводе BS в течение этого времени приведет к тому, что микросхема не включится в режим программирования.
СТИРАНИЕ КРИСТАЛЛА
При стирании кристалла стираются память программ и данных, а также биты блокировки. Биты блокировки не сбрасываются до полного стирания памяти программ и данных. Биты конфигурации не изменяются. (Стирание кристалла производится перед его программированием).
Загрузка команды "стереть кристалл"
1. Установить XA1,XA0 в '10'. Это разрешает загрузку команды.
2. Установить BS в 0
3. Установить PC(1..0) PB(5..0) в '1000 0000'. Это команда стирания кристалла.
4. Подать положительный импульс на XTAL1. При этом загружается команда и начинается стирание памяти программ и данных. После импульса XTAL1, подать отрицательный импульс на WR, чтобы разрешить стирание битов блокировки по окончанию цикла стирания. Подождать около 10 мС до окончания цикла стирания. Стирание кристалла не генерирует сигнала RDY/BSY.
ПРОГРАММИРОВАНИЕ ФЛЭШ ПАМЯТИ
Загрузить команду "программирование флэш памяти"
1. Установить XA1,XA0 в '10'. Это разрешает загрузку команды.
2. Установить BS в 0
3. Установить PC(1..0) PB(5..0) в '0001 0000'. Это команда программирования флэш памяти
4. Подать положительный импульс на XTAL1. При этом загружается команда.
Загрузить младший байт адреса
1. Установить XA1,XA0 в '00'. Это разрешает загрузку адреса.
2. Установить BS в 0. Это выбирает младший байт адреса.
3. Установить на PC(1..0) PB(5..0) младший байт адреса.
4. Подать положительный импульс на XTAL1. При этом загружается младший байт адреса.
Загрузить старший байт адреса
1. Установить XA1,XA0 в '00'. Это разрешает загрузку адреса.
2. Установить BS в 1. Это выбирает старший байт адреса.
3. Установить на PC(1..0) PB(5..0) старший байт адреса. ($00..$01)
4. Подать положительный импульс на XTAL1. При этом загружается старший байт адреса.
Загрузить байт данных
1. Установить XA1,XA0 в '01'. Это разрешает загрузку данных.
2. Установить на PC(1..0) PB(5..0) младший байт данных.
3. Подать положительный импульс на XTAL1. При этом загружается младший байт данных.
Запись младшего байта данных.
1. Установить BS в '0'. Это выбирает младший байт данных
2. Подать на WR отрицательный импульс. Это инициирует программирование байта. RDY/BSY переходит в низкое состояние.
3. Перед программированием следующего байта подождать, пока RDY/BSY перейдет в высокое состояние.
Загрузить байт данных
1. Установить XA1,XA0 в '01'. Это разрешает загрузку данных.
2. Установить на PC(1..0) PB(5..0) старший байт данных.
3. Подать положительный импульс на XTAL1. При этом загружается старший байт данных.
Запись старшего байта данных.
1. Установить BS в '1'. Это выбирает старший байт данных
2. Подать на WR отрицательный импульс. Это инициирует программирование байта. RDY/BSY переходит в низкое состояние.
3. Перед программированием следующего байта подождать, пока RDY/BSY перейдет в высокое состояние.
Загруженные адрес и данные сохраняются в устройстве после программирования, при этом процесс программирования упрощается.
* Команду программирования флэш памяти необходимо подать только перед программированием первого байта
* Старший байт адреса можно менять только перед программированием
следующей страницы памяти программ (256 слов).
ПРОГРАММИРОВАНИЕ ПАМЯТИ ДАННЫХ
Алгоритм программирования памяти данных следующий (обратитесь к программированию памяти программ за описанием загрузки команды, адреса и данных):
1. Загрузить команду '0001 0001'.
2. Загрузить младший адрес памяти данных (00h - 7Fh/FFh).
3. Загрузить младший байт данных
4. Подать отрицательный импульс на WR и подождать перевода RDY/BSY в 1.
Загрузка команды необходима только перед программированием первого байта.
ЧТЕНИЕ ПАМЯТИ ПРОГРАММ
Алгоритм чтения флэш памяти следующий (обратитесь к программированию памяти программ за описанием загрузки команды, адреса и данных):
1. Загрузить команду '0000 0010'
2. Загрузить младший байт адреса ($00 - $FF)
3. Загрузить старший байт адреса ($00 - $03/$07)
4. Установить OE в '0', BS в '0'. Теперь на выводах PC(1..0) PB(5..0) можно прочитать байт данных.
5. Установить BS в '1'. Теперь на выводах PB можно прочитать старший байт данных.
6. Установить OE в '1'.
Загрузка команды необходима только перед чтением первого байта.
ЧТЕНИЕ ПАМЯТИ ДАННЫХ
Алгоритм чтения памяти данных следующий (обратитесь к программированию памяти программ за описанием загрузки команды, адреса и данных):
1. Загрузить команду '0000 0011'
2. Загрузить младший байт адреса (00h - 7Fh)
3. Установить OE в '0', BS в '0'. Теперь на выводах PC(1..0) PB(5..0) можно прочитать байт данных.
4. Установить OE в '1'.
Загрузка команды необходима только перед чтением первого байта.
ПРОГРАММИРОВАНИЕ БИТОВ КОНФИГУРАЦИИ
Алгоритм программирования битов конфигурации следующий (обратитесь к программированию памяти программ за описанием загрузки команды, адреса и данных):
1. Загрузить команду '0100 0000'
2. Загрузить данные
Бит5=0 - программировать бит SPIEN, Бит5=1 - стереть бит SPIEN
Бит4=0 - программировать бит BODLEVEL,
Бит4=1 - стереть бит BODLEVEL
Бит3=0 - программировать бит BODEN,
Бит3=1 - стереть бит BODEN
Биты 2-0 =0 - программировать биты CKSEL,
Биты 2-0 =1 - стереть биты CKSEL
3. Подать на WR отрицательный импульс и ждать перехода RDY/BSY в единицу.
ПРОГРАММИРОВАНИЕ БИТОВ БЛОКИРОВКИ
Алгоритм программирования битов блокировки следующий (обратитесь к программированию памяти программ за описанием загрузки команды, адреса и данных):
1. Загрузить команду '0010 0000'
2. Загрузить данные
Бит2=0 - программировать бит LB2
Бит1=0 - программировать бит LB1
3. Подать на WR отрицательный импульс и ждать перехода RDY/BSY в единицу.
Биты блокировки стираются только при стирании всей микросхемы.
ЧТЕНИЕ БИТОВ КОНФИГУРАЦИИ И БЛОКИРОВКИ
Алгоритм чтения битов блокировки и конфигурации следующий (обратитесь к программированию памяти программ за описанием загрузки команды, адреса и данных):
1. Загрузить команду '0000 0100'
2. Установить OE в '0', BS в '0'. Теперь на выводах PC(1..0) PB(5..0) можно прочитать биты конфигурации.
Бит5 - SPIEN - '0' запрограммирован
Бит4 - BODLEVEL - '0' запрограммирован
Бит3 - BODEN - '0' запрограммирован
Биты 2-0 - CKSEL - '0' запрограммированы
3. Установить OE в '0', BS в '1'. Теперь на выводах PC(1..0) PB(5..0) можно прочитать биты блокировки.
Бит2 - LB2 - '0' запрограммирован
Бит1 - LB1 - '0' запрограммирован
3. Установить OE в '1'.
ЧТЕНИЕ БАЙТОВ СИГНАТУРЫ
Алгоритм чтения байтов сигнатуры следующий (обратитесь к программированию памяти программ за описанием загрузки команды, адреса и данных):
1. Загрузить команду 0000 1000
2. Загрузить младший байт адреса ($00 - $02), установить OE и BS в "0". После этого выбранный байт сигнатуры можно прочитать на выводах PC(1..0) PB(5..0).
3. Установить OE в "1".
Команду необходимо подавать только перед чтением первого байта.
Таблица 31. Характеристики параллельного программирования
T=21..27 ±C, Vcc=4.5-5.5V
Параметр | Min | Typ | Max | |||||||
tDVXH | Задерж.между установ. данных и сигн.упр. и высоким уровнем XTAL1 | 67 | nS | |||||||
tXHXL | Ширина импульса XTAL | 67 | nS | |||||||
tXLDH |
Удержание данных и сигналов управления После установки XTAL1 = 1 |
67 | nS | |||||||
tBVVL | Удержание BS после установки WR | 0 | 67 | nS | ||||||
tWLWH | Ширина импульса WR | 67 | nS | |||||||
tWHRL | Задержка между WR | 1 и RDY/BSY | 0 ( | ) | 20 | nS | ||||
tXLOL | Задержка между XL | 0 и OE | 0 | 67 | nS | |||||
tOLDV | Задержка между XL | 0 и установкой данных | 20 | nS | ||||||
tWLRH | Задержка между WR | 0 и RDY/BSY | 1 ( | ) | 0.5 | 0.7 | 0.9 | mS |
Примечание: если tWHRL удерживается дольше, чем tWLRH импульс на RDY/BSY не появится.
ПОСЛЕДОВАТЕЛЬНАЯ ЗАГРУЗКА
Как память программ, так и память данных могут быть запрограммированы с использованием последовательной шины SPI, при этом вывод RESET должен быть подключен к земле. Последовательный интерфейс работает с выводами SCK, MOSI (вход) и MISO (выход). После подачи низкого уровня на RESET перед программированием/стиранием необходимо исполнить команду разрешения программирования. При программировании памяти данных, во внутренний алгоритм программирования встроен цикл стирания (только при последовательном программировании), поэтому нет необходимости в выполнении команды стирания памяти. Команда стирания микросхемы переводит все ячейки памяти программ и данных в состояние FFh. Флэш память программ и энергонезависимая память данных имеют отдельное адресное пространство: 000h - 3FFh/7FFh для памяти программ и 000h - 07Fh/0FFh для памяти данных. При программировании необходимо подавать внешнюю тактовую частоту на вывод XTAL1 или подключить внешний тактовый генератор к выводам XTAL1 и XTAL2. Минимальные длительности низкого и высокого уровня сигнала SCK определены следующим образом:
Низкий: > 2 периодов XTAL1
Высокий: > 2 периодов XTAL1
ПОДТВЕРЖДЕНИЕ ДАННЫХ
До завершения программировании нового байта, при чтении из памяти будет читаться значение FFh. После того как микросхема будет готова для записи следующего байта, при чтении можно прочитать записанное значение. Это используется для определения момента, когда можно записывать следующий байт. Этот способ не будет работать для байта FFh, поэтому для записи этого числа перед программированием следующего байта придется выждать по крайней мере 4mS. Поскольку после стирания ячейки памяти устанавливаются в FFh, при программировании ячейки, содержащие FFh можно пропускать. Это не применимо при перезаписи EEPROM без стирания памяти программ. В этом случае подтверждение не работает для данных FFh, для этого значения перед программированием следующего байта необходимо выждать 4mS.
АЛГОРИТМ ПОСЛЕДОВАТЕЛЬНОГО ПРОГРАММИРОВАНИЯ
Для программирования и проверки AT90S2333/4433 в режиме последовательного программирования рекомендуется следующая последовательность действий (см. формат четырех байтовой команды в табл.32):
1. Последовательность включения питания:
Подать напряжение питания между VCC и GND, при этом RESET и SCK должны быть установлены в '0'. Если кварцевый резонатор не подключен к выводам XTAL1 и XTAL2, подайте частоту на вывод XTAL1.(Если программатор не гарантирует установки SCK в '0' при подаче питания, после того как на SCK будет установлен '0', на RESET необходимо подать положительный импульс, и удерживать его по крайней мере два периода тактовой частоты после
установки вывода SCK в "0".
2. Подождать 20 mS и разрешить последовательное программирование послав команду разрешения на вывод MOSI/PB3.
3. При посылке команды разрешения программирования, второй байт последовательности (53h) будет возвращен при посылке третьего байта. В любом случае, должны быть посланы все четыре байта команды. Если число 53h не получено обратно, подайте положительный импульс на SCK и повторите команду разрешения программирования. Если после 32 попыток не будет получено число 53h, микросхема неисправна.
4. После подачи команды стирания (всегда при программировании памяти программ), необходимо подождать 10 mS, выдать положительный импульс на RESET и продолжить с шага 2.
5. Память программ и память данных программируются по одному байту выдачей адреса и данных в команде записи. Перед записью новых данных в EEPROM ячейки памяти перед записью новых данных автоматически стираются. Чтобы определить время, когда можно записывать следующий байт, используется подтверждение данных. При записи предварительно стертой микросхемы записывать ячейки содержащие FFh не обязательно.
6. Любую ячейку памяти можно проверить используя команду чтения, которая выдает содержимое указанной ячейки на последовательный вывод MISO/PB4.
7. По окончанию программирования вывод RESET может быть установлен в '1' для возобновления нормальной работы схемы.
8. Последовательность выключения питания (если необходимо) Установить XTAL1 в '0' (если не используется кварцевый резонатор)
Установить RESET в '1'.
Отключить питание
При записи последовательных данных в процессор данные читаются по нарастающему фронту сигнала CLK. При чтении данных из процессора данные читаются по спадающему фронту сигнала CLK.
Таблица 32. Команды последовательного программирования
Команда | Формат команды | Действие | |||
Байт 1 | Байт 2 | Байт 3 | Байт 4 | ||
Разрешение рограммир. | 1010 1100 | 0101 0011 | xxxx xxxx | xxxx xxxx | Разрешен.послед. программирования после установки RESET в '0' |
Стирание микросх. |
1010 1100 | 100x xxxx | xxxx xxxx | xxxx xxxx | Стирание памяти прогр. и данных |
Чтение памяти прогр. | 0010 H000 | 0000 aaaa | bbbb bbbb | oooo oooo | Читать старший или младший байт o по адресу ab |
Запись памяти прогр. | 0100 H000 | 0000 aaaa | bbbb bbbb | iiii iiii | Запись старш. или младш. байта i в память прогр по адресу ab |
Чтение памяти данных |
1010 0000 |
0000 000a | bbbb bbbb | oooo oooo | Читать данные o по адресу ab |
Запись памяти данных | 1100 0000 | 0000 000a | bbbb bbbb | iiii iiii | Запись данных i по адресу ab |
Чтение битов блокир. | 0101 1000 | xxxx xxxx | xxxx xxxx | xxxx x21x | Биты 2 и 1 равны 0 – блокировка 1 - нет блокир. |
Запись битов блокир. | 1010 1100 |
111x x21x |
xxxx xxxx | xxxx xxxx | Запись битов бло кировки. Установить 1,2=0 для блокировки памяти |
Читать код устройства | 0011 0000 | xxxx xxxx | xxxx xxbb | oooo oooo | Читать код устройства o с адреса b |
Запись битов-перемыч | 1010 1100 | 11_176543 | xxxx xxxx | xxxx xxxx | Запись битов-перемычек. Установить 3,4,5,6,7 в "0" чтобы запрограммировать |
Чтение битов-перемыч | 1010 0000 | xxxx xxxx | xxxx xxxx | xx87 6543 |
Чтение битов-перемычек. 0 – запрограммир 1 - стерт |
a - старшие биты адреса; b - младшие биты адреса; o - выход данных
H = '0'-младший байт, '1'-старший байт; i - вход данных;
x - не использ-ся; 1 - 1-й бит блокировки; 2 - 2-й бит блокировки;
3 - CKSEL0; 4 - CKSEL1; 5 - CKSEL2; 6 - BODEN; 7 - BODLEVEL;
8 - SPIEN;
Максимально допустимые параметры
Рабочая температура ................................. -40±С - +105±С Температура хранения ................................ -65±С - +150±С Напряжение на любом выводе кроме RESET .............. -1.0V - +7.0V Максимальное рабочее напряжение ..................... 6.6V Постоянный ток через вывод порта .................... 40.0 mA Постоянный ток между VCC и GND .......................140.0 mA |
ПРИМЕЧАНИЕ: выход параметров за пределы указанные в таблице может привести к нарушению работоспособности микросхемы. Это предельные значения параметров, рабочие параметры микросхемы приведены ниже. Удержание предельных значений на выводах м/сх в течение длительного времени может привести к потере работоспособности м/сх.
ХАРАКТЕРИСТИКИ ПО ПОСТОЯННОМУ ТОКУ
Ta = -40...+85±C, Vcc=2.7...6.0V (если не указано иначе)
Мин./Тип./Макс.
Входное напряжение '0' - -0.5/_/0.3Vcc V
Входное напряжение '1'(кроме XTAL1 и RESET) - 0.7Vcc/_/Vcc+0.5 V
на XTAL1 и RESET - 0.7Vcc/_/Vcc+0.5 V Выходное напряжение '0'(Порты B,C,D) Il=20mA, Vcc=5V - _/_/0.5 V
Il=10mA, Vcc=3V - _/_/0.5 V Выходное напряжение '1'(Порты B,C,D) I0h=10mA, Vcc=5V - Vcc-0.5/_/_ V
I0h=5mA, Vcc=2.7V - Vcc-0.5/_/_ V Подтягивающий резистор сброса - 100/_/500 кОм
Подтягивающий резистор вывода порта 10/50/100 кОм
Потребляемый ток:
Активный режим, 3V, 4MHz - _/3.0/_ mA
холостой ход (idle mode), 3V, 4MHz - _/750/_ uA
пониженное потребление WDT включен, 3V - _/10/_ uA
WDT выключен, 3V - _/_/1 uA
Напряжение смещения аналогового компаратора Vcc=5V - _/_/20 mV
Входной ток утечки аналогового компаратора - 1/5/10 nA
Время срабатывания аналогового компаратора Vcc=2.7V - _/750/_ nS
Vcc=4.0V - _/500/_ nS
ПРИМЕЧАНИЯ:
1. В рабочем состоянии ток через выводы должен ограничиваться следующими условиями:
- Максимальный ток через вывод - 20 mA
- Максимальный ток через все выводы - 80mA
При превышении выходного тока выше указанных пределов, напряжение на выходе может отличаться от приведенного выше. Поглощение выводами тока больше приведенного не гарантируется.
2. Минимальное напряжение для режима пониженного потребления - 2V
ПАРАМЕТРЫ ВНЕШНЕГО ТАКТОВОГО СИГНАЛА
Параметр |
Vcc=2.7...6.0 V |
Vcc=4.0...6.0 V |
Ед. |
||
min |
max |
min |
max |
||
Частота |
0 | 4 | 0 | 8 | MHz |
Период |
250 | 125 | nS | ||
Длительность '1' |
115 | 58.3 | nS | ||
Длительность '0' |
115 | 58.3 | nS | ||
Длительность фронта |
10 | 4.15 | nS |
Список регистров.
Адрес регистра |
название егистра |
Bit 7 |
Bit 6 |
Bit 5 |
Bit 4 |
Bit 3 |
Bit 2 |
Bit 1 |
Bit 0 |
3Fh (5Fh) |
SREG |
I | T | H | S | V | N | Z | C |
3Eh (5Eh) |
ЗАРЕЗЕРВИРОВАН | ||||||||
3Dh (5Dh) |
SP |
SP7 | SP6 | SP5 | SP4 | SP3 | SP2 | SP1 | SP0 |
3Ch (5Ch) |
ЗАРЕЗЕРВИРОВАН | ||||||||
3Bh (5Bh) |
GIMSK |
INT1 | INT0 |
- |
- |
- |
- |
- |
- |
3Ah (5Ah) |
GIFR |
INTF1 | INTF0 |
- |
- |
- |
- |
- |
- |
39h (59h) |
TIMSK |
TOIE1 | OCIE1 |
- |
- |
TICE1 |
- |
TOIE0 |
- |
38h (58h) |
TIFR |
TOV1 | OCF1 |
- |
- |
ICF1 |
- |
TOV0 |
- |
37h (57h) |
ЗАРЕЗЕРВИРОВАН | ||||||||
36h (56h) |
ЗАРЕЗЕРВИРОВАН | ||||||||
35h (55h) |
MCUCR |
- |
- |
SE | SM | ISC11 | ISC10 | ISC01 | ISC00 |
34h (54h) |
MCUSR |
- |
- |
- |
- |
WDRF | BORF | EXTRF | PORF |
33h (53h) |
TCCR0 |
- |
- |
- |
- |
- |
CS02 | CS01 | CS00 |
32h (52h) |
TCNT0 |
Таймер / счетчик (8 бит) |
|||||||
31h (51h) |
ЗАРЕЗЕРВИРОВАН | ||||||||
30h (50h) |
ЗАРЕЗЕРВИРОВАН | ||||||||
2Fh (4Fh) |
TCCR1A |
COM11 | COM10 |
- |
- |
- |
- |
PWM11 | PWM10 |
2Eh (4Eh) |
TCCR1B |
ICNC1 | ICES1 |
- |
- |
CTC1 | CS12 | CS11 | CS10 |
2Dh (4Dh) |
TCNT1H |
Таймер/счетчик1 старший байт | |||||||
2Сh (4Сh) |
TCNT1L |
Таймер/счетчик1 младший байт | |||||||
2Bh (4Bh) |
OCR1AH |
Таймер/счетчик1 регистр сравнения старший байт | |||||||
2Ah (4Ah) |
OCR1AL |
Таймер/счетчик1 регистр сравнения младший байт | |||||||
- |
ЗАРЕЗЕРВИРОВАН | ||||||||
27h (47h) |
ICR1H |
Таймер/счетчик1 регистр захвата старший байт | |||||||
26h (46h) |
ICR1L |
Таймер/счетчик1 регистр захвата младший байт | |||||||
- |
ЗАРЕЗЕРВИРОВАН | ||||||||
21h (41h) |
WDTCR |
- |
- |
- |
WDTOE | WDE | WDP2 | WDP1 | WDP0 |
20h (40h) |
ЗАРЕЗЕРВИРОВАН | ||||||||
1Fh (3Fh) |
ЗАРЕЗЕРВИРОВАН | ||||||||
1Eh (3Eh) |
EEAR |
Регистр адреса энергонезависимой памяти | |||||||
1Dh (3Dh) |
EEDR |
Регистр данных энергонезависимой памяти | |||||||
1Ch (3Ch) |
EECR |
- |
- |
- |
- |
EERIE | EEMWE | EEWE | EERE |
- |
ЗАРЕЗЕРВИРОВАН | ||||||||
18h (38h) |
PORTB |
- |
- |
PORTB5 | PORTB4 | PORTB3 | PORTB2 | PORTB1 | PORTB0 |
17h (37h) |
DDRB |
- |
- |
DDB5 | DDB4 | DDB3 | DDB2 | DDB1 | DDB0 |
16h (36h) |
PINB |
- |
- |
PINB5 | PINB4 | PINB3 | PINB2 | PINB1 | PINB0 |
15h (35h) |
PORTC |
- |
- |
PORTC5 | PORTC4 | PORTC3 | PORTC2 | PORTC1 | PORTC0 |
14h (34h) |
DDRC |
- |
- |
DDC5 | DDC4 | DDC3 | DDC2 | DDC1 | DDC0 |
13h (33h) |
PINC |
- |
- |
PINC5 | PINC4 | PINC3 | PINC2 | PINC1 | PINC0 |
12h (32h) |
PORTD |
- |
- |
PORTD5 | PORTD4 | PORTD3 | PORTD2 | PORTD1 | PORTD0 |
11h (31h) |
DDRD |
- |
- |
DDD5 | DDD4 | DDD3 | DDD2 | DDD1 | DDD0 |
10h (30h) |
PIND |
- |
- |
PIND5 | PIND4 | PIND3 | PIND2 | PIND1 | PIND0 |
0Fh (2Fh) |
SPDR |
Регистр данных SPI |
|||||||
0Eh (2Eh) |
SPSR |
SPIF | WCOL |
- |
- |
- |
- |
- |
- |
0Dh (2Dh) |
SPCR |
SPIE | SPE | DORD | MSTR | CPOL | CPHA | SPR1 | SPR0 |
0Ch (2Ch) |
UDR |
Регистр данных UART |
|||||||
0Bh (2Bh) |
USR |
RXC | TXC | UDRE | FE | OR |
- |
- |
- |
0Ah (2Ah) |
UCR |
RXCIE | TXCIE | UDRIE | RXEN | TXEN | CHR9 | RXB8 | TXB8 |
09h (29h) |
UBRR |
Регистр скорости передачи UART | |||||||
08h (28h) |
ACSR |
ACD | AINBG | ACO | ACI | ACIE | ACIC | ACIS1 | ACIS0 |
07h (27h) |
ADMUX |
- |
ADCBG |
- |
- |
- |
MUX2 | MUX1 | MUX0 |
06h (26h) |
ADCSR |
ADEN | ADSC | ADFR | ADIF | ADIE | ADPS2 | ADPS1 | ADPS0 |
05h (25h) |
ADCH |
- |
- |
- |
- |
- |
- | ADC9 | ADC8 |
04h (24h) |
ADCL |
ADC7 | ADC6 | ADC5 | ADC4 | ADC3 | ADC2 | ADC1 | ADC0 |
03h ( 23h) |
UBRRH |
Регистр скорости передачи UART (старший) |
|||||||
- |
- |
ЗАРЕЗЕРВИРОВАН | |||||||
00h (20h) |
- |
ЗАРЕЗЕРВИРОВАН |
Примечание: Для совместимости с другими устройствами, зарезервированные биты при записи необходимо устанавливать в "0". Данные в зарезервированные ячейки памяти записывать нельзя.
Набор команд
Мнемоника |
Операнды |
Описание |
Действие |
Флаги |
Цкл |
Арифметические команды |
|||||
ADD | Rd, Rr | Сложить два регистра |
Rd |
Z,C,N,V,H | 1 |
ADC | Rd, Rr | Сложить с переносом |
Rd |
Z,C,N,V,H | 1 |
ADIW | Rdl,K | Сложить слово с константой |
Rdh,l |
Z,C,N,V,S | 2 |
SUB | Rd, Rr | Вычесть два регистра |
Rd |
||
SUBI | Rd, K |
Вычесть константу |
Rd |
||
SBIW | Rdl,K | Вычесть слово с константой |
Rdh,l |
||
SBC | Rd, Rr | Вычесть с переносом |
Rd |
||
SBCI | Rd, K | Вычесть с переносом |
Rd |
||
AND | Rd, Rr |
Логическое И |
Rd |
||
ANDI | Rd, K |
Логическое И |
Rd |
||
OR | Rd, Rr |
Логическое ИЛИ |
Rd |
||
ORI | Rd, K | Логическое ИЛИ |
Rd |
Z,N,V | 1 |
EOR | Rd, Rr | Исключающее ИЛИ |
Rd |
Z,N,V | 1 |
COM | Rd | Дополнение до 1 |
Rd<$FF - Rd |
Z,C,N,V | 1 |
NEG | Rd | Дополнение до 2 |
Rd<$00 - Rd |
Z,C,N,V,H | 1 |
SBR | Rd,K | Установ. бита в регистре |
Rd |
Z,N,V | 1 |
CBR | Rd,K | Сброс. бита в регистре |
Rd |
Z,N,V | 1 |
INC | Rd | Увеличить на 1 |
Rd |
Z,N,V | 1 |
DEC | Rd | Уменьшить на 1 |
Rd |
Z,N,V | 1 |
TST | Rd | Проверить на 0 или 1 |
Rd |
Z,N,V | 1 |
CLR | Rd | Очистить регистр |
Rd |
Z,N,V | 1 |
SER | Rd | Установить регистр |
Rd<$FF |
None | 1 |
КОМАНДЫ ВЕТВЛЕНИЯ |
|||||
RJMP | k | Относительный переход |
PC
|
None | 2 |
LJMP | Переход по адресу (Z) |
PC |
None | 2 | |
RCALL | k | Относительный вызов подпрогрограммы |
PC |
None |
3 |
ICALL | Вызов подпр по адресу (Z) |
PC |
None | 3 | |
RET | Выход из подпрограммы |
PC |
None | 4 | |
RETI | Выход из прерывания |
PC |
I | 4 | |
CPSE |
Rd,Rr | Сравнить , пропуск если Rd=Rr |
if(Rd=Rr) PC или 3 |
None | 1/2 |
CP | Rd,Rr | Сравнить | Rd-Rr | Z,N,V,C,H | 1 |
CPC | Rd,Rr | Сравнить с переносом | Rd-Rr-C | Z,N,V,C,H | 1 |
CPI | Rd,K | Сравнить с константой | Rd-K | ||
SBRC | Rr,b | Пропуск если бит в регистре сброшен |
if(Rr(b)=0) |
None | 1/2 |
SBRS | Rr,b | Пропуск если бит в регистре установлен | if(Rr(b)=1) | None | 1/2 |
SBIC | P, b |
Пропуск если бит в регистре IO сброшен |
if(P(b)=0) | None | 1/2 |
SBIS | P, b |
Пропуск если бит в регистре IO установлен |
if(P(b)=1) | None | 1/2 |
BRBS | s, k |
Переход если установл флаг s |
if(SREG(s)=1) | None | 1/2 |
BRBC | s, k |
Переход если сброшен флаг s |
if(SREG(s)=0) | None | 1/2 |
BREQ | k | Переход если равно Z=1 | if(Z=1) | None | 1/2 |
BRNE | k | Переход если неравно if(Z=0) | if(Z=0) | None | 1/2 |
BRCS | k | Переход если установл перенос | if(C=1) | None | 1/2 |
BRCC | k | Переход если сброшен перенос | if(C=0) | None | 1/2 |
BRSH | k | Переход если равно или больше | if(C=0) | None | 1/2 |
BRLO | k | Переход если меньше |
if(C=1)
PC |
None |
1/2 |
BRMI | k | Переход если минус |
if(N=1)
PC |
None |
1/2 |
BRPL | k | Переход если плюс |
if(N=0)
PC |
None |
1/2 |
BRGE | k | Переход если больше или равно,со знаком |
if(N
XOR V=0) PC |
None |
1/2 |
BRLT | k | Переход если меньше нуля, со знаком |
if(N
XOR V=1) PC |
None |
1/2 |
BRHS | k |
Переход если установл флаг H |
if
(H=1) PC |
None |
1/2 |
BRHC | k |
Переход если сброшен флаг H |
if
(H=0) PC |
None |
1/2 |
BRTS | k |
Переход если установл флаг T |
if
(H=1) PC |
None |
1/2 |
BRTC | k |
Переход если сброшен флаг T |
if
(H=0) PC |
None |
1/2 |
BRVS | k | Переход если установл флаг V |
if (H=1) PC 1 |
None | 1/2 |
BRVC | k |
Переход если сброшен флаг V |
if
(H=0) PC |
None |
1/2 |
BRIE | k | Переход если разрешены прерывания |
if(I=1)
PC |
None |
1/2 |
BRID | k | Переход если запрещены прерывания |
if(I=1)
PC |
None |
1/2 |
КОМАНДЫ ПЕРЕСЫЛКИ |
|||||
MOV | Rd,Rr | Пересылка между рег. |
Rd |
None | 1 |
LDI | Rd,K | Загрузить константу |
Rd |
None | 1 |
LD | Rd,X | Загрузить регистр непосредственно |
Rd<(X) |
None | 2 |
LD | Rd,X+ | Загрузить регистр непосредст. c постинкрем |
Rd<(X),X |
None | 2 |
LD | Rd,-X | Загрузить регистр непоср. с предв.декрем |
X |
None | 2 |
LD | Rd,Y | Загрузить регистр непосредственно |
Rd<(Y) |
None | 2 |
LD | Rd,Y+ | Загрузить регистр непоср. c пост инкрем |
Rd<(Y),Y |
None | 2 |
LD | Rd,-Y | Загрузить регистр непоср. с предв.декрем |
Y |
None | 2 |
LDD | Rd,Y+q | Загрузить регистр непоср. со смещением |
Rd<(Y+q) |
None | 2 |
LD | Rd,Z | Загрузить регистр непосредственно |
Rd<(Z) |
None | 2 |
LD | Rd,Z+ | Загрузить регистр непоср. c пост инкрем |
Rd<(Z),Z |
None | 2 |
LD | Rd,-Z | Загрузить регистр непоср. с предв.декрем |
Z |
None | 2 |
LDD | Rd,Z+q | Загрузить регистр непоср. со смещением |
Rd<(Z+q) |
None | 2 |
LDS | Rd,k | Загрузить из ОЗУ |
Rd<(k) |
None | 3 |
ST | X,Rr | Записать регистр непосредственно |
(X) |
None | 2 |
ST |
-X,Rr |
Записать регистр непоср.c пред.декрем. |
X |
||