Рекомендации по замене ATmega103 на ATmega128
Отличительные особенности:
- Ошибки для ATmega103 исправлены для ATmega128
- Изменены имена регистров и битов
- Усовершенствованы таймеры-счетчики и предделители
- Усовершенствован интерфейс внешний памяти
- Усовершенствован АЦП
- Усовершенствованы порты SPI и UART (УАПП)
- Изменена временная диаграмма записи в ЭППЗУ
- Изменения в интерфейсе программирования
- Возможность установки Fuse-битов
- Генерация синхроимпульсов и выбор задержки старта
- Изменения в сторожевом таймере
- JTAG-интерфейс
- Новые функции не доступные в режиме совместимости с ATmega103
Введение
Данные рекомендации по применению имеют целью помочь текущим пользователям микроконтроллера (МК) ATmega103 применить в существующих разработках МК ATmega128. ATmega128 имеет два рабочих режима, выбираемых через установку fuse-битов. Fuse-бит «M103C» управляет режимом совместимости с ATmega103, который может использоваться или нет. По умолчанию бит «M103C» запрограммирован и ATmega128 работает в режиме совместимости. Если режим совместимости используется, то только неконфликтующие улучшения отличают МК от ATmega103. Кроме того, электрические характеристики ATmega128 имеют различия за счет увеличения рабочей частоты из-за изменения технологии производства. Для уточнения технических данных обратитесь к документации. Если бит «M103C» не запрограммирован все новые функции поддерживаются, но адаптация программного кода требует значительного объема работы.
1 Ошибки ATmega103 исправлены для ATmega128
Следующие позиции из перечня опечаток для ATmega103 не применяются для ATmega128. Обратитесь к перечню опечаток для ATmega103 для более детального их изучения.
Прим.: Некоторые из приведенных опечаток были исправлены в последней редакции документации на ATmega103. Однако, они еще могут использоваться для упрощения преобразования любой разработки на ATmega103.
? Потребляемая мощность при медленном нарастании напряжения питания
Потребляемая мощность ATmega128 не зависит от времени нарастания напряжения питания.
? Выполнение условия сброса без тактового сигнала
ATmega128 имеет новый интерфейс сброса, в соответствии с логикой работы которого внутренний сигнал сброса генерируется, если длительность импульса внешнего сигнала сброса превышает минимальное значение tRST, даже если схема тактирования не функционирует.
? После пробуждения из режимов пониженного энергопотребления выполняются инструкции перед обработкой запроса на прерывание
ATmega128 выполняет процедуру прерывания, как первую инструкцию после пробуждения из режимов понижения потребления.
Если выполняется условие прерывания во время нахождения ATmega128 в режиме сна, то МК пробуждается. МК останавливается на 4 цикла, выполняет процедуру обработки запроса на прерывание, а затем выполняет инструкцию, следующую за командой SLEEP.
? SPI может передать ошибочный байт
В ATmega128 может быть записан новый байт в регистр данных SPI-порта тем же фронтом тактового импульса, т.к. предыдущая передача заканчивается. Нет необходимости ждать завершения предыдущей передачи перед записью следующего байта в регистр данных SPI при работе в ведущем режиме (Master).
? Неправильная очистка XTRF в MCUSR
Флаги POR и XTRF очищаются индивидуально в ATmega128.
? Действие сброса во время записи в ЭППЗУ
Если условие сброса или выключения питания для ATmega128 выполняется во время записи в ЭППЗУ, то текущая ячейка может содержать поврежденные данные, но зато остальные ячейки ATmega128 не повреждает.
? Флаг прерывания SPI не определен после сброса
ATmega128 сбрасывает флаг прерывания SPI в ноль.
? Действие инструкций пропуска совместно с прерываниями
Прерывания ATmega128 всегда запоминают правильный адрес возврата, даже когда при прерывании инструкцией пропуска пропускается двухсловная инструкция .
? Сигнатурные байты
Сигнатурные байты ATmega128 отличаются от тех, которые используются в ATmega103. Следовательно, опечатки связанные с неправильной сигнатурой в ATmega103 не применимы. Удостоверьтесь в действительности сигнатурных данных ATmega128 при модернизации разработки.
? Возможность считывания при запросе доступа к ЭППЗУ
В ATmega128 при считывании данных в процессе запроса доступа к ЭППЗУ всегда возвращается код $FF.
? Выход MISO при внутрисхемном программировании
Выход MISO ATmega128 при внутрисхемном программировании является трехстабильным. Интерфейс внутрисхемного программирования все также использует выводы PE0 и PE1 для приема и передачи последовательных данных, соответственно.
? АЦП не имеет режима автоматической оцифровки
В ATmega128 поддерживается режим автоматической оцифровки (Free Running mode).
? УАПП теряет синхронизацию, если линия RXD=0, когда приемник отключен
УАПП заменен на УСАПП, который не имеет данной проблемы Принятый стартовый фронт считается действительным, если бит разрешения приема (Receive Enable) в управляющем регистре УСАПП активен (=1).
? Проверка ЭППЗУ при программировании повышенным напряжением
Нет ограничений на параметры питания и системную частоту, если они находятся в пределах регламентированных документацией на ATmega128.
? Проверка ЭППЗУ при внутрисхемном программировании
Нет ограничений на параметры питания и системную частоту, если они находятся в пределах регламентированных документацией на ATmega128.
? Последовательное программирование при напряжении ниже 3.4В
Нет ограничений на параметры питания и системную частоту, если они находятся в пределах регламентированных документацией на ATmega128.
2 Изменения в наименованиях битов и регистров
Для приведенных ниже управляющих битов изменены имена, но функциональное назначение и расположение в памяти совпадают с ATmega103:
Таблица 1 – Изменения в наименованиях битов
Наименования
битов
ATmega103
Наименование битов
ATmega128
Регистр
(ATmega103)
Примечания
SRW
SRW10
MCUCR
PWMn(0)
WGMn0
TCCRn(A)
“A” и “0” только для 16-разрядных таймеров
PWMn1
WGMn1
TCCRnA
CTCn
WGMn2
TCCRn(B)
“B” только в 16-разрядных таймерах
WDTOE
WDCE
WDTCR
См. изменения в сторожевом таймере.
RXCIE
RXCIE0
UCR
TCXIE
TCXIE0
UCR
UDRIE
UDRIE0
UCR
RXEN
RXEN0
UCR
TXEN
TXEN0
UCR
CHR9
UCSZ02
UCR
RXB
RXB0
UCR
TXB
TXB0
UCR
RXC
RXC0
USR
TXC
TXC0
USR
UDRE
UDRE0
USR
FE
FE0
USR
OR
DOR0
USR
Для следующих регистров изменены наименования, но сохранено функциональное назначение и расположение в памяти как у ATmega103:
Таблица 2 – Изменения в наименованиях регистров
Наименование регистра в ATmega103
Наименование регистра в ATmega128
Примечание
EICR
EICRB
MCUSR
MCUCSR
UDR
UDR0
USR
UCSR0A
UCR
UCSR0B
UBRR
UBRR0L
ADCSR
ADCSRA
3. Усовершенствования таймеров-счетчиков и предделителей
Для детального изучения усовершенствований и дополнительных функций обращайтесь к документации. Ниже перечислены новые функции:
- Предделители в ATmega128 могут быть сброшены.
- Возможность изменения значения вершины счета в режиме ШИМ.
- Для таймера-счетчика 1 к режиму фазовой коррекции ШИМ добавлен режим фазо-частотной коррекции.
- Быстродействующий режим ШИМ.
3.1 Отличия между ATmega128 и ATmega103
Большинство улучшений и изменений применены ко всем таймерам-счетчикам, а ниже приведено описание в общем виде. Буквенный символ “x” заменяет выходной канал (A или B для таймера-счетчика 1, N/A для таймера-счетчика 0 и таймера-счетчика 2), а “n” заменяет номер таймера-счетчика (n = 0, 1 или 2).
? TCNT1 очищается в режиме ШИМ
В ATmega103 имеется три различных разрешающих способностей в режиме ШИМ – 8, 9 или 10 разрядов. Не смотря на то, что 8, 9 или 10 разрядов сравниваются в регистр TCNT1 можно записывать данные с большей разрешающей способностью. Таким образом, таймер-счетчик должен завершить счет на 0xFFFF прежде чем уменьшенная разрешающая способность будет выбрана. (в т.ч., если выбрана 8-разрядная разрешающая способность и регистр TCNT1 содержит 0x0100, то вершина счета (0x00FF) не будет иметь действия пока счетчик не дойдет до 0xFFFF, изменит направление и снова начнет обратный счет до 0x0000). В ATmega128 это изменено так, чтобы неиспользуемые биты TCNT1 очищались в 0, чтобы избежать этого непреднамеренного счета до 0xFFFF. В ATmega128 регистр TCNT1 никогда не превышает доступную разрешающую способность.
ATmega128
Старшие значащие биты в регистре TCNT1 будут очищены первым положительным фронтом тактового импульса предделителя.
8-разрядный ШИМ: TCNT1H7:0 = 0
9-разрядный ШИМ: TCNT1H7:1 = 0
10-разрядный ШИМ: TCNT1H7:2 = 0
ATmega103
TCNT1H не очищается.
? OCR1xH очищается в режиме ШИМ
Очистка OCR1xH в режиме ШИМ несколько отлична от очистки TCNT1. ATmega103 очищает 6 старших значащих разрядов, если 8, 9 или 10 разрядный режим ШИМ выбран. Следовательно, если 0xFFFF записано в OCR1x в режиме ШИМ , а затем OCR1x считан, то результатом будет 0x03FF независимо от разрядности ШИМ. В ATmega128 количество сбрасываемых бит определяется разрешающей способностью.
ATmega128
Старшие значащие разряды в OCR1AH и OCR1BH очищаются при обновлении вершины (ТОР) счета.
8-разрядный ШИМ: OCR1xH7:0 = 0
9-разрядный ШИМ: OCR1xH7:1 = 0
10-разрядный ШИМ: OCR1xH7:2 = 0
ATmega103
Шесть старших значащих бита в OCR1AH и OCR1BH всегда сброшены независимо от разрядности ШИМ
? Очистка таймера-счетчика по условию сравнения с участием предделителя (применяется ко всем таймерам-счетчикам)
Отношение между очисткой по условию сравнения и внутренним счетом таймера-счетчика может быть изменено. Очистка по условию сравнения в ATmega103 очищает таймер-счетчик после первого совпадения значения счетчика с заданным пороговым значением, при этом обратите внимание, что ATmega128 очищает таймер-счетчик после последнего совпадения значения счетчика с пороговым значением. См. рис. 1 и рис. 2 для изучения деталей по очистке, установки флага и изменения вывода.
Пример: OCRnx = 0x02, когда предделитель активен (коэффициент деления 8).
Рисунок 1 - Установка флага/вывода выхода компаратора для ATmega103 (1)
TCNTn
000000001111111120000000111111112000000
h h
Выв./
флаг
Прим 1. “h” индицирует, что вывод/флаг выхода компаратора установлен.
Рисунок 2 - Установка флага/вывода выхода компаратора для ATmega128 (1)
TCNTn
000000001111111122222222000000001111111
h
Выв./
флаг
Прим 1. “h” индицирует, что вывод/флаг выхода компаратора установлен.
? Установка вывода/флага выхода компаратора с активным предделителем (применяется ко всем таймерам-счетчикам)
Отношение между выходом компаратора и внутренним счетом таймера-счетчика может быть изменено. Выход компаратора в ATmega103 устанавливает вывод/флаг выхода компаратора после первого выполнения условия совпадения с пороговым значением, а в ATmega128 установка вывода/флага выхода компаратора осуществляется после последнего совпадения значения счетчика с пороговым. См. рис. 3 и 4 для детального изучения установки флага и изменения вывода выхода компаратора.
Пример: OCRnx = 0x02, предделитель активен (коэффициент деления 8).
Рисунок 3 – Установка флага/вывода компаратора для ATmega103 (1)
TCNTn
000000001111111122222222333333334444444
h
Выв./
флаг
Прим 1. “h” индицирует, что вывод/флаг компаратора установлен.
Рисунок 4 – Установка флага/вывода компаратора для ATmega128 (1)
TCNTn
000000001111111122222222333333334444444
h
Выв./
флаг
Прим 1. “h” индицирует, что вывод/флаг компаратора установлен.
? Результат чтения OCR1x при записи в OCR1x в режиме ШИМ и дальнейшего возврата к нормальному режиму перед обновлением OCR1x по достижении вершины счета, (применительно только к 16-разрядному таймеру-счетчику)
Как описано в документации регистры OCR1х обновляются при достижении вершины счета (ТОР). Таким образом, при записи в OCR1х в режиме ШИМ, значение запоминается во временном буфере. Когда таймер-счетчик достигает вершины, данные из временного буфера перемещаются в действительный регистр совпадения (OCR1x). Если режим ШИМ покинут после записи во временный буфер, но прежде, чем действительный регистр совпадения обновлен, то дальнейшие действия различны для ATmega128 и ATmega103.
ATmega128
Если регистр OCR1х считывается перед выполнением обновления, то фактически считанное значение не из временного буферного регистра OCR1х .
ATmega103
Если регистр OCR1х считывается перед выполнением обновления, то значение считывается из буфера OCR1x. Например, считывается значение после последней записи (в буфер OCR1х), но так как таймер-счетчик никогда не достигнет вершины счета, то запись в регистр OCR1х не произведена. Следовательно, значение, которое используется для сравнения не обязательно то, что считано.
Прим.: Эта применимо только к 16-разрядному таймеру-счетчику, для 8-разрядного таймера-счетчика временный буфер считывается в обоих устройствах.
? Запоминание предыдущего уровня на выводе OCnx
В ATmega103 имеется две настройки бит COMnx1:0, при которых в режиме ШИМ вывод OCnx не подключен (0b00 и 0b01), а также одна настройка с аналогичным действием в остальных режимах COMnx1:0 = 0b00. Предположим, что таймер-счетчик переходит из состояния, в котором возможно обновление вывода OCnx , а затем возвращается назад в режим с возможным обновлением вывода OCnx. При этом необходимо отметить следующие различия:
ATmega128
Уровень на выводе OCnx перед отключением режима компаратора запоминается. При дальнейшем возобновлении данного режима вывод OCnx примет значение, которое он имел перед последним выходом из режима компаратора. Все выводы выхода компаратора инициализируются в 0 при сбросе.
ATmega103
Для таймера-счетчика 1 во всех режимах, кроме ШИМ, вывод OCnx будет установлен к низкому уровню сразу после возврата в режим с возможным обновлением данного вывода. В режиме ШИМ состояние вывода OCnx не определено после возврата в состояние с возможным обновлением данного вывода.
Для 8-разрядных таймеров-счетчиков состояние вывода выхода компаратора не определено при повторном разрешении его работы.
Для 8-разрядного таймера-счетчика в ATmega103 только выводы OCnx инициализируются в 0 при сбросе.
? OCR0 или OCR2 равно максимальному значению в TCNT0 или TCNT2, соответственно (применительно только к 8-разрядным таймерам-счетчикам)
Согласно значениям в COMn1 и COMn0 OCn будет сброшен или установлен при изменении бита COMn. Реакция на выходе различна для ATmega128 и ATmega103:
ATmega128
При изменении бита установки COMn выходной вывод OCn изменяется в соответствии со значением COMn после выполнения условия совпадения.
ATmega103
При изменении бита установки COMn выходной вывод OCn изменяется немедленно. Для 16-разрядного таймера-счетчика 1, ни ATmega128 ни ATmega103 не изменяют состояние выхода до выполнения условия совпадения.
? XDIV и таймер-счетчик 0
Настройка регистра XDIV управления делением XTAL не затрагивает источник синхронизации для таймера-счетчика 0 и связанной с ним логики в ATmega128, в отличии от ATmega103, который это делает. Как следствие, прерывания могут быть потеряны и вызов к регистрам таймера-счетчика 0 может терпеть неудачу в ATmega128. Таймер-счетчик 0 в ATmega128 не должен использоваться, если системная синхронизация делится регистром XDIV, независимо от способа тактирования таймера-счетчика 0: синхронно или асинхронно. Другими словами, если таймер-счетчик 0 используется, то функция деления системной синхронизации не должна использоваться.
4. Усовершенствования интерфейса внешней памяти
Мультиплексированный порт адресов/данных в ATmega128 передает на выход данные до установки нового адреса. Обратитесь к документации на ATmega128 изучения деталей относительно изменений во временной диаграмме.
5. Усовершенствования в АЦП
•АЦП в ATmega128 поддерживает режим автоматического преобразования
Одиночное преобразование в ATmega128 требует 2 цикла, что меньше чем у ATmega103.
ATmega128 поддерживает два формата выходных 10-разрядных данных с право- и левосторонним выравниванием.
АЦП в ATmega128 поддерживает дифференциальные входы и усиление.
6. Усовершенствования в SPI и УАПП
У SPI и УАПП имеется новый режим двойной скорости, который позволяет повысить скорость связи.
УАПП в ATmega103 может быть заменен на УСАПП в ATmega128. УСАПП в ATmega128 совместим с ATmega103 за одним исключением: двухуровневый регистр приемника действует как буфер FIFO. FIFO отключен, когда запрограммирован Fuse-бит «M103C». Ниже приведена информация, которую необходимо учесть, когда бит «M103C» запрограммирован:
Регистр UDR необходимо считывать каждый раз при получении данных.
Флаги ошибок (FE и DOR) и девятый бит (RXB8) буферизированы с данными в буфере приемника. Поэтому, биты статуса должны считываться раньше, чем регистр UDR. Иначе, информация об ошибках будет потеряна.
Другое незначительное различие – начальное значение RXB8, которое равно "1" в УАПП ATmega103 и "0" в УСАПП ATmega128
7. Изменения во временной диаграмме записи в ЭППЗУ
В ATmega103 время записи в ЭППЗУ зависит от напряжения питания, обычно 2.5 мс при Vсс =5В и 4 мс при Vсс = 2.7В. В ATmega128 время записи определяется 8448 циклами калиброванного RC-генератора (независимо от источника синхронизации и системной частоты). Калиброванный RC-генератор реализован для генерации 1МГц независимо от напряжения Vсс, таким образом, время записи составляет 8.4 мс.
Прим.: Изменение значения в регистре OSCCAL воздействует на частоту калиброванного RC-генератора и, следовательно, влияет на время записи в ЭППЗУ.
8. Интерфейс программирования
Некоторые изменения были внесены в интерфейс программирования, особенно в интерфейсе внутрисхемного программирования. Это выполнено для поддержки дополнительных fuse-битов в ATmega128. Требования по синхронизации не изменены. См. документацию на ATmega128 для изучения деталей.
Алгоритм параллельного программирования изменен. К основным изменениям относятся изменение расположения вывода PAGEL на вывод PD7 ATmega128 и BS2 на PA0. У ATmega103 было выбрано противоположное размещение выводов (PAGEL на PA0, BS2 на PD7). Это изменение было выполнено для того, чтобы использовать тот же программатор для новых AVR устройств. В параллельном режиме ATmega128 поддерживает страничное программирование ЭППЗУ. Обратите внимание, что в алгоритм программирования добавлены Fuse –биты и биты защиты (Lock). Требования к временным диаграммам при параллельном программировании были изменены. См. документацию на ATmega128 для детального изучения.
STK500 поддерживает и внутрисхемное и параллельное программирование ATmega128.
9. Установка Fuse-битов
ATmega128 имеет больше fuse-битов по сравнению с ATmega103. В табл.3 показаны рекомендованные настройки fuse-битов для совместимости ATmega103 с ATmega128. Некоторые из fuse-битов описаны в следующих разделах.
Таблица 3 – Сравнение Fuse-битов ATmega103 и ATmega128
Наименование Fuse-бита
Установка по умолчанию для ATmega103
Установка по умолчанию для ATmega128
Совместимая с ATmega103 установка
M103C
-
0
0
WDTON
-
1
1
OCDEN
-
1
1
JTAGEN
-
0
1 (2)
SPIEN
0
0
0
CKOPT
-
1
0(3)
EESAVE
1
1
1
BOOTSZ1
-
0
0 (N/A) (4)
BOOTSZ0
-
0
0 (N/A) (4)
BOOTRST
-
1
1
BODLEVEL
-
1
1
BODEN
-
1
1
SUT1
1
1
См. прим. (5)
SUT0
1
0
См. прим. (5)
CKSEL3
-
0
См. прим. (5)
CKSEL2
-
0
См. прим. (5)
CKSEL1
-
0
См. прим. (5)
CKSEL0
-
1
См. прим. (5)
Примечания:
1. Прочерк означает отсутствие данного бита у ATmega103.
2. См. раздел “Интерфейс JTAG ” .
3. См. раздел “Генераторы и выбор задержек при старте”.
4. SPM и функция самопрограммирования не доступна в режиме совместимости с ATmega103. При производстве биты BOTTSZ1:0 программируются.
5. Биты CKSEL доступны для ATmega103 и ATmega128. Однако, установка SUT и CKSEL должна быть пересмотрена при переходе на ATmega128. См. раздел “Генераторы и выбор задержек при старте”.
10. Генераторы и выбор задержек при старте
ATmega128 обеспечивает больше генераторов и возможностей выбора времени задержки при старте по сравнению с ATmega103. При пробуждении из режимов выключения (Power-down) и экономичного (Power-save) ATmega128 использует частоту ЦПУ для определения задержки пробуждения, а у ATmega103 время задержки определяется генератором сторожевого таймера (кроме SUT = 0b00).
Следуйте инструкциям из документации на ATmega128 в разделе “Системная синхронизация и ее настройки” для нахождения соответствующего значения времени старта.
Особое внимание следует уделить изменению fuse-битов в режиме внутрисхемного программирования. Внутрисхемное программирование определяется системной синхронизацией. Если ошибочно выбрать генератор, то возможно этим отключить внутрисхемное программирование, т.к. будет отсутствовать системная синхронизация. (для выхода з этой ситуации необходимо использовать режим параллельного программирования).
Кварцевый генератор в ATmega103 способен управлять дополнительным буфером синхронизации с выхода XTAL2 . В ATmega128 это возможно только при программировании Fuse-бита CKOPT. В этом режиме генератор на выходе имеет максимальную амплитуду, ограниченную уровнями источника питания, но при этом увеличивается энергопотребление. Следовательно, программируйте данный бит только при необходимости полноамплитудных колебаний.
Изменение в сторожевом таймере
Сторожевой таймер в ATmega128 улучшен по сравнению с ATmega103. В ATmega103 сторожевой таймер или функционирует или нет, а у ATmega128 поддерживается два уровня безопасности, которые выбираются Fuse-битом «WDTON». См. документацию на ATmega128 для дальнейшего изучения деталей к этой информации.
Сочетание программированного бита «M103C» и непрограммированного «WDTON» делает сторожевой таймер таким же, как у ATmega103.
Частота сторожевого таймера в ATmega128 близка к 1.0 МГц для всех уровней питания. Типичная частота сторожевого таймера у ATmega103 близка к 1.0 МГц при 5В, но период переполнения увеличивается с уменьшением Vсс . Это означает, что выбор времени переполнения сторожевого таймера (измеряется в количестве циклов генератора сторожевого таймера) должен быть пересмотрен при переводе разработки на ATmega128. См. документацию на ATmega128 для детального изучения данного вопроса.
Интерфейс JTAG
ATmega128 содержит интерфейс JTAG, который может использоваться для программирования, сканирования адресного пространства и внутрисхемной отладки. Обращайтесь к документации для изучения данных функций. Обратите внимание, что интерфейс JTAG также доступен в режиме совместимости с ATmega103. Для разрешения возможности программирования через интерфейс JTAG необходимо запрограммировать Fuse-бит JTAGEN. Данный бит должен быть стерт для совместимости с ATmega103 (если нет, то четыре вывода будут настроены на режим порта проверочного доступа (TAP) вместо функций ввода-вывода). Fuse-бит M103C не запрещает Fuse-бит JTAGEN .
Функции недоступные в режиме совместимости с ATmega103
Fuse-бит «M103C» делает МК ATmega128 совместимым с ATmega103. Однако, при программировании данного бита некоторые функции ATmega128 становятся недоступными. Ниже перечислены функции ATmega128, которые не выполняются в режиме совместимости с ATmega103:
TWI – модуль двухпроводного интерфейса.
USART1 – дополнительный второй УСАПП
Буфер FIFO УСАПП, синхронный режим и улучшенные функции, например, паритет и двойной стоп-бит
Способность программирования из загрузочного сектора (SPM – самопрограммирование памяти).
Улучшенное управление внешней памятью (большое количество состояний ожидания (дительность импульсов WR, RD), возможность выбора количества используемых разрядов старшего адресного байта, возможность выбора различных времен ожидания для различных страниц внешней памяти).
Доступ к битам статуса JTD, JTRF, WDRF и BORF в регистре MCUCSR.
Временная последовательность для изменения настроек предделителя сторожевого таймера программой
Дополнительный регистр совпадения (OCR1C) для таймера-счетчика 1
Таймер-счетчик 3 (16-разрядный таймер-счетчик идентичный таймеру-счетчику 1).
Прерывания по фронтам на входах INT0…INT3.
Порт C для ввода-вывода (только цифровые выходы в режиме совместимости с ATmega103).
Порт F для ввода-вывода (только аналоговые или цифровые входы в режиме совместимости с ATmega103).
Порт G для ввода-вывода (только заранее определенные функции в режиме совместимости с ATmega103).
Если любая из вышеперечисленных функций требуется, то бит «M103C» не программируется , но при этом существует несколько различий между ATmega128 и ATmega103, которых нет пока данный бит запрограммирован:
Адресное пространство 0x0060-0x00FF заранее определено для функций ввода-вывода, нет внутреннего ОЗУ.
Адресное пространство 0x0100-0x10FF используется для внутреннего СОЗУ (ATmega128 поддерживает 4096 ячейки СОЗУ, а ATmega103 - 4000), поэтому, внешняя память начинается с адреса 0x1100 (внешняя память в ATmega103 начинается с адреса 0x1000).
Порт C не инициализируется при сбросе в 0x00, но он имеет высокоимпедансное состояние как и все порты.
Выводы ALE, RD и WR (PG2:0) не конфигурируются как выход до разрешения функции XRAM (внешняя память).
Выводы TOSC1 и TOSC2 (PG4:3) конфигурируются как цифровые входы после сброса, нет функции генератора 32 кГц, пока бит AS0 не записан.
Программное обеспечение может выполнить изменение значения предделителя сторожевого таймера только при выполнении определенной во времени последовательности действий.
В регистре MCUCSR все флаги RESET представлены в регистре, нет только EXTRF и PORF как у ATmega103.
УАПП будет иметь дополнительный входной буфер, который позволяет принять еще один байт до установки флага Data OverRun Flag (DOR).
|