Atmega128, atmega128l

Магнитофон для компьютеров ZX Spectrum

Опубликовано вс, 09/20/2015 — 20:59 пользователем trol

ZX Spectrum — компьютер, созданный более 30 лет назад с 3.5 МГц процессором и всего лишь 48 Кб ОЗУ, под который написано огромное
количество игр (да и прикладного софта тоже), в которые интересно играть даже сегодня. При том, что эти игры часто представляют
собой мегашедевры с точки зрения программирования и оптимизации кода, их разработчики умудрялись вмещать огромные игровые миры
в эти скромные 48 Кб.

Программы в те времена загружались с магнитофонной ленты. Причем, в отличии от самого Spectrum-а, магнитофоны и процесс загрузки с них
вызывают гораздо меньше теплых воспоминаний — загрузка не всегда заканчивалась успешно, иногда игрушку приходилось грузить
по несколько раз получая ошибку «R Tape loading error» регулируя положение головки магнитофона, прочищая ее поверхность одеколоном,
либо, если совсем не повезло, вытаскивать из магнитофона «зажеванную» им кассету при этом с трудом сдерживая желание сильно стукнуть виновника
апстену 🙂

8-разрядные микроконтроллеры со 128 Кбайтами внутрисистемно программируемой Flash памяти

Документация:

  4464Kb Engl Описание микроконтроллера
  394Kb Engl Описание микроконтроллера. Краткая информация.
  646Kb Engl Система команд
  Rus Архитектура и система команд
  Програмное обеспечение
  Инструментальные средства для 8-разрядных AVR-микроконтроллеров

Отличительные особенности:

  • 8-разрядный высокопроизводительный AVR микроконтроллер с малым потреблением
  • Прогрессивная RISC архитектура
      133 высокопроизводительные команды, большинство команд выполняется за один тактовый цикл
      32 8-разрядных рабочих регистра общего назначения + регистры управления периферией
      Полностью статическая работа
      Производительность приближающаяся к 16 MIPS (при тактовой частоте 16 МГц)
      Встроенный 2-цикловый перемножитель
  • Энергонезависимая память программ и данных
      128 Кбайт внутрисистемно перепрограммируемой Flash памяти
        Обеспечивает 1000 циклов стирания/записи
        Дополнительный сектор загрузочных кодов с независимыми битами блокировки
        Внутрисистемное программирование встроенной программой загрузки
        Обеспечен режим одновременного чтения/записи (Read-While-Write)
      4 Кбайта EEPROM
        Обеспечивает 100000 циклов стирания/записи
      4 Кбайта встроенной SRAM
      До 64 Кбайтов пространства дополнительной внешней памяти
      Программируемая блокировка, обеспечивающая защиту программных средств пользователя
      SPI интерфейс для внутрисистемного программирования
  • Интерфейс JTAG (совместимый с IEEE 1149.1)
      Возможность сканирования периферии, соответствующая стандарту JTAG
      Расширенная поддержка встроенной отладки
      Программирование через JTAG интерфейс: Flash, EEPROM памяти, перемычек и битов блокировки
  • Встроенная периферия
      Два 8-разрядных таймера/счетчика с отдельным предварительным делителем, один с режимом сравнения
      Два 16-разрядных таймера/счетчика, с расширенными возможностями, с отдельным предварительным делителем и режимами захвата и сравнения
      Счетчик реального времени с отдельным генератором
      Два 8-разрядных канала PWM
      Шесть каналов PWM с возможностью программирования разрешения от 1 до 16 разрядов
      8-канальный 10-разрядный аналого-цифровой преобразователь
      8 несимметричных каналов
      7 дифференциальных каналов
      2 дифференциальных канала с программируемым усилением в 1, 10 или 200 крат
      Байт-ориентированный 2-проводный последовательный интерфейс
      Сдвоенный программируемый последовательный USART
      Последовательный интерфейс SPI (ведущий/ведомый)
      Программируемый сторожевой таймер с отдельным встроенным генератором
      Встроенный аналоговый компаратор
  • Специальные микроконтроллерные функции
      Сброс по подаче питания и программируемый детектор кратковременного снижения напряжения питания
      Встроенный калиброванный RC-генератор
      Внутренние и внешние источники прерываний
      Шесть режимов пониженного потребления: Idle, Power-save, Power-down, Standby, Extended Standby и снижения шумов ADC
      Программная установка тактовой частоты
      Режим обеспечения совместимости с ATmega103 (перемычки)
      Глобальный запрет подтягивающих резисторов
  • Выводы I/O и корпуса
      53 программируемые линии ввода/вывода
      64-выводной корпус TQFP
  • Рабочие напряжения
      2,7 — 5,5 В (ATmega128L)
      4,5 — 5,5 В (ATmega128)
  • Рабочая частота
      0 — 8 МГц (ATmega128L)
      0 — 16 МГц (ATmega128)

Блок- схема:

Расположение выводов:

Главная —
Микросхемы —
DOC —
ЖКИ —
Источники питания —
Электромеханика —
Интерфейсы —
Программы —
Применения —
Статьи

Экономичный режим (Power-save)

Если установить значения бит SM2..0 равным 011, то действие команды SLEEP приведет к переводу микроконтроллера в экономичный режим. Данный режим идентичен режиму выключения за некоторыми исключениями:

Если таймер-счетчик 0 тактируется асинхронно, т.е. установлен бит AS0 в регистре ASSR, то таймер-счетчик 0 в режиме сна продолжит работу. Выход из режима сна возможен как по переполнению таймера, так и при выполнении условия сравнения, если соответствующее прерывание для таймера-счетчика разрешено в регистре TIMSK, а также установлен бит общего разрешения прерываний в регистре SREG.

Если для асинхронного таймера НЕ включено асинхронное тактирование, то рекомендуется использовать режим выключения вместо экономичного, т.к. содержимое регистров асинхронного таймера должно рассматриваться как неопределенное после выхода из экономичного режима, в котором значение AS0 было равно 0.

В данном режиме сна останавливаются все тактовые источники за исключением асинхронных (clkASY), работающих только совместно с асинхронными модулями, в т.ч. таймер-счетчик 0 с разрешенной опцией асинхронного тактирования.

8-разрядный AVR-микроконтроллер с внутрисистемно программируемой флэш-памятью емкостью 128 кбайт

  1. Общее описание
  2. Ядро центрального процессорного устройства AVR
  3. Память
  4. Интерфейс внешней памяти
  5. Системная синхронизация и тактовые источники
  6. Внешняя синхронизация
  7. Управление энергопотреблением и режимы сна
  8. Системное управление и сброс
  9. Прерывания
  10. Порты ввода-вывода

    — Порты в качестве универсального цифрового ввода-вывода
    — Альтернативные функции порта
    — Описание регистров портов ввода-вывода
  11. Внешние прерывания
  12. Аналоговый компаратор
  13. 16-разр. таймеры-счетчики 1 и 3

    — Доступ к 16-разрядным регистрам
    — Тактовые источники таймера-счетчика 1/3
    — Блок счетчика
    — Блок захвата
    — Блоки сравнения
    — Блок формирования выходного сигнала
    — Режимы работы
  14. Временные диаграммы 16-разрядных таймеров-счетчиков
  15. Описание регистров 16-разрядных таймеров-счетчиков
  16. Предделители таймеров-счетчиков 1, 2 и 3
  17. Аналогово-цифровой преобразователь
  18. Интерфейс JTAG и встроенная отладочная система
  19. Модулятор выходов таймеров (OCM1C2)
  20. Последовательный периферийный интерфейс — SPI

    — Функционирование вывода SS
  21. 8-разр. таймер-счетчик 0 с функциями ШИМ и асинхронного тактирования

    — Блок формирования выходного сигнала
    — Временные диаграммы таймера-счетчика 0
    — Описание регистров 8-разрядного таймера-счетчика 0
    — Асинхронная работа таймера-счетчика 0
    — Предделитель таймера-счетчика 0
  22. УСАПП

    — Генерация тактовых импульсов
    — Форматы посылки
    — Инициализация УСАПП
    — Передача данных — Передатчик УСАПП
    — Прием данных — Приемник УСАПП
    — Асинхронный прием данных
    — Многопроцессорный режим связи
    — Описание регистров УСАПП
    — Примеры установок скоростей связи
  23. Двухпроводной последовательный интерфейс TWI

    — Формат посылки и передаваемых данных
    — Системы многомастерных шин, арбитраж и синхронизация
    — Обзор модуля TWI
    — Описание регистров TWI
    — Рекомендации по использованию TWI
    — Режимы передачи
  24. Программирование памяти

    — Параллельное программирование
    — Последовательное программирование
    — Программирование через интерфейс JTAG
  25. Электрические характеристики

    — Требования к характеристикам внешнего тактового сигнала
    — Характеристики двухпроводного последовательного интерфейса
    — Характеристики временной диаграммы SPI
    — Предварительные данные по характеристикам АЦП
    — Временная диаграмма внешней памяти данных
  26. Типовые характеристики ATmega128: предварительные данные

    — Типовые характеристики ATmega128: предварительные данные (продолжение)
    — Типовые характеристики ATmega128: предварительные данные (продолжение)
  27. Сводная таблица регистров
  28. Набор инструкций
  29. Информация для заказа

Исходный файл:

  4464Kb Engl

Режим выключения (Power-down)

Если SM2..0 = 010, то выполнение команды SLEEP означает перевод микроконтроллера в режим выключения. В данном режиме прекращает работу внешний генератор, но в действии остаются внешние прерывания, наблюдение за адресом на двухпроводной последовательной шине и сторожевой таймер (при условии, что они активизированы). Выход из данного режима возможен только по внешнему сбросу, сбросу сторожевым таймером, сбросу супервизором питания, прерывании по обнаружении установленного адреса на двухпроводной последовательной шине, прерывании по внешнему уровню на выводах INT7:4 или внешним прерывании INT3:0. В данном режиме фактически отключена генерация всех тактовых частот, поэтому дальнейшая работа модулей продолжается только в асинхронном режиме.

Обратите внимание, что если для выхода из прерывания используется прерывание по установке заданного уровня на внешнем входе, то выход из режима сна возможен только если этот уровень присутствует в течение определенного времени (см. также “Внешние прерывания”)

Выход из режима выключения сопровождается задержкой с момента выполнения условия прерывания до эффективного пробуждения. Данная задержка позволяет перезапустить синхронизацию и дождаться стабильности ее работы. Период пробуждения определяется некоторыми конфигурационными битами CKSEL, которые определяют период задержки при сбросе (см. “Источники синхронизации”).

Генератор тактовой частоты

Но самым важным для нас в настоящее время является блок «Oscillator Circuits/Clock Generation» (Схема генератора/Генератор тактовой частоты).

В программе часто возникает необходимость сделать временную задержку в ее выполнении — паузу. А точную паузу можно организовать только методом подсчета времени. Время считаем исходя из количества тактов генератора микроконтроллера.

Да и не лишним будет заранее просчитать: успеет ли МК выполнить тот или иной фрагмент программы за отведенное для этого время.

В даташите ищем соответствующую главу: «System Clock and Clock Options» (Тактовый генератор и его параметры). В ней видим раздел «Clock Sources» (Источники тактового сигнала), в котором имеется таблица с перечнем видов тактовых сигналов. В этом разделе указано, что данный МК имеет встроенный тактовый RC-генератор. В разделе «Default Clock Source» имеется указание о том, что МК продается уже настроенным для использования встроенного RC-генератора. При этом тактовая частота МК — 1 МГц.

Из раздела «Calibrated Internal RC Oscillator» (Калиброванный RC-генератор) узнаем, что встроенный RC-генератор имеет температурный дрейф в пределах 7,3 — 8,1 МГц. Может возникнуть вопрос: если частота встроенного тактового генератора 7,3 — 8,1 МГц, то как была получена частота 1 МГц? Дело в том, что тактовый сигнал попадает в схемы микроконтроллера через программируемый делитель частоты (Об это рассказано в разделе «System Clock Prescaler»).

В данном микроконтроллере он имеет несколько коэффициентов деления: 1, 2, 4 и 8. При выборе первого мы получим частоту самого тактового генератора, при включении последнего — в 8 раз меньше, т.е., 8/8=1 МГц. С учетом вышесказанного получаем, что тактовая частота данного МК при включенном делителе с коэффициентом 8 будет в пределах от 7,3/8 = 0,9125 МГц (9125 КГц) до 8,1/8 = 1,0125 МГц.

Обратите внимание на один ну очень важный факт: стабильность частоты дана при температуре МК 25 градусов по шкале Цельсия. Вспомним, что внутренний генератор выполнен по RC схеме

А емкость конденсатора очень зависит от температуры!

Адаптер для программирования ATMega128

Опубликовано вс, 09/20/2015 — 17:14 пользователем trol

При написании и отладке прошивки устройств на микроконтроллерах приходится часто выполнять перепрограммирование МК и периодически подключаться к нему через
UART-интерфейс чтобы смотреть логи (по крайней мере, лично я предпочитаю отладку через UART-терминал). Особенностями МК ATMega128 является то, что
1) для внутрисхемного программирования он использует выводы, отличные от выводов SPI-интерфейса и
2) данный МК имеет на борту два UART-а, причем, выводы одного из них совпадают с выводами ISP-интерфейса.

Таким образом, при написании прошивки все манипуляции с устройством можно делать через один разъем для программатора.

Supported microcontrollers:

  • ATmega2561
  • ATmega2560
  • ATmega1281
  • ATmega1280
  • ATmega640
  • ATmega128
  • ATmega64
  • AT90CAN128
  • AT90CAN64
  • AT90CAN32

(All variants — A, L, V)

Can’t decide what microcontroller to choose? Have a look at the specification table below:

Mega2560 Mega1280 Mega640 Mega2561 Mega1281 Mega128CAN128 Mega64CAN64 CAN32
Flash 256kB 128kB 64kB 256kB 128kB 128kB 64kB 32kB
RAM 8kB 8kB 8kB 8kB 8kB 4kB 4kB 2kB
EEPROM 4kB 4kB 4kB 4kB 4kB 4kB 2kB 1kB
IO pins 70/86 * 70/86 * 70/86 * 54 54 53 53 53
PWM pins 15 15 15 8 8 7 7 7
LED pin PB7 PB7 PB7 PB5 PB5 PB5 PB5 PB5

* pin 70-85 is not broken out on the Arduino Mega. Make sure to check out the for a cleaner an more logical pinout.

16-разрядные таймеры-счетчики 1 и 3

16-разрядные таймеры-счетчики предназначены для точного задания временных интервалов, генерации прямоугольных импульсов и измерения временных характеристик импульсных сигналов.

Основные отличительные особенности:

  • 16-разрядные счетчики (в т.ч. возможность организации 16-разр. ШИМ)
  • Три раздельных блока сравнения
  • Двойная буферизация регистров порога сравнения (OCR)
  • Один блок захвата
  • Подавитель шума на входе блока захвата
  • Режим сброса таймера при совпадении с порогом сравнения (автоматическая перезагрузка)
  • Широтно-импульсная модуляция без генерации ложных импульсов при записи нового порога сравнения в OCR (двойная буферизация) и фазовая коррекция
  • Переменный период ШИМ
  • Частотный генератор
  • Счетчик внешних событий
  • 10 самостоятельных источников прерываний (TOV1, OCF1A, OCF1B, OCF1C, ICF1, TOV3, OCF3A,
    OCF3B, OCF3C и ICF3)

Ограничения на режим совместимости с ATmega103

Обратите внимание, что в режиме совместимости с ATmega103 доступен только один 16-разр. таймер-счетчик (таймер-счетчик 1)

Кроме того, в режиме совместимости с ATmega103 таймер-счетчик 1 имеет только два регистра порогов сравнения (OCR1A и OCR1B).

PROGMEM with flash sizes greater than 64kB

The usual attribute stores constant data such as string arrays to flash and is great if you want to preserve the precious RAM. However, PROGMEM will only store content in the lower section, from 0 and up to 64kB. If you want to store data in other sections, you can use (64 — 128kB), (128 — 192kB), or (192 — 256kB), depending on the chip you’re using.
Accessing this data is not as straight forward as with , but it’s still doable:

const char far_away[] PROGMEM1 = "Hello from far away!\n"; // (64  - 128kB)
const char far_far_away[] PROGMEM2 = "Hello from far, far away!\n"; // (128 - 192kB)
const char far_far_far_away[] PROGMEM3 = "Hello from far, far, far away!\n"; // (192 - 256kB)

void print_progmem()
{
  uint8_t i;
  char c;

  // Print out far_away
  for(i = ; i < sizeof(far_away); i++)
  {
    c = pgm_read_byte_far(pgm_get_far_address(far_away) + i);
    Serial.write(c);
  }

  // Print out far_far_away
  for(i = ; i < sizeof(far_far_away); i++)
  {
    c = pgm_read_byte_far(pgm_get_far_address(far_far_away) + i);
    Serial.write(c);
  }
  // Print out far_far_far_away
  for(i = ; i < sizeof(far_far_far_away); i++)
  {
    c = pgm_read_byte_far(pgm_get_far_address(far_far_far_away) + i);
    Serial.write(c);
  }
}

Распиновка Atmega8

На следующей странице публикуется расположение выводов данного микроконтроллера при использовании разных типов корпусов:

Советую этот листок из даташита распечатать и иметь под рукой. В процессе разработки и сборки схемы очень полезно иметь эти данные перед глазами.

Внимание!

Обратите внимание на такой факт: микросхема микроконтроллера может иметь (и имеет в данной модели) несколько выводов для подключения источника питания. То есть имеется несколько выводов для подключения «земли» — «общего провода», и несколько выводов для подачи положительного напряжения

Изготовители микроконтроллеров рекомендуют подключать соответствующие выводы вместе, т.е., минус подавать на все выводы, помеченные как Gnd (Ground — Земля), плюс — на все выводы помеченные как Vcc.

При этом через одинаковые выводы МК не должны протекать токи, так как внутри корпуса МК они соединены тонкими проводниками! То есть при подключении нагрузки эти выводы не должны рассматриваться как «перемычки».

Режим уменьшения шумов АЦП (ADC Noise Reduction)

Если значениям бит SM2..0 присвоить 001, то выполнение инструкции SLEEP приведет к переводу микроконтроллера в режим уменьшения шумов АЦП, в котором останавливается ЦПУ, но продолжают работу АЦП, внешние прерывания, наблюдение за адресом двухпроводной последовательного шины, таймер-счетчик 0 и сторожевой таймер (конечно, если были предварительно активизированы). Фактически в данном режиме прекращается синхронизация ввода-вывода (clkI/O), ядра ЦПУ (clkCPU) и флэш-памяти (clkFLASH), а остальная синхронизация продолжает работу.

В этом режиме создается более благоприятные условия для аналогово-цифрового преобразования с повышенной разрешающей способностью за счет снижения влияния шумов на результат измерения. Если разрешена работа АЦП, то преобразование автоматически запускается при переводе в данный режим. Выход из данного режима допускается не только при генерации запроса на прерывание по завершению преобразования АЦП, но и при внешнем сбросе, сбросе по сторожевому таймеру, сбросе при недопустимом снижении питания, прерывании при обнаружении установленного адреса на двухпроводной последовательной шине, прерывании по таймеру-счетчику 0, прерывании по готовности SPM/EEPROM, прерывании по внешнему уровню на выводах INT7:4 или внешнем прерывании по входам INT3:0.

Тестер микросхем

Опубликовано вт, 09/05/2017 — 15:45 пользователем trol

Устройство предназначено для тестирования логических микросхем, операционных усилителей, оптопар, и некоторых других элементов.
Из логических микросхем поддерживаются отечественные (серии 155, 555, 1531, 1533, 176, 561, 1561, 1564, 580, 589 и др.) и импортные
(74ххх, 40ххx, 45xxx) ИМС ТТЛ и КМОП. Меню и результаты проверки отображаются на цветном дисплее 128х128.
Так же тестер умеет проверять микросхемы DRAM, SRAM, считывать EPROM и показывать, есть ли в них записанные данные.
Кроме того, прибор можно использовать при отладке различных цифровых устройств как интерфейс с 40 каналами ввода-вывода управляемыми по USB.

Тестер питается через miniUSB-порт, также через этот порт его можно подключить к компьютеру. Программное обеспечение позволяет разрабатывать,
запускать и пошагово отлаживать тесты, считывать содержимое ПЗУ и обновлять прошивку устройства.

Программное обеспечение написано на Java и является кроссплатформенным (Windows, Linux, MacOS X).

8-битный микроконтроллер AVR со встроенным 2.4-гигагерцевым ZigBee- и IEEE 802.15.4-совместимым трансивером

Документация:

  435Kb Engl Описание микроконтроллера ATmega128RFA1. Краткая информация.
  4762Kb Engl Описание микроконтроллера ATmega128RFA1. Полная информация.
  646Kb Engl Система команд
  Rus Архитектура и система команд
  Програмное обеспечение
  Инструментальные средства для 8-разрядных AVR-микроконтроллеров

Отличительные особенности:

  • Высокоэффективный и маломощный 8-битный микроконтроллер AVR
  • Прогрессивная RISC-архитектура
    • 135 инструкций, большинство которых выполняются за один цикл синхронизации
    • 32×8 рабочих регистров общего назначения
    • Полностью статическая работа
    • Производительность до 16 MIPS на тактовой частоте 16МГц и при напряжении 1.8В
    • Встроенное 2-тактное умножающее устройство
  • Энергонезависимые памяти программ и данных
    • 128 кбайт внутрисистемно-самопрограммируемой Flash-памяти
    • 4 кбайт EEPROM
    • 16 кбайт встроенного SRAM
  • Интерфейс JTAG (совместим со стандартом IEEE 1149.1)
    • Возможности граничного сканирования по стандарту JTAG
    • Встроенная отладочная система
    • Программирование Flash-памяти, EEPROM, Fuse- и Lock-бит через интерфейс JTAG
  • Особенности встроенных устройств ввода-вывода
    • Несколько каналов таймеров-счетчиков и широтно-импульсной модуляции
    • Счетчик реального времени с отдельным генератором
    • 10-битный АЦП на частоту дискретизации до 330 кГц; аналоговый компаратор, встроенный датчик температуры
    • Ведущий/подчиненный последовательный интерфейс SPI
    • Два программируемых последовательных интерфейса USART
    • 2-проводной последовательный интерфейс для побайтной передачи данных
  • Улучшенный обработчик прерываний
  • Сторожевой таймер с отдельным встроенным генератором
  • Сброс при подаче питания и экономичная схема супервизора питания
  • Несколько экономичных режимов работы
  • Полностью интегрированный трансивер ISM-диапазона 2.4ГГц
    • Поддерживаемые скорости: 250 кбит/сек, 500 кбит/сек, 1Мбит/сек и 2Мбит/сек
    • Чувствительность приемника -100 дБм; выходная мощность передатчика до 3.5дБм
    • Аппаратно реализованные MAC-функции (автоматическое подтверждение, автоповтор)
    • 32-битный IEEE 802.15.4-совместимый счетчик символов
    • Обработка РЧ сигналов
    • Обнаружение SFR, модуляция и демодуляция методом DSSS, обработка посылок, вычисление CRC-16
    • Сигналы управления разнесенными антеннами и приемом/передачей
    • 128-байтный буфер посылок приема/передачи
  • Аппаратные средства защиты данных (AES, истинный генератор случайных чисел)
  • Встроенные кварцевые генераторы (32.768 кГц и 16 МГц)
  • Корпус и линии ввода-вывода
    • 38 программируемых линий ввода-вывода
    • 64-выводной корпус QFN (RoHS/Fully Green)
  • Температурный диапазон: промышленный -40…+85°C
  • Диапазон напряжения питания: 1.8…3.6В (с учетом встроенных стабилизаторов напряжения)
  • Сверхмалый потребляемый ток приемника/передатчика и AVR (1.8…3.6В): не более 18.6 мА
    • Активный режим ЦПУ (16МГц): 4.1мА
    • Трансивер 2.4ГГц: 12.5 мА (приемник)/14.5 мА (передатчик с максимальной выходной мощностью)
    • Режим полного отключения (Deep Sleep): <250нА (25°C)
  • Градации быстродействия: 0…16МГц (1.8…3.6В)

Области применения:

  • ZigBee/IEEE 802.15.4-2006/2003-совместимое оборудование
  • Трансиверы ISM-диапазона 2.4ГГц общего назначения со встроенным микроконтроллером
  • Оборудование с поддержкой технологий передачи данных RF4CE, SP100, WirelessHART и IPv6/6LoWPAN

Схема включения:

Функциональная схема:

Расположение выводов:

Общее описание:

ATmega128RFA1 — экономичный 8-битный микроконтроллер на основе RISC-архитектуре AVR, дополненной высокоскоростным РЧ трансивером ISM-диапазона 2.4ГГц. Он является производным от микроконтроллера ATmega1281и РЧ трансивера AT86RF231.

Благодаря выполнению большинства инструкций за один цикл синхронизации, микроконтроллер достигает производительности близкой к 1 MIPS/МГц, что позволит разработчику систем оптимизировать соотношение потребляемой мощности и производительности исполнения инструкций.

РЧ трансивер поддерживает передачу данных на скорости от 250 кбит/сек до 2Мбит/сек, обработку посылок, обладает отличной чувствительностью приемника и высокой выходной мощностью передатчика. Все эти особенности обеспечат надежность беспроводной передачи данных.

Главная —
Микросхемы —
DOC —
ЖКИ —
Источники питания —
Электромеханика —
Интерфейсы —
Программы —
Применения —
Статьи

Расширенный дежурный режим (Extended Standby)

Запись в SM2..0 значения 111 с учетом выбора в качестве тактового источника внешнего кварцевого или керамического резонатора означает, что после выполнения команды SLEEP микроконтроллер будет переведен в расширенный дежурный режим. Данный режим идентичен экономичному за исключением продолжения работы тактового генератора.

Выход из расширенного дежурного режима происходит за шесть машинных циклов.

Таблица 18 – Активные тактируемые модули и источники пробуждения в различных режимах сна

Наименование режима сна Тактируемые модули микроконтроллера Активные генераторы Источник пробуждения
  clkCPU (ЦПУ) clkFLASH (флэш-амять) clkIO (ввод-вывод) clkADC (АЦП) clkASY (Асинхр.модули) Основной тактовый Генератор таймера INT7:0 Набл. адреса TWI Таймер 0 Готовность SPM/EEPROM АЦП Др. ввод-вывод
Холостой ход     * * * * * * * * * * *
Уменьшение шумов АЦП       * * * * * * * * *  
Выключение               * *        
Экономичный         *   * * * *      
Дежурный (1)           *   * *        
Расширенный дежурный (1)         * * * * * *      

Прим.

  1. В качестве внешнего тактового источника выбран кварцевый или керамический резонатор.
  2. Если установлен бит AS0 в ASSR.
  3. Только INT3:0 или прерывание по уровню на INT7:4

Getting started with MegaCore

Ok, so you’re downloaded and installed MegaCore, but how to get started? Here’s a quick start guide:

  • Hook up your microcontroller as shown in the .
  • Open the Tools > Board menu item, and select ATmega64, ATmega128, ATmega1281, ATmega2561, ATmega640, ATmega1280, ATmega2560, AT90CAN32, AT90CAN64 or AT90CAN128.
  • Select your preferred clock frequency. 16 MHz is standard on most Arduino boards.
  • Select what kind of programmer you’re using under the Programmers menu.
  • Hit Burn Bootloader. If an LED is connected to pin PB5/PB7, it should flash twice every second.
  • Now that the correct fuse settings is sat and the bootloader burnt, you can upload your code in two ways:
    • Disconnect your programmer tool, and connect a USB to serial adapter to the microcontroller, like shown in the . Then select the correct serial port under the Tools menu, and click the Upload button. If you’re getting some kind of timeout error, it means your RX and TX pins are swapped, or your auto reset circuity isn’t working properly (the 100 nF capacitor on the reset line).
    • Keep your programmer connected, and hold down the button while clicking Upload. This will erase the bootloader and upload your code using the programmer tool.

Your code should now be running on the microcontroller!

Порты ввода-вывода

Введение

Все порты ввода-вывода (ПВВ) AVR-микроконтроллеров работают по принципу чтение-модификация-запись при использовании их в качестве портов универсального ввода-вывода. Это означает, что изменение направления ввода-вывода одной линии порта командами SBI и CBI будет происходит без ложных изменений направления ввода-вывода других линий порта. Данное распространяется также и на изменение логического уровня (если линия порта настроена на вывод) или на включение/отключение подтягивающих резисторов (если линия настроена на ввод). Каждый выходной буфер имеет симметричную характеристику управления с высоким втекающим и вытекающим выходными токами. Выходной драйвер обладает нагрузочной способностью, которая позволяет непосредственно управлять светодиодными индикаторами. Ко всем линиям портов может быть подключен индивидуальный выборочный подтягивающий к плюсу питания резистор, сопротивление которого не зависит от напряжения питания. На всех линиях ПВВ установлены защитные диоды, которые подключены к VCC и Общему (GND), как показано на рисунке 29. Подробный перечень параметров ПВВ приведен в разделе «Электрические характеристики».

Рисунок 29 – Эквивалентная схема линии ПВВ

Ссылки на регистры и биты регистров в данном разделе даны в общей форме. При этом, символ “x” заменяет наименование ПВВ, а символ “n” заменяет номер разряда ПВВ. Однако при составлении программы необходимо использовать точную форму записи. Например, PORTB3, означающий разряд 3 порта B, в данном документе записывается как PORTxn. Адреса физических регистров ввода-вывода и распределение их разрядов приведены в разделе “Описание регистров портов ввода-вывода».

Для каждого порта ввода-вывода в памяти ввода-вывода зарезервировано три ячейки: одна под регистр данных – PORTx, другая под регистр направления данных – DDRx и третья под состояние входов порта – PINx. Ячейка, хранящая состояние на входах портов, доступна только для чтения, а регистры данных и направления данных имеют двунаправленный доступ. Кроме того, установка бита выключения подтягивающих резисторов PUD регистра SFIOR отключает функцию подтягивания на всех выводах всех портов.

Ниже приведено описание порта ввода-вывода для универсального цифрового ввода-вывода. Большинство выводов портов поддерживают альтернативные функции встроенных периферийных устройств микроконтроллера. Описание альтернативных функций приведено далее в подразделе “Альтернативные функции порта” (см. также описание функций соответствующих периферийных модулей).

Обратите внимание, что для некоторых портов разрешение альтернативных функций некоторых выводов делает невозможным использование других выводов для универсального цифрового ввода-вывода