Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

Как подключить AVR микроконтроллер к программатору

Научимся искать информацию по разным моделям AVR микроконтроллеров, разберемся c чтением PDF документов в операционной системе Linux. Узнаем как подключить микроконтроллер к программатору используя интерфейс ISP при помощи нескольких проводников.

Содержание:

  1. Несколько рекомендаций
  2. Чтение PDF документов в Linux
  3. Подключение AVR микроконтроллера к программатору
  4. Заключение

Несколько рекомендаций

Чтобы правильно подключить микросхему-микроконтроллер к программатору нужно разобраться где у него и какие выводы. Для получения исчерпывающей информации о интересующем нас микроконтроллере качаем на официальном сайте даташит (datasheet) на интересующий нас чип – Даташиты по микроконтроллерам ATMEL.

На первой страничке даташита приводится подробное описание возможностей микроконтроллера, а далее приведена распиновка микросхем под каждый из типов корпусов. Каждый даташит по AVR чипу содержит массу подробной информации на английском языке, к примеру даташит на микроконтроллер ATmega8 содержит 326 страниц!

Не знаете английского? – старайтесь понемногу изучать, без него сейчас очень трудно в современном мире радиоэлектроники и компьютерной техники, это универсальный международный язык. А пока что, если не знаете что означает какое-то слово или предложение – переведите его через сервис машинных переводов translate.google.com.

Чтение PDF документов в Linux

Как правило, все даташиты на микросхемы поставляются в формате PDF (Portable Document Format) – формат электронных документов для использования на разных платформах, разработан фирмой Adobe Systems.

Под Windows есть множество разных программ для чтения и работы с документами формата PDF. В операционной системе Linux формат PDF тоже имеет отличную программную поддержку.

Программы в Linux что умеют читать PDF:

  • Okular – универсальная и мощная программа для просмотра документов, входит в окружение рабочего стола KDE;
  • Qpdfview – простая и легковесная программа для просмотра документов в формате PDF, DjVu и PS;
  • Evince (Document Viewer) – очень быстрый и легковесный просмотрщик документов PostScript (PS), EPS, DJVU, DVI, PDF;
  • Xpdf – высокопроизводительный просмотрщик PDF-файлов.

Какую программу выбрать для просмотра PDF под Linux? – очень хорошо справляются со своими задачами программы Okular и Evince.

Если у вас установлена рабочая среда KDE то скорее всего что программа Okular уже присутствует в системе. Если Okular не установлен то исправить это можно командой:

sudo apt-get install okular okular-extra-backends

Если же у вас рабочая среда отличная от KDE – GNOME, XFCE, UNITY то более экономичным решением будет установить Evince, поскольку установка в данных средах программы Okular потребует некоторые компоненты от рабочей среды KDE.

Рис. 1. Универсальный просмотрщик документов Evince под Linux – средство для листания PDF документов по микроконтроллерам.

Просмотрщик документов Evince очень хорошо открывает огромные документы и справляется иногда с такими что не под силу прочитать для Okular. Установка Evince в Linux:

sudo apt-get install evince

Думаю что у вас теперь не возникнет проблем с чтением документов в формате PDF под ОС GNU Linux .

Подключение AVR микроконтроллера к программатору

Выше было рассказано что для подключения микроконтроллера к программатору нужно соединить выводы ISP: VCC, GND, MISO, MOSI, SCK, RST. Выводы с данными названиями присутствуют у всех микроконтроллеров, так что даташит нам в помощь.

Рис. 2. Распиновка микроконтроллера ATmega8 и подключение его к ISP (USB ASP).

У программатора USB ASP на коннекторе ISP предусмотрено напряжение +5В (VCC), так что для программирования чипа можно воспользоваться питанием от программатора, а вернее от USB порта к которому он подключен.

В рассмотреных раньше программаторах, что используют COM и LPT порты, нет вывода VCC, а это значит что с использованием этих программаторов на выводы GND (-) и VCC (+) микроконтроллера нужно подать напряжение питания 5В от внешнего источника.

Подключения микроконтроллера к программатору USB ASP на беспаечной макетной панели очень просто реализовать при помощи перемычек (проводники со штырьками на двух концах).

Рис. 3. Подключение к ISP коннектору программатора USB ASP на беспаечной макетной панели.

Рис. 4. Программатор USBASP подключен к микроконтроллеру ATmega8 (увеличение рисунка по клику).

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

Заключение

Как видите, нет ничего сложного в подключении микроконтроллера к программатору используя интерфейс ISP. Главное найти даташит под нужный микроконтроллер и разобраться с его ножками, а там останется подсоединить несколько проводков и… готово!

В следующей статье рассмотрим программное обеспечение для работы с AVR микроконтроллерами под ОС GNU Linux, а также кратко рассмотрим разные среды для разработки и написания кода.

Начало цикла статей: Программирование AVR микроконтроллеров в Linux на языках Asembler и C.

2 13089 Микроконтроллеры

Распиновка контроллера Arduino UNO – Atmel 328P-PU (DIP-корпус)

Ножки микросхемы Atmel/Atmega 328P-PU в DIP-корпусе (классический длинный черный корпус с двумя рядами ножек по бокам) распределены так:

Список, отсортированный по номерам контактов, выглядит так:

Контакт

Номер ножки

Назначение

Примечание

PC6

1

PCINT14 / -RESET

Programming, debug / Digital

PD0

2

PCINT16 / RXD

Digital

PD1

3

PCINT17 / TXD

Digital

PD2

4

PCINT18 / INT0

Digital

PD3

5

PCINT19 / OC2B / INT1

Digital

PD4

6

PCINT20 / XCK / T0

Digital

VCC

7

Напряжение питания

Power

GND

8

Ground

PB6

9

PCINT6 / XTAL1 / TOSC1

Digital / Crystal, Osc

PB7

10

PCINT7 / XTAL2 / TOSC2

Digital / Crystal, Osc

PD5

11

PCINT21 / OC0B / T1

Digital

PD6

12

PCINT22 / OC0A / AIN0

Digital / Analog

PD7

13

PCINT23 / AIN1

Digital / Analog

PB0

14

PCINT0 / CLKO / ICP1

Digital

PB1

15

OC1A / PCINT1

Digital

PB2

16

-SS / OC1B / PCINT2

Digital

PB3

17

MOSI / OC2A / PCINT3

Digital

PB4

18

MISO / PCINT4

Digital

PB5

19

SCK/PCINT5

Digital

AVCC

20

Качественное питание для АЦП

Power

AREF

21

Опорное напряжение для АЦП

Analog

GND

22

Ground

PC0

23

ADC0 / PCINT8

Analog / Digital

PC1

24

ADC1 / PCINT9

Analog / Digital

PC2

25

ADC2 / PCINT10

Analog / Digital

PC3

26

ADC3 / PCINT11

Analog / Digital

PC4

27

ADC4 / SDA / PCINT12

Analog / Digital

PC5

28

ADC5 / SCL / PCINT13

Analog / Digital

Список, отсортированный по наименованиям контактов, выглядит так:

Контакт

Номер ножки

Назначение

Примечание

PB0

14

PCINT0 / CLKO / ICP1

Digital

PB1

15

OC1A / PCINT1

Digital

PB2

16

-SS / OC1B / PCINT2

Digital

PB3

17

MOSI / OC2A / PCINT3

Digital

PB4

18

MISO / PCINT4

Digital

PB5

19

SCK/PCINT5

Digital

PB6

9

PCINT6 / XTAL1 / TOSC1

Digital / Crystal, Osc

PB7

10

PCINT7 / XTAL2 / TOSC2

Digital / Crystal, Osc

PC0

23

ADC0 / PCINT8

Analog / Digital

PC1

24

ADC1 / PCINT9

Analog / Digital

PC2

25

ADC2 / PCINT10

Analog / Digital

PC3

26

ADC3 / PCINT11

Analog / Digital

PC4

27

ADC4 / SDA / PCINT12

Analog / Digital

PC5

28

ADC5 / SCL / PCINT13

Analog / Digital

PC6

1

PCINT14 / -RESET

Programming, debug / Digital

PD0

2

PCINT16 / RXD

Digital

PD1

3

PCINT17 / TXD

Digital

PD2

4

PCINT18 / INT0

Digital

PD3

5

PCINT19 / OC2B / INT1

Digital

PD4

6

PCINT20 / XCK / T0

Digital

PD5

11

PCINT21 / OC0B / T1

Digital

PD6

12

PCINT22 / OC0A / AIN0

Digital / Analog

PD7

13

PCINT23 / AIN1

Digital / Analog

AREF

21

Опорное напряжение для АЦП

Analog

VCC

7

Напряжение питания

Power

AVCC

20

Качественное питание для АЦП

Power

GND

8

Ground

GND

22

Ground

В этом списке сразу видно, что микросхема имеет три порта B, C и D. Причем порт C отличается тем, что он 7-ми разрядный, в то время как порты B и D 8-ми разрядные.

Итого, имеется 8 + 8 + 7 = 23 ножки, принадлежащих трем портам. Почему же на сигнальные выводы Arduino UNO отведено всего 20 пинов? Куда делись 3 пина? А вот куда:

  • Ножка PC6 никуда не делась, просто она вынесена в контактную группу Power и отвечает за сброс контроллера (работает в режиме -RESET).
  • Ножки PB6 и PB7 используются в режимах XTAL1 и XTAL2 и подключены к внешнему кварцевому резонатору.

Итого, на Arduino UNO реально доступно 20 пинов:

  • На порту B – 6 бит
  • На порту C – 6 бит
  • На порту D – 8 бит

Из них ножки PD0 и PD1 при включении и начальной инициализации Arduino используются в качестве COM-порта, Adrduino пытается определить наличие сигнала на этих пинах, чтобы при необходимости переключиться в режим прошивания. Поэтому данне пины не следует использовать в тех сигнальных линиях самодельных устройств, которые должны работать сразу после включения.

ATmega8A, комплект для разработки ATmega8, доставка по всему миру

Комплект для разработки ATmega8a основан на нашей 28-контактной плате для разработки, которая совместима со многими микроконтроллерами Atmel AVR. Этот комплект представляет собой простой и недорогой способ начать работу с микроконтроллерами.

В комплект входят макетная плата, микроконтроллер Atmega8a, внешний кристалл с вспомогательными конденсаторами, детали фильтра AVCC, 10-контактный разъем ISP, детали блока питания и многое другое. Полный список см. в разделе «Что включено» ниже.

Микроконтроллер Atmel Atmega8a заменяет atmega8, производство которого было прекращено в 2008 году. Это 8-разрядный микроконтроллер с 8 КБ флэш-памяти, 1 КБ ОЗУ и 512 байт EEPROM. Он имеет 23 линии ввода-вывода, 3 канала ШИМ и 6-канальный 10-разрядный аналого-цифровой преобразователь. Он оснащен двумя 8-битными таймерами, каждый из которых имеет отдельные предварительные делители и режимы сравнения. Кроме того, он имеет один 16-битный таймер с отдельным предварительным делителем, режимом сравнения и захвата. Я мог бы продолжать, но достаточно сказать, что Atmega8A — это многофункциональный и очень универсальный микроконтроллер.

Макетная плата имеет размеры 127 x 94 мм (5″ x 3,7″) и соответствует форм-фактору большого размера Protostack. Он имеет 6 монтажных отверстий и может быть сложен с другими большими, средними и маленькими досками. Он изготовлен из качественной подложки FR4 толщиной 1,6 мм и использует 1 унцию меди на квадратный фут. Все отверстия сквозные и обработаны бессвинцовым HASL. На плате предусмотрены места для:

  • 28-контактного микроконтроллера
  • Фильтр AVCC
  • Внешний кварцевый генератор и вспомогательные конденсаторы
  • Подтягивающий резистор (10 кОм)
  • Переключатель сброса
  • 10-контактный разъем ISP (стандартная 10-контактная распиновка ICSP)
  • 6-контактный разъем ISP (стандартная 6-контактная распиновка ICSP)
  • Двухрядная область для разъемов IDC, разъемов USB или других двухрядных компонентов
  • Большая площадка для прототипирования
  • Шина питания
  • VCC и
  • Земля шины питания.

Плата поддерживает множество конфигураций блоков питания, включая

  • Регулятор L7805 с бочкообразным разъемом
  • Регулятор L7805 с поляризованным разъемом
  • Регулятор L7805 с клеммной колодкой
  • Регулятор LD1117 с цилиндрическим разъемом
  • Регулятор LD1117 с поляризованным разъемом
  • Регулятор LD1117 с клеммной колодкой
  • Заголовок стека, подающий питание от другой платы в многоплатном стеке
  • Регулируемая мощность через бочкообразный разъем
  • Регулируемая мощность через поляризованный разъем
  • Регулируемая мощность через клеммную колодку
  • CR2032 Батарейный зажим припаян к плате

Все эти параметры описаны в Руководстве пользователя в разделе 4.6.

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

Хотя многие AVR-программаторы будут работать с этой платой, мы рекомендуем USBASP AVR Programmer.

Входит в каждый комплект
Номер детали Описание Количество
ПБ-МС-АВР28 28-контактная отладочная плата AVR 1
CN-IC-2803 Гнездо для ИС, 28 контактов, 7,62 мм (0,3 дюйма) 1
IC-ATMEGA8A-PU ATMEGA8A-PU Микроконтроллер Atmel 8 Bit 8K AVR 1
ПА-РИ-МФК1К Резистор – металлическая пленка 1/4 Вт – 1K 1
ЛЭ-5М-ЙЕ Светодиод общего назначения, 5 мм, желтый 1
CN-DC-21M Гнездо постоянного тока 2,1 x 5,5 мм 1
СК-ДИ-1Н4004 1N4004 Выпрямительный диод общего назначения 1 А 1
СК-ВР-L7805 L7805 Линейный регулятор напряжения +5 В 1
ПА-ПТС-500 Самовосстанавливающийся предохранитель PPTC — 72 В, 500 мА (RXEF050) 1
PA-CA-EL47U Конденсатор электролитический 25 В 47 мкФ 1
ПА-КА-EL100U Конденсатор электролитический 25 В 100 мкФ 1
CN-ID-MR10 Штекерный разъем IDC (закрытая колодка), 10 контактов, выводы под прямым углом 1
ПА-РИ-МФК10К Резистор – металлическая пленка 1/4 Вт – 10 кОм 1
SW-TM-SPST Мгновенный тактильный микропереключатель SPST 1
PA-CY-16M Резонатор 16 МГц в корпусе HC/49S со сквозными отверстиями 1
ПА-КА-КА22П 22pF 100V Керамический осевой конденсатор с полимерным покрытием 2
ПА-КА-CR100N Конденсатор – керамический с полимерным покрытием, 50 В, 100 нФ 3
ПА-ИН-AX10U Катушка индуктивности (дроссель) – 10 мкГн, осевые выводы 1
  • 28-контактная плата AVR Техническое описание
  • 28-контактная плата AVR Руководство пользователя
  • ATMEGA8A Лист данных

Схема контактов ATmega8 | Блок-схема и описание ATmega8

— Реклама —

AVR – это семейство микроконтроллеров, разработанных Atmel, начиная с 1996 года. Это модифицированные 8-битные однокристальные микроконтроллеры RISC с гарвардской архитектурой. Ядро Atmel AVR сочетает в себе богатый набор инструкций с 32 рабочими регистрами общего назначения. Все 32 регистра напрямую подключены к арифметико-логическому устройству (ALU), что позволяет получить доступ к двум независимым регистрам в одной инструкции, выполняемой за один такт. Полученная в результате архитектура более эффективна в коде, обеспечивая при этом пропускную способность в десять раз выше, чем у обычных микроконтроллеров CISC. Здесь мы рассмотрим схему контактов ATmega8, блок-схему, спящий режим и функции. Но прежде чем говорить о схеме выводов ATmega8, давайте сначала рассмотрим блок-схему ATmega8.

Блок-схема ATmega8.

Блок-схема ATmega8. рабочих регистров, три гибких таймера/счетчика с режимами сравнения, внутренними и внешними прерываниями, последовательный программируемый USART, двухпроводной последовательный интерфейс с байтовой ориентацией, 6-канальный АЦП (восемь каналов в корпусах TQFP и QFN/MLF) с 10-битным точность, программируемый сторожевой таймер с внутренним генератором, последовательный порт SPI и пять программно выбираемых режимов энергосбережения.

Особенности

  • Расширенная архитектура RISC
    • 130 эффективных инструкций — самое быстрое выполнение цикла за один такт
    • 32 × 8 рабочих регистров общего назначения
    • Полностью статическая операция
    • Пропускная способность до 16MIPS на частоте 16 МГц
    • Встроенный двухтактный умножитель
  • Сегменты энергонезависимой памяти высокой надежности
    • 8 Кбайт внутрисистемной самопрограммируемой флэш-памяти программ
    • 512 байт EEPROM
    • 1 Кбайт внутренней SRAM
    • Циклы записи/стирания: 10 000 Flash/100 000 EEPROM
    • Сохранение данных: 20 лет при 85°C/100 лет при 25°C (1)
    • Дополнительный раздел кода загрузки с независимыми битами блокировки
    • Внутрисистемное программирование с помощью встроенной программы загрузки
    • Истинная операция чтения при записи
    • Блокировка программирования для безопасности программного обеспечения
  • Периферийные функции
    • Два 8-разрядных таймера/счетчика с отдельным предделителем, один режим сравнения
    • Один 16-разрядный таймер/счетчик с отдельным предделителем, режимом сравнения и режимом захвата
    • Счетчик реального времени с отдельным генератором
    • Три канала ШИМ
    • 8-канальный АЦП в корпусах TQFP и QFN/MLF (восемь каналов, точность 10 бит)
    • 6-канальный АЦП в корпусе PDIP (шесть каналов, точность 10 бит)
    • Байт-ориентированный двухпроводной последовательный интерфейс
    • Программируемый последовательный USART
    • Ведущий/ведомый последовательный интерфейс SPI
    • Программируемый сторожевой таймер с отдельным встроенным генератором
    • Встроенный аналоговый компаратор
  • Специальные функции микроконтроллера
    • Сброс при включении питания и программируемое обнаружение отключения питания
    • Внутренний калиброванный RC-генератор
    • Внешние и внутренние источники прерываний
    • Пять режимов сна: бездействие, шумоподавление АЦП, энергосбережение, отключение питания и режим ожидания
  • Ввод/вывод и пакеты
    • 23 программируемых линии ввода/вывода
    • 28-контактный PDIP, 32-контактный TQFP и 32-контактный QFN/MLF
  • Рабочее напряжение
    • 2,7–5,5 В (ATmega8L)
    • 4,5–5,5 В (ATmega8)
  • Классы скорости
    • 0 – 8 МГц (ATmega8L)
    • 0 – 16 МГц (ATmega8)
  • Потребляемая мощность при 4МГц, 3В, 25С
    • Активный: 3,6 мА
    • Режим ожидания: 1,0 мА
    • Режим отключения питания: 0,5 мкА

Рассмотрим подробнее распиновку ATmega8.

ATmega8 Схема контактов и описание

Схема контактов ATmega8

— Реклама —

Подробное описание схемы выводов ATmega8:

VCC : Цифровое напряжение питания.
GND : Земля.
Порт B (PB7 …PB0) XTAL1/XTAL2/TOSC1/TOSC2

Порт B — это 8-разрядный двунаправленный порт ввода-вывода с внутренними нагрузочными резисторами (выбирается для каждого бита). Выходные буферы порта B имеют симметричные характеристики возбуждения с высокой пропускной способностью как приемника, так и истока. В качестве входов выводы порта B, на которые извне подается низкий уровень, будут источником тока, если активированы подтягивающие резисторы. Выводы порта B находятся в тройном состоянии, когда состояние сброса становится активным, даже если часы не работают.

Порт C (PC5…PC0)

Порт C — это 7-битный двунаправленный порт ввода-вывода с внутренними подтягивающими резисторами (выбирается для каждого бита). Выходные буферы порта C имеют симметричные характеристики возбуждения с высокой пропускной способностью как приемника, так и истока. В качестве входов выводы порта C, на которые извне подается низкий уровень, будут источником тока, если активированы подтягивающие резисторы. Выводы порта C находятся в тройном состоянии, когда состояние сброса становится активным, даже если часы не работают.

ПК6/СБРОС

Если запрограммирован предохранитель RSTDISBL, PC6 используется как контакт ввода/вывода. Обратите внимание, что электрические характеристики PC6 отличаются от характеристик других контактов порта C.

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

Порт D (PD7…PD0)

Порт D — это 8-битный двунаправленный порт ввода-вывода с внутренними подтягивающими резисторами (выбирается для каждого бита). Выходные буферы порта D имеют симметричные характеристики возбуждения с высокой пропускной способностью как приемника, так и истока. В качестве входов контакты порта D, на которые извне подается низкий уровень, будут источником тока, если активированы подтягивающие резисторы. Выводы порта D находятся в тройном состоянии, когда состояние сброса становится активным, даже если часы не работают.

СБРОС

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

Vcc

Vcc — вывод напряжения питания для аналого-цифрового преобразователя, порта C (3…0) и АЦП (7…6). Он должен быть внешне подключен к Vcc, даже если АЦП не используется. Если используется АЦП, его следует подключить к Vcc через фильтр нижних частот. Обратите внимание, что порт C (5…4) использует цифровое напряжение питания, Vcc.

ARef

ARef — это аналоговый эталонный контакт аналого-цифрового преобразователя. ADC7…6 (только для корпусов TQFP и QFN/MLF) В корпусах TQFP и QFN/MLF ADC7…6 служат аналоговыми входами аналого-цифрового преобразователя. Эти выводы питаются от аналогового источника питания и служат 10-битными каналами АЦП.

В режиме ожидания ЦП останавливается, в то время как SRAM, таймер/счетчики, порт SPI и система прерываний продолжают функционировать. В режиме отключения питания содержимое регистра сохраняется, но осциллятор замораживается, отключая все остальные функции микросхемы до следующего прерывания или аппаратного сброса. В режиме энергосбережения асинхронный таймер продолжает работать, позволяя пользователю поддерживать базу таймера, пока остальная часть устройства находится в спящем режиме. Режим шумоподавления АЦП останавливает ЦП и все модули ввода-вывода, кроме асинхронного таймера и АЦП, чтобы свести к минимуму шум переключения во время преобразования АЦП. В режиме ожидания кварцевый/резонаторный генератор работает, в то время как остальная часть устройства находится в спящем режиме. Это обеспечивает быстрый запуск в сочетании с низким энергопотреблением.

Микроконтроллер работает в 5 спящих режимах.

Режим энергосбережения : Используется, когда счетчик/таймер работает асинхронно. В основном этот режим используется для экономии энергопотребления микроконтроллера.

Режим ожидания : Останавливает работу ЦП, но разрешает работу АЦП, TWI, SPI и прерывает систему и сторожевой таймер. Это достигается установкой битов SM0-SM2 флага регистра микроконтроллера в ноль.

Режим отключения питания : Включает внешние прерывания, 2-проводной последовательный интерфейс и сторожевой таймер при отключении внешнего генератора. Он останавливает все сгенерированные часы.

Режим шумоподавления АЦП : Останавливает центральный процессор, но разрешает работу АЦП, таймера/счетчика и внешних прерываний.

Режим ожидания : В этом режиме может работать только генератор, замедляя все остальные операции микроконтроллера.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *