Руководства, Инструкции, Бланки

Avr Mega Type 2 инструкция img-1

Avr Mega Type 2 инструкция

Рейтинг: 4.0/5.0 (1860 проголосовавших)

Категория: Инструкции

Описание

Avr Архитектура 8-разрядных микроконтроллеров семейства AVR Регистр управления таймером

Регистр управления таймером/счетчиком 2 - TCCR2 - (The Timer/Counter2 Control Register)
  • Bit 7 - Res: Reserved Bit - Зарезервированный бит
    Данный бит в микроконтроллерах ATmega603/103 зарезервирован и при считывании всегда покажет состояние 0.
  • Bit 6 - PWM0 / PWM2: Pulse Width Modulator Enable - Разрешение широтно- импульсного модулятора
    Установленный в состояние 1 бит разрешает режим ШИМ для таймеров/счетчиков 0 или 2. Режим подробно описан в разделе Таймеры/счетчики 0 и 2 в ШИМ режиме.
  • Bits 5,4 - COM01, COM00 / COM21, COM20: Compare Output Mode, bits 1 and 0 - Режим сравнения выхода, биты 1 и 0
    Управляющие биты COMn1 и COMn0 устанавливают состояние выходных выводов PB4(OC0/PWM0) или PB7(OC2/PWM2). после совпадения в таймере/счетчике2. Поскольку это альтернативная функция выводов порта I/O, то соответствующий бит направления вывода должен быть установлен в состояние 1. Управляющая конфигурация показана в таблице 10.

Таблица 10. Выбор режима сравнения

Таймер/счетчикn отсоединен от выходного вывода OCn/PWMn

Переключение выходной линии OCn/PWMn

Очистка выходной линии OCn/PWMn (установка в состояние 0)

Установка выходной линии OCn/PWMn (установка в состояние 1)

Примечания: n = 0 или 2.
В ШИМ режиме функции этих битов отличаются. Подробное описание приведено в таблице 13. При изменении битов COMn1/COMn0 прерывание по сравнению выхода должно быть запрещено очисткой его бита разрешения прерывания в регистре TIMSK. В противном случае при изменении состояния бита может произойти прерывание.
  • Bit 3 - CTC0 / CTC2: Clear Timer/Counter on Compare match - Очистить таймер/счетчик при совпадении
    При установленном в состояние 1 бите CTC0 или CTC2 таймер/счетчик сбрасывается в состояние $00 в течение одного тактового цикла CPU после наступления совпадения. Если бит управления сброшен, то таймер продолжает считать и не используется в процедуре сравнения. Поскольку факт совпадение детектируется в тактовом цикле CPU следующем за совпадением, то эта функция будет вести себя несколько по другому, если коэффициент предварительного деления будет больше 1. Если используется коэффициент предварительного деления равный 1 и в регистр сравнения A установлено содержимое C, то таймер будет продолжать счет так как это делается при установленном CTC0/2.
    . | C-1 | C | C+1 | 0 | 1 |.
    Если установлен коэффициент деления 8, таймер будет считать аналогично следующей последовательности:
    . | C-1, C-1, C-1, C-1, C-1, C-1, C-1, C-1 | C, C, C, C, C, C, C, C | C+1, 0, 0, 0, 0, 0, 0, 0, 0 | 1, 1, 1.
    В ШИМ режиме состояние этого бита значения не имеет.
  • Bits 2,1,0 - CS02, CS01, CS00 / CS22, CS21, CS20: Clock Select bits 2,1 and 0 - Биты выбора тактовой частоты
    Биты 2,1 и 0 выбора тактовой частоты таймера/счетчика2 подключают выход определенной ступени предварительного делителя.

Таблица 11. Выбор коэффициента деления предварительного делителя таймера/счетчика0

Другие статьи

AVR Mega16 Module

AVR Mega16 Module Модуль AVR Архив со всем необходимым Описание модуля AVR ATMega16

В качестве базового контроллера используется микроконтроллер ATMega16 в DIP корпусе, установленном на панельку. Что позволяет применять в модуле другие варианты контроллеров AVR в подобном корпусе, просто заменив микроконтроллер. Подходят, например, ATMega8535 или ATMega32. Но следует осторожней относится к выбору контроллера, сверяясь с даташитом. Так, например, у ATMega162 совсем иная цоколевка выводов, потому его нельзя вставить в данный модуль. Хотя никто не запрещает развести и изготовить модуль для этого контроллера по аналогии.

Схема модуля проста и состоит из контактов платы (стандартные для всех модулей) и контактов контроллера. Соединяя их джамперами или проволочными перемычками можно подключать микроконтроллер к любой периферии платы.

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

Слева и справа идут основные интерфейсы платы, а также выводы земли и питания. Особо следует обратить внимание на два резистора. Они задают напряжение питания контроллера, т.к. стоят в обратной связи стабилизатора шины CPU_POWER. Таким образом, напряжение питание модуля задается им самим. Впрочем, всегда есть возможность обойти стабилизатор CPU_POWER и объединить шины Main Power и CPU Power.

Цоколевка внешних выводов модуля следующая:

  • GND – шина земли
  • ADJ – вывод ADJ LM317 для задачи напряжения
  • CPU_POWER – напряжение питания процессора
  • PS/2CLK2 – CLOCK 2 вывод разъема PS/2
  • PS/2CLK – CLOCK вывод разъема PS/2
  • PS/2DATA2 – DATA 2 вывод разъема PS/2
  • PS/2DATA – DATA вывод разъема PS/2
  • PWLED0 – вывод на светодиод и фильтр для сглаживания ШИМ сигнала. Канал 0
  • PWLED1 – вывод на светодиод и фильтр для сглаживания ШИМ сигнала. Канал 1
  • PWLED2 – вывод на светодиод и фильтр для сглаживания ШИМ сигнала. Канал 2
  • PWLED3 – вывод на светодиод и фильтр для сглаживания ШИМ сигнала. Канал 3
  • USB BUS PUP – подтяжка шины D на USB. Подача на этот вывод пяти вольт подтягивает шину D и обеспечивает обнаружение устройства на шине USB.
  • USB BUS PWR – пять вольт с шины USB пропущенные через резистор в 100кОм. Позволяют отследить наличие питание на шине USB.
  • USB DATA + -- Шина данных USB
  • USB DATA - -- Шина данных USB
  • TXA1 – Вывод TX канала А (соединяется с линией ТХ микроконтроллера! Перекрещивание RX и TX идет дальше, на колодке коммутатора)
  • RXA1 – Вывод RX канала А (соединяется с линией RХ микроконтроллера! Перекрещивание RX и TX идет дальше, на колодке коммутатора)
  • TXB1 – Вывод TX канала B (соединяется с линией ТХ микроконтроллера! Перекрещивание RX и TX идет дальше, на колодке коммутатора)
  • RXB1 – Вывод RX канала B (соединяется с линией RХ микроконтроллера! Перекрещивание RX и TX идет дальше, на колодке коммутатора)
  • GND – земля.
  • D3…D0 - вход ЦАП по схеме R2R
  • AO – от Analog Output – выход R2R ЦАП. Выход идет с операционного усилителя.
  • VFO – Voltage Filter Out – выход RC фильтра.
  • VFI – Voltage Filter In – вход RC фильтра.
  • AGND – Аналоговая земля.
  • SCL – строб линия шины i2c. Подтянута к CPU POWER.
  • SDA – линия данных шины i2c Подтянута к CPU POWER
  • GND – земля.
  • SS – выбор кристалла, шина SPI. Подключен также к SS выводу SD карты.
  • MOSI – Master Output Slave Input – линия данных шины SPI
  • SCK – строб линия шины SPI
  • MISO – Master Input Slave Output – линия данных шины SPI
  • SS2 – выбор кристалла, шина SPI. Уходит к модулю расширения, позволяя адресовать его по SPI
  • BTN3 – Может быть подключена к кнопке BTN3
  • BTN2 – Может быть подключена к кнопке BTN3
  • BTN1 – Может быть подключена к кнопке BTN3
  • BZR – Buzzer, этот вывод подключен к пищалке. Подавая на него колебания звуковой частоты можно что-нибудь пропищать.

Это что касается выводов модуля. Фактически они совпадают с аналогичными выводами базовой платы. Сам контроллер разведен независимо, объединены только земли, питание и то, без чего не обойтись. Что дает гибкость и возможность подключать выводы как угодно и куда угодно. Схема включения контроллера типовая:

Только самое необходимое. Кварцы вынесены на панельки, что позволяет их менять или убирать если не нужны. Напряжение опоры АЦП связано с питающим через дроссель. Земли цифровая и аналоговая соединены, но это соединение в одной точке и только на модуле. Все остальные выводы выведены на штыри и расположены напротив выводов контроллера. Также некоторые из них продублированы возле UART, PWM или I2C выводов, чтобы можно было удобно подключать их джамперами.

Желтой подсветкой указаны выводы которые можно подключать джамперами. Как видно, выведены ШИМ каналы OC0, OC1A, OC1B, OC2. Шина i2c с ее линиями SCL, SDA. SPI с линиями MOSI, MISO (MI на плате), SCK и SS. Причем SS от контроллера продублирована так, чтобы можно было джампером одевать ее на SS или на SS2. Также продублированы выводы UART, позволяя подключать их джамперами либо к каналу А, либо к каналу В.

Справа, напротив выводов OSC1 и OSC2 припаяна цанговая панелька, куда может быть вставлен часовой кварц (идет в комплекте).

С северного торца, под платой, расположена кнопка RESET. А с Южного, также под платой, расположен угловой разъем JTAG’a с которого можно шлейфом вытащить интерфейс на отладчик.

Отличие модуля AVR ревизии 1 от ревизии 2

Схемотехника и распиновка модулей осталась без изменений, но была исправлена ошибка в результате которой SDA и SCL выводы поменялись местами. Сделал так, как было задумано изначально. Что позволяет теперь подключать i2c шину напрямую, джамперами. Не извращаясь с хитрым крестовидным соединителем.

Раньше для наброса на шину i2c AVR модуля нужно было подключать так:

Теперь все несколько упростилось:

MEGA-AVR - Микроконтроллеры это просто

Группа

Простой по своей гениальности способ обходить различного вида блокировки в Интернете.

Если вас куда-то не пускают, потому что у вас неправильная страна, неправильное вероисповедание, неправильная демократия или ваши копирасты не договорились с зарубежными о дележе прибыли, приходится пользоваться различными видами прокси-серверов, скрывающих или меняющих IP-адрес компьютера. Показать полностью… Существуют разнообразнейшие программы, позволяющие автоматизировать это дело, или можно самому зайти в настройки браузера и выставить там необходимые прокси вручную.

Как оказалось, существует очень простой способ не морочиться всеми этими настройками. Не беда. Идем на страницу Гугл-переводчика, и вбиваем туда прямо в окно перевода ссылку на заблокированное видео.

В соседнем окне получаем ссылку на «перевод страницы». Кликаем на нее, и смотрим видео без блокировки. В этом случае переход на заблокированный контент осуществляется не с вашего IP, а с прокси-IP самого Гугла.

Такой вот элементарный способ. Наверняка многие о нем знали, ибо проще некуда. Но если кто не знал — пользуйтесь.

Хакеры удаленно остановили движущуюся Tesla Model S

Специалисты по информационной безопасности из лаборатории Keen китайской телекоммуникационной компании Tencent смогли получить удаленный доступ к некоторым функциям автомобилей Tesla Model S. Кратко о проделанной работе сообщается в блоге лаборатории, ролик с демонстрацией возможных последствий такого взлома исследователи опубликовали на YouTube. Показать полностью…

Современные автомобили оснащены большим количеством различных вспомогательных систем, управляемых бортовым компьютером, а электронный привод устанавливается даже на акселератор, тормоз и рулевое управление — именно благодаря такому подходу, например, возможно внедрение автопилота в автомобили, в которых он не предусмотрен серийно. Однако любой компьютер потенциально уязвим, и время от времени автопроизводители сталкиваются с различными уязвимостями в программном обеспечении автомобилей. Если же злоумышленник получит доступ к базовым органам управления автомобиля удаленно, это может привести к различным последствиям, вплоть до умышленно создаваемого ДТП со смертельным исходом.

Исследователи из лаборатории Keen обнаружили, что могут перехватить управление некоторыми функциями Tesla Model S, если автомобиль подключен к беспроводной сети злоумышленников — например, для поиска ближайшей зарядной станции в интернете. Исследователи получили доступ к CAN-шине и с помощью ноутбука смогли отправлять служебные команды различным подсистемам автомобиля. В частности, хакерам удалось взять в свои руки управление люком в крыше, крышкой багажника, поворотниками, стеклоочистителями, боковыми зеркалами, положением кресла и отображением информации, выводимой на главный экран и приборную панель.

Кроме доступа к некритичным для безопасности водителя системам, хакеры также получили доступ к тормозной системе. Исследователи продемонстрировали на Tesla Model S, движущейся с небольшой скоростью, что могут активировать тормоза и полностью остановить электромобиль. При этом авторы ролика сообщают, что тормозная система задействована с расстояния в 20 километров. Подробную информацию о методике взлома авторы передали представителям Tesla Motors, и компания уже отреагировала, выпустив патч, устраняющий уязвимость, сообщает TechCrunch.

Ранее специалисты по компьютерной безопасности Центра передовых технологий Uber также с помощью беспроводного соединения смогли получить доступ к различным подсистемам Jeep Cherokee, среди которых были климат-контроль, тормоза и рулевое управление. Позднее концерн Fiat Chrysler Automobiles устранил программную уязвимость, однако почти год спустя после первой демонстрации хакеры смогли повторить взлом, используя уже проводное подключение к CAN-шине. По их словам, если подключить к диагностическому разъему автомобиля беспроводной адаптер, то управление автомобилем снова можно будет перехватить удаленно.

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

Исследователи из Национальной лаборатории Ок-Ридж, занимающиеся изучением поведения наноразмерных материалов, обнаружили материал, способный формировать в его пределах области с различными свойствами. Показать полностью… Эти области имеют некоторое сходство с базовыми электронными компонентами и из них динамически можно формировать электронные схемы, что позволит микропроцессорам будущих поколений обрести функциональность, находящуюся далеко за гранями возможностей современных микропроцессоров и чипов.

Чудо-материал, на изучении которого сосредоточились исследователи, имеет название LPCMO и он представляет собой сложное окисное соединение, имеющее кристаллическую решетку одноатомной толщины. Когда этот материал разделается на частицы микро- и наноразмерного уровня, эти частицы обретают различные электронные и магнитные свойства из-за явления, называемого фазовым разделением.

"Во время исследований мы обнаружили, что и в пределах больших частей материала могут существовать так называемые фазовые "карманы", участки, где один и тот же материал имеет различные электронные и магнитные свойства" - рассказывает Зак Вард (Zac Ward), один из ведущих исследователей, - "Эти области, действующие как электронные элементы, которые могут быть соединены друг с другом. Это открывает широкие возможности для создания программируемых и перезаписываемых электронных схем, которые будут находиться прямо на кристаллах микропроцессоров, значительно расширяя их функциональные возможности".

Исследуемый материал изменяет свою фазу в ответ на воздействие внешних магнитных и электрических полей, что позволит создавать электронные схемы при помощи достаточно широкого ряда комбинаций вышеуказанных факторов. "Это совершенно новый подход к формированию электронных схем, которые будут "помогать" микропроцессорам выполнять высокоскоростную обработку сигналов и цифровой информации" - рассказывает Зак Вард, - "Такой новый подход потребует разработки новой многофункциональной архитектуры микропроцессоров, которые смогут обрабатывать одновременно и аналоговые сигналы и информацию в цифровом виде".

Наличие возможности динамического формирования схем позволит микропроцессору быстро адаптироваться под особенности решаемой им в данный момент задачи. Путем программирования местоположения и свойств фазовых областей микропроцессор сможет создать столько аналоговых и цифровых входов для ввода данных и сигналов, сколько ему нужно в данный момент времени. Кроме входов на пластине материала могут быть созданы усилители, фильтры, логические и другие элементы, выполняющие предварительную обработку поступающих сигналов.

"В обычных условиях для обработки процессором множества сигналов различного типа на плате компьютера или контроллера создаются несколько соответствующих сигналам входных цепей" - рассказывает Зак Вард, - "Новый материал позволит "загнать" это все внутрь чипа, что позволит существенно сократить размеры устройства, его стоимость и количество потребляемой электрической энергии".

В своих дальнейших исследованиях ученые из Ок-Ридж планируют изучить свойства ряда других сложных материалов, которые должны демонстрировать поведение, схожее с поведением материала LPCMO. И, вполне вероятно, что им удастся найти окончательный вариант материала, который будет удовлетворять ряду требований, необходимых для успешного использования материала в условиях массового промышленного производства.

Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL CD

Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL + CD. А. В. Евстифеев, 5-е издание, 2008 г.

Книга посвящена вопросам практического применения однокристальных микроконтроллеров AVR семейств Tiny и Mega фирмы ATMEL. Рассмотрена архитектура, ее особенности. Приведены основные электрические параметры и временные характеристики. Подробно описано внутреннее устройство микроконтроллеров, системы команд, периферия, а также способы программирования с примерами реализации некоторых алгоритмов для конкретных цифровых устройств.

Книга предназначена для разработчиков радиоэлектронной аппаратуры, инженеров, студентов вузов и радиолюбителей.

Название: Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL + CD. Электронное издание
Автор: Евстифеев А.В.
Издательство: Издательский дом "Додэка-XXI"
Год выпуска: 2008
ISBN: 978-5-94120-220-1
Формат: PDF
Качество: eBook (изначально компьютерное)
Количество страниц: 558
Размер: книга - 2.2 Мб, диск - 218 (117+111) Мб

В состав диска входят собственно сама книга, а также:
-AVR Studio
-Документация на микроконтроллеры (Data Sheets)
-Документация по применению (App Notes)

Часть 1. Микроконтроллеры семейства Tiny

Глава 1. Знакомство с семейством Tiny
1.1. Общие сведения 12
1.2. Отличительные особенности 12
1.3. Характеристики процессора 13
1.4. Характеристики подсистемы ввода/вывода 13
1.5. Периферийные устройства 14
1.6. Архитектура ядра 14
1.7. Цоколевка и описание выводов 15

Глава 2. Архитектура микроконтроллеров семейства Tiny
2.1. Общие сведения 21
2.2. Организация памяти 26
2.2.1. Память программ 26
2.2.2. Память данных 28
2.2.3. Энергонезависимая память данных (EEPROM) 38
2.3. Счетчик команд и выполнение программы 42
2.3.1. Функционирование конвейера 42
2.3.2. Задержки в конвейере 43
2.3.3. Счетчик команд 44
2.3.4. Команды типа «проверка/пропуск» (Test & Skip) 44
2.3.5. Команды условного перехода 44
2.3.6. Команда безусловного перехода 45
2.3.7. Команда вызова подпрограмм 45
2.3.8. Команды возврата из подпрограмм 46
2.4. Стек 46

Глава 3. Устройство управления микроконтроллеров семейства Tiny
3.1. Общие сведения 48
3.2. Тактовый генератор 49
3.2.1. Кварцевый генератор 49
3.2.2. Внешний сигнал синхронизации 50
3.2.3. Встроенный генератор с внешней или внутренней ^С-цепочкой 50
3.3. Режимы пониженного энергопотребления 52
3.3.1. Режим Idle 53
3.3.2. Режим Power Down 53
3.3.3. Режим ADC Noise Reduction 54
3.4. Сброс
3.4.1. Сброс по включению питания 55
3.4.2. Аппаратный сброс 57
3.4.3. Сброс от сторожевого таймера 57
3.4.4. Сброс при снижении напряжения питания 58
3.4.5. Управление схемой сброса 59
3.5. Прерывания 66
3.5.1. Таблица векторов прерываний 66
3.5.2. Обработка прерываний 67
3.5.3. Внешние прерывания. Регистры GIMSK и GIFR 69
3.5.4. Прерывания от таймеров. Регистры TIMSK и TIFR 71
3.5.5. Управление прерываниями в микроконтроллерах ATtiny28x. Регистры ICR и IFR 73

Глава 4. Порты ввода/вывода
4.1. Общие сведения 76
4.2. Обращение к портам ввода/вывода 77
4.3. Конфигурирование портов ввода/вывода 78
4.4. Аппаратный модулятор 81

Глава 5. Таймеры в микроконтроллерах семейства Tiny
5.1. Общие сведения 86
5.2. Назначение выводов таймеров/счетчиков 86
5.3. Таймер/счетчик T0 87
5.4. Таймер/счетчик T1 90
5.4.1. Выбор источника тактового сигнала 93
5.4.2. Режим таймера 94
5.4.3. Режим ШИМ 95
5.5. Сторожевой таймер 97

Глава 6. Аналоговый компаратор

6.1. Общие сведения 100
6.2. Функционирование компаратора 100

Глава 7. Аналого-цифровой преобразователь
7.1. Общие сведения 104
7.2. Функционирование модуля АЦП 104
7.3. Повышение точности преобразования 111
7.4. Параметры АЦП 112

Часть 2. Микроконтроллеры семейства Mega

Глава 8. Знакомство с семейством Mega
8.1. Общие сведения 114
8.2. Отличительные особенности 114
8.3. Характеристики процессора 115
8.4. Характеристики подсистемы ввода/вывода 115
8.5. Периферийные устройства 116
8.6. Архитектура ядра 116
8.7. Цоколевка и описание выводов 117

Глава 9. Архитектура микроконтроллеров семейства Mega
9.1. Введение 148
9.2. Организация памяти 148
9.2.1. Память программ 150
9.2.2. Память данных 153
9.2.3. Энергонезависимая память данных (EEPROM) 189
9.3. Счетчик команд и выполнение программы 193
9.3.1. Счетчик команд 193
9.3.2. Функционирование конвейера 193
9.3.3. Команды типа «проверка/пропуск» (Test & Skip) 194
9.3.4. Команды условного перехода 195
9.3.5. Команды безусловного перехода 195
9.3.6. Команды вызова подпрограмм 197
9.3.7. Команды возврата из подпрограмм 198
9.4. Стек 198

Глава 10. Тактирование, режимы пониженного энергопотребления и сброс
10.1. Общие сведения 200
10.2. Тактовый генератор 200
10.2.1. Тактовый генератор с внешним резонатором 203
10.2.2. Низкочастотный кварцевый генератор 204
10.2.3. Внешний сигнал синхронизации 205
10.2.4. Внешняя RС-цепочка 205
10.2.5. Встроенный генератор с внутренней RС-цепочкой 206
10.2.6. Управление тактовой частотой 209
10.3. Режимы пониженного энергопотребления 210
10.4. Сброс 217
10.4.1. Сброс по включению питания 219
10.4.2. Аппаратный сброс 221
10.4.3. Сброс от сторожевого таймера 221
10.4.4. Сброс при снижении напряжения питания 222
10.4.5. Управление схемой сброса 223

Глава 11. Прерывания

11.1. Общие сведения 230
11.2. Таблица векторов прерываний 230
11.3. Обработка прерываний 239
11.4. Внешние прерывания 240

Глава 12. Порты ввода/вывода
12.1. Общие сведения 248
12.2. Регистры портов ввода/вывода 249
12.3. Конфигурирование портов ввода/вывода 250

Глава 13. Таймеры
13.1. Общие сведения 255
13.2. Назначение выводов таймеров/счетчиков 256
13.3. Прерывания от таймеров/счетчиков 257
13.4. Предделители таймеров/счетчиков 261
13.4.1. Управление предделителями 262
13.4.2. Использование внешнего тактового сигнала 263
13.5. Таймеры/счетчики T0 и T2 264
13.5.1. Управление тактовым сигналом 269
13.5.2. Режимы работы 270
13.5.3. Асинхронный режим 276
13.6. Таймеры/счетчики T3 279
13.6.1. Обращение к 16-разрядным регистрам 287
13.6.2. Управление тактовым сигналом 288
13.6.3. Режимы работы 288
13.7. Сторожевой таймер 300

Глава 14. Аналоговый компаратор
14.1. Введение 305
14.2. Функционирование компаратора 306

Глава 15. Аналого-цифровой преобразователь
15.1. Общие сведения 310
15.2. Функционирование модуля АЦП 311
15.3. Результат преобразования 320
15.4. Повышение точности преобразования 321
15.5. Параметры АЦП 323

Глава 16. Универсальный асинхронный (синхронный/асинхронный) приемопередатчик
16.1. Общие сведения 324
16.2. Использование модулей USART/UART 326
16.2.1. Скорость приема/передачи 333
16.2.2. Формат кадра 336
16.2.3. Передача данных 338
16.2.4. Прием данных 340
16.3. Мультипроцессорный режим работы 345

Глава 17. Последовательный периферийный интерфейс SPI
17.1. Введение 347
17.2. Функционирование модуля SPI 347
17.3. Режимы передачи данных 352
17.4. Использование вывода SS 353

Глава 18. Последовательный двухпроводный интерфейс
18.1. Общие сведения 355
18.2. Принципы обмена данными по шине TWI 356
18.3. Обзор модуля TWI 361
18.4. Взаимодействие прикладной программы с модулем TWI 367
18.5. Режимы работы модуля TWI 370
18.5.1. Режим «Ведущий передатчик» 370
18.5.2. Режим «Ведущий приемник» 374
18.5.3. Режим «Ведомый приемник» 378
18.5.4. Режим «Ведомый передатчик» 382
18.5.5. Комбинирование различных режимов 385
18.5.6. Арбитраж 386
18.6. Параметры интерфейса TWI 387
Часть 3. Команды микроконтроллеров семейств Tiny и Mega

Глава 19. Общие сведения о системе команд
19.1. Введение в систему команд 390
19.2. Операнды 390
19.3. Типы команд 392
19.3.1. Команды логических операций 392
19.3.2. Команды арифметических операций и команды сдвига 393
19.3.3. Команды операций с битами 393
19.3.4. Команды пересылки данных 394
19.3.5. Команды передачи управления 394
19.3.6. Команды управления системой 397
19.4. Сводные таблицы команд 397

Часть 4. Программирование микроконтроллеров семейств Tiny и Mega

Глава 21. Введение в программирование микроконтроллеров AVR
21.1. Общие сведения 472
21.2. Защита кода и данных 473
21.3. Конфигурационные ячейки 475
21.4. Идентификатор 479
21.5. Калибровочная ячейка 480
21.6. Организация памяти программ и данных микроконтроллеров семейства Mega 480

Глава 22. Последовательное программирование при высоком напряжении
22.1. Общие сведения 482
22.2. Управление процессом программирования 483

Глава 23. Программирование по последовательному каналу

23.1. Общие сведения 489
23.2. Переключение в режим программирования 492
23.3. Управлением процессом программирования FLASH-памяти 496
23.4. Управление процессом программирования EEPROM-памяти 497

Глава 24. Параллельное программирование

24.1. Общие сведения 498
24.2. Переключение в режим параллельного программирования 504
24.3. Стирание кристалла 505
24.4. Программирование FLASH-памяти 505
24.5. Программирование EEPROM-памяти 508
24.6. Конфигурирование микроконтроллеров 510
24.6.1. Программирование конфигурационных ячеек 510
24.6.2. Программирование ячеек защиты 511
24.6.3. Чтение конфигурационных ячеек и ячеек защиты 511
24.6.4. Чтение ячеек идентификатора и калибровочной константы 512

Глава 25. Программирование по интерфейсу JTAG
25.1. Общие сведения 514
25.2. Использование интерфейса JTAG для программирования кристалла. Команды JTAG 517
25.2.1. AVR RESET (код команды $0C) 518
25.2.2. PROG ENABIE (код команды $04) 518
25.2.3. PROG COMMANDS (код команды $05) 518
25.2.4. PROG PAGEIOAD (код команды $06) 519
25.2.5. PROG PAGEREAD (код команды $07) 519
25.2.6. Алгоритм программирования 519

Глава 26. Самопрограммирование микроконтроллеров семейства Mega
26.1. Общие сведения 528
26.2. Области RWW и NRWW5 30
26.3. Функционирование загрузчика 531
26.3.1. Управление процессом самопрограммирования 531
26.3.2. Изменение памяти программ 535
26.3.3. Изменение ячеек защиты загрузчика 536
26.3.4. Чтение конфигурационных ячеек и ячеек защиты 536
26.3.5. Пример реализации программы-загрузчика 537

Приложение 1. Сводная таблица микроконтроллеров AVR семейства Tiny 542
Приложение 2. Сводная таблица микроконтроллеров AVR семейства Mega 544
Приложение 3. Чертежи корпусов микроконтроллеров AVR
семейств Tiny и Mega 549
Приложение 4. Электрические параметры микроконтроллеров AVR
семейств Tiny и Mega 552
Предметный указатель 554

МОДЕЛИ МИКРОКОНТРОЛЛЕРОВ AVR

МОДЕЛИ МИКРОКОНТРОЛЛЕРОВ AVR

В настоящее время в серийном производстве у Atmel находятся семейства AVR Тiny и Mega, также все еще можно встретить в продаже чипы семейства Classic.

Classic AVR - это классика AVR, что следует и из их названия. Постепенно заменяются микроконтроллерами семейств Tiny и Mega.
Tiny AVR - недорогие микроконтроллеры, чаще в восьмивыводном исполнении. Используются в системах, где не требуются возможности Mega AVR.
Mega AVR - мощные микроконтроллеры, включающие хороший набор периферии. Это семейство имеет самое большое разнообразие моделей для выбора.

Какой бы микроконтроллер вы ни выбрали, следует помнить, что система команд всех семейств совместима при переносе программы со слабого на более мощный микроконтроллер.

Ниже приводится параметрическая таблица моделей микроконтроллеров AVR.


Пояснения к таблице

Flash ROM - объем энергонезависимой памяти программ (в килобайтах);
EEPROM - объем энергонезависимой памяти данных (в байтах);
RAM - объем статической памяти данных (в байтах);
Max I/O - максимальное количество доступных линий ввода / вывода;
F. max - максимальная частота;
Vcc - диапазон рабочих напряжений питания (в вольтах);
Timer(s) 8/16 bit - количество и разрядность таймеров/счетчиков;
PWM - количество независимых каналов широтно-импульсной модуляции;
RTC - система реального времени;
SPI - синхронный трехпроводной последовательный интерфейс;
UART - асинхронный последовательный приемопередатчик;
TWI - двухпроводной последовательный интерфейс;
AD - количество каналов аналого-цифрового преобразования;
Int. - прерывания (interrupts);
Ext. Int. - внешние прерывания;
Package - типы корпусов, в которые опрессовывается микроконтроллер, и общее количество выводов.

Универсальная отладочная плата для AVR

Универсальная отладочная плата для AVR

Устройство является универсальной системой для отладки микроконтроллеров AVR. Плата не привязана к конкретному микроконтроллеру, а имеет универсальный разъем, к которому можно подключить модуль с любым микроконтроллером. На данный момент разработаны модули для микроконтроллеров:
- ATmega8
- ATmega16
- ATmega162
- ATtiny2313
- ATtiny13

Но ничего не мешает разработать модули и под другие микроконтроллеры. Устройство включает в себя программатор USBASP и может быть полностью запитано от USB или внешнего источника питания. Устройство включает в себя все необходимое для отладки: ЖК и светодиодные дисплеи, часы реального времени и EEPROM память, интерфейсы RS232 и RS485, разъем для подключения клавиатуры, кнопки, светодиоды и многое другое. Части устройства соединяются между собой при помощи специальных проводов, перемычек и переключателей. Некоторые части постоянно соединены с портами выбранного микроконтроллера (например, LCD), что убирает проблему спутанных проводов.

Так как проект является сложным, схема разделена на несколько частей.

Наиболее важная часть всего устройства, которая управляет процессорным модулем и остальной частью устройства. К этой части подключаются светодиодные дисплеи, таймер и I2C интерфейс, UART и инфракрасный приемник. На микроконтроллере U6 (ATmega8) собран программатор USBASP. Для корректной работы необходим кварц X1 (12 МГц) и конденсаторы C9 (22pF) и С10 (22pF). Резистор R27 (10k) подтягивает вывод сброса микроконтроллера к плюсу. Резисторы R31 (470R) и R32 (470R) ограничивают ток светодиодов D3 и D4. Резистор R58 (470R) играет ту же роль для светодиода D1. KANDA - это разъем ISP. Конденсаторы C12 (100nF) и С11 (4,7 мкФ) - фильтрующие. Для правильной работы шины USB необходимы резисторы R29 (68R) и R30 (68R), стабилитроны D1 и D2 (3,6 V). Резистор R28 (2,2 кОм) необходим для того, чтобы устройство определялось компьютером как работающее на малой скорости. Отладочная плата подключается к компьютеру через разъем ZUSB1 (USB-B).

U3 и U4 (DS18B20) - это датчики температуры работающие по шине 1-wire. Для правильной работы шины необходим резистор R24 (4,7 кОм). 1WR_OUT разъем позволяет подключать дополнительные датчики, а разъем 1WR обеспечивает связь с модулем микроконтроллера. PS2 разъем (Mini DIN6) есть не что иное, как разъем для подключения клавиатуры персонального компьютера. Резисторы R59 (4,7 кОм) и R60 (4,7 кОм) подтягивают шину данных и вывод "Clock" к плюсу. Разъем KBD обеспечивает связь с модулем микроконтроллера. Клавиатура питается от внешнего источника питания +5 В.

На плате имеется дополнительный генератор частоты 16 мГц. Также имеется дополнительный кварцевый резонатор X3 и два конденсатора C16 (22pF) и С17 (22pF) для любых целей.

ZUSB2 в связке с элементами C18 (100nF), C19 (4,7 мкФ), R48 (68R), R49 (68R) и стабилитронами D8 (3,6 V) и D9 (3.6 V) предназначены для отладки произвольных устройств, с подключением к порту USB. Резистор R47 (2,2 К) может быть отключен с помощью перемычки ZW7, благодаря этому возможно использовать USB порт для получения питания без уведомления о устройстве USB.

W1 LCD (20x4) является главным элементом для отображения данных. Резистор R3 (47R) ограничивает ток подсветки, которая активируется транзистором Т1 (BC556) и резисторами R1 (3,3 кОм) и R2 (3,3 кОм) перемычкой ZW1. Потенциометр P1 (10 кОм) позволяет установить контрастность дисплея. Перемычка PW4 включает дисплей. Переключатель SD1 (SW6) служит для отключения линий управления дисплеем, подключенным к главному процессору (можно не ставить).

Транзисторы T2 - T5 (BC556) и резисторы R4-R11 (3,3 кОм) контролируют аноды 4-х разрядного LED дисплея W2. Резисторы R12 - R20 (330 Ом) ограничивают ток через сегменты дисплея. Переключатели SD2 (SW4) и SD3 (SW8) служит для отключения линий управления дисплеем, подключенным к главному процессору (можно не ставить). Разъем W2L используется для подключения центральных точек к процессору.

U9 (TL431) с резисторами R45 (330 Ом) и R46 (10 кОм) и потенциометром P2 (1 кОм) является источником опорного напряжения около 2,56 В. Выход через разъем VREF. Пьезо пищалка с генератором BUZ1 (5В) управляется при помощи транзистора T12 (BC556) и резисторов R40 (3,3 кОм) и R41 (3,3 кОм). Управление зуммером осуществляется через разъем BUZ. Также на плате установлен фототранзистор T7 (L-93P3BT). Резистор R33 (10 кОм) ограничивает ток, протекающий через него. Выход фототранзистора через разъем FOT.

Для преобразования уровней COM порта используется популярная микросхема MAX232 (U1). Для правильной работы требуются конденсаторы С1 - С4 (1 мкФ). Первый выход UART непосредственно подключен к процессорному модулю через переключатель SD4 (SW2). Второй выход UART выведен на разъем и может использоваться для любых целей. С MAX232 через разъем V- снимается отрицательное напряжение (выход инвертора). Это может использоваться для смещения в различных схемах. MAX232 отключается от источника питания с помощью перемычки Pw1.

Перемычка PW2 включает микросхемы, работающие на шине I2C. Резисторы R25 (3,3 кОм) и R26 (3,3 кОм) необходимы для правильной работы шины I2C. Шина I2C подключены к процессорному модулю через переключатель SD5 (SW2). Микросхема U5(AT24C256) - EEPROM память. Диоды D6 (1N4148) и D7 (1N4148) с батареей BAT1(3 В) - источник бесперебойного питания для RTC, микросхемы U7(PCF8583). Перемычкой Zw4 вы можете отключить батарею, а перемычкой ZW3 можно установить адрес U7 160 или 162. Конденсатор C14 (100 нФ) - фильтрующий, и должен располагаться как можно ближе к микросхеме U7. Конденсатор С13 (33 пФ) и кварц X2 (32,768 кГц) обеспечивают точный ход часов. Прерывание от микросхемы U7 выведено на разъем PCF_INT.

На плате установлены два светодиодных дисплея - уровня W3 и W4. Резисторные сборки RP1 (4x470R), RP2 (8x470R) и RP3 (8x470R) ограничивают ток через сегменты дисплеев. Дисплеи соединены с процессорным модулем через разъемы LED1 и LED2. Также на плате установлены RGB светодиоды D13 и D14, с токоограничительными резисторами R63 (180R), R64 (100R), R65 (180R), R66 (180R), R67 (100R) и R68 (180R). Перемычки Zw11 и Zw12 необходимы для включения катодов светодиодов к земле или к транзисторам.

Разъемы V1 - V3, V4 - V9 являются источником питания +5 В. Разъемы G1 - G3, G4-G8 - земля.

Микросхема U8 (ULN2803) предназначена для управления низковольтными нагрузками. Управляющий сигнал подается на разъемы Z3 и Z4. Выход на разъемы ULN1 - ULN4. В связи с высоким потреблением энергии микросхема U8 получает питание от внешнего источника. Разъемы Z1 и Z2 соеденины с разъемами с винтовыми фиксаторами ZU1 - ZU4. Симисторы TR1 (BT138-600E) и TR2 (BT138-600E) с оптопарами OPT1 (MOC3041) и OPT2 (MOC3041) и резисторами R34 (180R), R35 (180R), R37 (180R) и R38 (180R) позволяют управлять нагрузкой 220 В. Резисторы R36 (330R) и R39 (330R), ограничивают ток, протекающий через оптопары. Выход через разъемы с винтовым фиксатором TRO_1 и TRO_2. Управляющий сигнал подается на разьем TR1 Варисторы WR1 (JVR-7N431) и WR2 (JVR-7N431) защищают выход. Панельки PD28 (DIL28) и PD40 (DIL40) предназначены для установки любых микросхем, их выводы разведены на разъемы PDG1 - PDG4.

Выводы энкодера I1 разведены на разъем IMP, перемычка ZW2 используется для подключения земли или +5 В к энкодеру. Конденсаторы C20 (100nF) и C21 (100nF) необходимы для подавления помех. На плате есть также оптропара OPT3 (CNY17) для любых целей. R43 (330R) ограничивает ток светодиода оптропары. R44 (10k) и R42 (100k) подтягивают выводы к питанию. Перемычками ZW5 и ZW6 можно подключать светодиод оптопары к +5 В или на землю. Выход через разъем CNYO.

Кнопки S1 - S8 подключены к разъему SW. Кнопки S9 - S24 образуют матрицу. Столбцы клавиатуры подключаются через разъем SWC, а линейки через разъем SWR.

Разъем ZAC (Molex 2x2) необходим для подачи внешнего питания +5 В с более высоким током. Реле PU1 (HFC-005-12W) необходимо для переключения питания от USB или от внешнего источника питания при условии, что установлена перемычка ZW8. Светодиод D11 и резистор R61 (470R) установлены для сигнализации работы реле. Диод D12 (1N4007) защищает от скачков на катушке реле напряжения при выключении питания. Выключатель питания позволяет отключить питание от USB (запитываться будет только программатор), светодиод D15 с резистором R69 (470R) указывают на этот факт.

Микросхема U2 (TSOP1736) представляет собой ИК-приемник работающий на частоте 36 кГц. Для правильной работы необходимы элементы C8 (100 мкФ) и R23 (220R). Также на плате установлен инфракрасный светодиод D5 (SFH485). Резистор R22 (10R) ограничивает ток. Конденсаторы C6 (100 нФ) и С7 (100 мкФ) - фильтрующие. Транзистор T6 (BC516) управляет инфракрасным светодиодом. База транзистора соединена с процессором через переключатель SD6 (SW2). Резистор R21 (10 кОм) ограничивает ток базы транзистора T6, и R21 * (10 кОм) подтягивает базу транзистора к +5 В. Это предотвращает произвольное включение ИК-светодиода, когда он не используется. Перемычка PW3 включает питание для приемника и ИК-передатчика.

Транзисторы T8 - T11 (BC556) с резисторами R50 - R57 (3,3 кОм) могут использоваться для управления низковольтными нагрузками. Управляющий сигнал подается на разъем Z5. Выход через разъемы с винтовыми фиксаторами ТО1 и ТО2

Далее даны схемы процессорных модулей

Устройство изготавливается на основе печатной платы (В конце статьи). Плата не сложна в сборке, но устанавливать придется много элементов. В случае ошибки в установке это будет трудно найти и исправить. Установка начинается с пайки всех перемычек (16 штук). Некоторые перемычки находятся под микросхемами. Далее устанавливают все резисторы, конденсаторы и другие мелкие детали. В последнюю очередь устанавливают микросхемы.

Плата изготавливается из текстолита 1,5 мм и крепится к подставке из металла (см. фото проекта). На всех микросхемах рекомендуется использовать панельку. Вместо датчиков DS18B20 припаяна панелька DIL6. Благодаря этому можно заменять датчики и считывать серийные номера для различных целей. Подробности изготовления платы можно увидеть в разделе "Фотографий проекта".

Перед включением платы нужно проверить плату на предмет коротких замыканий с помощью мультиметра, особенно проверить короткие замыкания между GND и +5В, так как плата подключается к порту USB.

21x Разъем с винтовым фиксатором двойной
1x Разъем с винтовым фиксатором тройной
Разъемы PLS
1x 2x2 MOLEX разъем
2x Панелька цанговая DIL6
1x Панелька цанговая DIL28
1x Панелька цанговая DIL40
1x Панелька цанговая DIL16
1x Разъем ISB(10PIN)
2x Разъем USB - B
1x Разъем PS2
1x Разъем DB9F
1x Разъем DB9M
1x Батарейка 3V (CR2032) + Держатель
1x 2-х позиционный переключатель
25x Кнопка без фиксации
1x Энкодер
1x Реле HFKW-005-1ZW
4x DIP-переключатель SW2
1x DIP-переключатель SW4
1x DIP-переключатель SW6
1x DIP-переключатель SW8

2x Резистор 2.2 кОм
23x Резистор 3,3 кОм
3x Резистор 4,7 кОм
1x Резистор 10 Ом
6x Резистор 10 кОм
1x Резистор 47 Ом
4x Резистор 68 Ом
2x Резистор 100 Ом
1x Резистор 100 кОм
8x Резистор 180 Ом
1x Резистор 220 Ом
13x Резистор 330 Ом
4x Резистор 470 Ом
1x Резисторная сборка 4x470 Ом
2x Резисторная сборка 8x470 Ом
2x Варистор JVR-7N431
1x Потенциометр 1 кОм
1x Потенциометр 10 кОм

1x Конденсатор 10 нФ
4x Конденсатор 22 пФ
1x Конденсатор 33пФ
7x Конденсатор 100 нФ
4x Конденсатор электролит 1 мкФ
2x Конденсатор электролит 4,7 мкФ
2x Конденсатор э лектролит 100 мкФ

1x 12 МГц кварц
1x Часовой кварц 32768Hz
1x 16 МГц кварцевый генератор
1x Диод 1N4007
2x Диод 1N4148
4x 3V6 стабилитрон
4x Светодиод
2x Светодиод RGB (общий катод)
1x ИК-светодиод
2x Светодиодный столбик DIL20
1x ИК-приемник TSOP1736
1x Транзистор BC516
10x Транзистор BC556
1x Фототранзистора L-932P3BT
1x Микроконтроллер ATMEGA8 + панелька
1x AT24C256
1x ULN2803
1x TL431
1x MAX232
1x MAX485
1x PCF8583

2x BT138-600E
2x MOC3041
1x Оптрон CNY17
1x Пищалка 5V с генератором
1x 7-сегментный дисплей (четырехразрядный)
1x LCD 20x4

Модуль ATtiny13:
Разъемы PLS
1x Конденсатор 100nF
1x Микроконтроллер ATTINY13 + панелька

Разъемы PLS
2x Конденсатор 22 пФ
1x Конденсатор 100 нФ
1x 16 МГц кварц
1x Микроконтроллер ATTINY2313 + панелька

Модуль ATMega8:
Разъемы PLS
2x Конденсатор 22 пФ
1x Конденсатор 100 нФ
1x 16 МГц кварц
Микроконтроллер ATMEGA8 + Панелька

Модуль ATMega16:
Разъемы PLS
2x Конденсатор 22 пФ
1x Конденсатор 100 нФ
1x 16 МГц кварц
Микроконтроллер ATMEGA16 + Панелька

Модуль ATMega162:
Разъемы PLS
2x Конденсатор 22 пФ
1x Конденсатор 100 нФ
1x 16 МГц кварц
Микроконтроллер ATMEGA162 + Панелька

Список радиоэлементов

Владимир 18.07.2015 06:03 #

Обалденная вещица, фундаментальный труд. Спасибо автору за то, что делится своей разработкой. Буду собирать. Времени, правда, много уйдет, т.к. не всё у меня есть и некоторые вещи заказывать придется. Была мысль купить готовое. но оно часто и недешево, и куда как менее интересно, чем собранное самостоятельно. К тому же, у меня это хобби: чего-нибудь собрал - кому-нибудь подарил. Полезность переоценить трудно.

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