Настройка программ

ATTiny2313-дешевый и доступный. Подключаем кнопку к микроконтроллеру ATtiny2313, простая программа Что мы имеем на борту у этого чипа из периферии

ATTiny2313-дешевый и доступный. Подключаем кнопку к микроконтроллеру ATtiny2313, простая программа Что мы имеем на борту у этого чипа из периферии

Принципиальная схема программатора на LPT порт показана на рисунке. В качестве шинного формирователя используйте микросхему 74AC 244 или 74HC244 (К1564АП5), 74LS244 (К555АП5) либо 74ALS244 (К1533АП5).

Светодиод VD1 индицирует режим записи микроконтроллера,

светодиод VD2 - чтения,

светодиод VD3 - наличие питания схемы.

Напряжение, необходимое для питания схема берёт с разъёма ISP, т.е. от программируемого устройства. Эта схема является переработанной схемой программатора STK200/300 (добавлены светодиоды для удобства работы), поэтому она совместима со всеми программами программаторов на PC, работающих со схемой STK200/300. Для работы с этим программатором используйтепрограмму CVAVR

Программатор можно выполнить на печатной плате и поместить её в корпус разъёма LPT, как показано на рисунках:




Для работы с программатором удобно использовать удлинитель LPT порта, который несложно изготовить самому (к примеру, из кабеля Centronix для принтера), главное "не жалеть" проводников для земли (18-25 ноги разъёма) или купить. Кабель между программатором и программируемой микросхемой не должен превышать 20-30 см.

Итак, у нас есть микроконтроллер ATtiny2313, LPT порт (обязательно нужен железный, никакие USB-2-LPT не работают), несколько проводов (длиной не больше 10 см) и разумеется паяльник. Лучше, чтобы был разъём DB - 25M (папа), с его помощью будет гораздо удобней подсоединять микроконтроллер, но можете обойтись и без него. Припаиваете провода к выводам 1, 10, 17, 18, 19, 20 вашего микроконтроллера. Получится что то вроде этого, как на фотографии:

Затем, в случае если имеется разъём DB-25M, то припаяйте провода к нему в соответствии с таблицей, которая показана ниже. А если отсутствует, тогда просто втыкайте провода в разъём на компе.

Здесь делали без разъёма (просто под рукой были лишь только мамы), и вот что из этого вышло:

Здесь LPT порт был вынесен на стол при помощи кабеля длиной в 1.5 м. Кабель обязательно должен быть экранированный, в противном случае будут наводки, помехи и тогда ничего не выйдет. Схема данного устройства программирования микроконтроллера выглядит вот так:

Лучше конечно сделать «правильный» программатор, поскольку так будет проще и порт целее. В данном случае использовался STK200/300. Затем нужна программа PonyProg2000. После того, как программа запустится она «заржёт» прям как настоящий пони:). Для того, чтобы этот звук впредь не напрягал ваши уши нужно в появившемся окне поставить галочку «Disable sound». Нажмите «ОК». Выскочит окно, которое говорит о том, что необходимо откалибровать программу. Компьютеры же бывают разные, и медленные, и быстрые. Нажмите «ОК». Выскочит ещё одно окно, оно говорит, что необходимо произвести настройку интерфейса (какой программатор и куда подключён). Итак, теперь заходите в меню: Setup -> Calibration. В появившемся окне:

Жмите «YES». Пройдёт пара секунд и программа скажет «Calibration OK». Потом заходите в меню: Setup -> Interface Setup. В появившемся окне настраивайте, как это указано на рисунке.

Теперь заходите в меню: Command -> Program Options. В появившемся окне настраивайте, как это указано на рисунке.

Теперь всё готово для программирования! Итак, этапы действий:

  1. Выберите из списка «AVR micro»
  2. Из другого списка нужно выбрать «ATtiny2313»
  3. Теперь загружайте файл прошивки (File -> Open Device File), выбирайте нужный файл, к примеру «rm-1_full.hex».
  4. Жмите кнопку «Launch program cycle». Когда программирование закончится программа скажет «Program successful»
  5. И в завершении нужно запрограммировать так называемые Фьюзы (fuses). Для этого жмите кнопку «Security and Configuration Bits». В появившемся окошке жмите «Read», затем выставите галочки и нажмите «Write».

    ВНИМАНИЕ! В случае если вы не знаете, что значит тот или иной конфигурационный бит, тогда не трогайте его. Вот теперь наш контроллер ATtiny2313 к работе готов!

    Это всё. Всего вам доброго.

AVR RISC архитектура:

RISC (Reduced Instruction Set Computer). Данная архитектура обладает большим набором инструкций, основное количество которых исполняются в 1 машинный цикл. Из этого следует, что по сравнению с предшествующими микроконтроллерами на базе CISC архитектуры (например, MCS51), у микроконтроллеров на RISC быстродействие в 12 раз быстрее.

Или если взять за базу определенный уровень быстродействия, то для выполнения данного условия микроконтроллерам на базе RISC (Attiny2313) необходима в 12 раз меньше тактовая частота генератора, что приводит к значительному снижению энергопотребления. В связи с этим возникает возможность конструирование различных устройств на Attiny2313, с использованием батарейного питания.

Оперативно — Запоминающее Устройство (ОЗУ) и энергонезависимая память данных и программ:

  • 2 кБ самостоятельно программируемой в режиме Flash памяти программы, которая может обеспечить 10 000 повторов записи/стирания.
  • 128 Байт записываемой в режиме EEPROM памяти данных, которая может обеспечить 100 000 повторов записи/стирания.
  • 128 Байт SRAM памяти (постоянное ОЗУ).
  • Имеется возможность использовать функцию по защите данных программного кода и EEPROM.

Свойства периферии:

  1. Микроконтроллер Attiny2313 снабжен восьми разрядным таймер-счетчиком с отдельно устанавливаемым предделителем с максимальным коэффициентом 256.
  2. Так же имеется шестнадцати разрядный таймер-счетчик с раздельным предделителем, схемой захвата и сравнения. Тактироваться таймер – счетчик может как от внешнего источника сигнала, так и от внутреннего.
  3. Два канала. Существует режим работы быстрый ШИМ-модуляции и ШИМ с фазовой коррекцией.
  4. Внутренний аналоговый компаратор.
  5. Сторожевой таймер (программируемый) с внутренним генератором.
  6. Последовательный универсальный интерфейс (USI).

Особые технические показатели Attiny2313:


  • Idle — Режим холостого хода. В данном случае прекращает свою работу только центральный процессор. Idle не оказывает влияние на работу SPI, аналоговый компаратор, аналого-цифровой преобразователь, таймер-счетчик, сторожевой таймер и систему прерывания. Фактически, происходит только остановка синхронизация ядра центрального процессора и флэш-памяти. Возврат в нормальный режим работы микроконтроллера Attiny2313 из режима Idle происходит по внешнему либо внутреннему прерыванию.
  • Power-down — Наиболее экономный режим, при котором микроконтроллер Attiny2313 фактически отключается от энергопотребления. В этом состоянии происходит остановка тактового генератора, выключается вся периферия. Активным остается лишь модуль обработки прерываний от внешнего источника. При обнаружении прерывания микроконтроллер Attiny2313 выходит из Power-down и возвращается в нормальный режим работы.
  • Standby – в этот дежурный режим энергопотребления микроконтроллер переходит по команде SLEE. Это аналогично выключению, с той лишь разницей, что тактовый генератор продолжает свою работу.

Порты ввода — вывода микроконтроллера Attiny2313:

Микроконтроллер наделен 18 выводами ввода – вывода, которые можно запрограммировать исходя из потребностей, возникающих при проектировании конкретного устройства. Выходные буферы данных портов выдерживают относительно высокую нагрузку.

  • Port A (PA2 — PA0) – 3 бита. Двунаправленный порт ввода-вывода с программируемыми подтягивающими резисторами.
  • Port B (PB7 — PB0) – 8 бит. Двунаправленный порт ввода-вывода с программируемыми подтягивающими резисторами.
  • Port D (PD6 — PD0) – 7 бит. Двунаправленный порт ввода-вывода с программируемыми подтягивающими резисторами.

Диапазон питающего напряжения:

Микроконтроллер успешно работает при напряжении питания от 1,8 до 5,5 вольт. Ток потребления зависит от режима работы контроллера:

Активный режим:

  • 20 мкА при тактовой частоте 32 кГц и напряжении питания 1,8 вольт.
  • 300 мкА при тактовой частоте 1 МГц и напряжении питания 1,8 вольт.

Режим энергосбережения:

  • 0,5 мкА при напряжении питания 1,8 вольт.

(3,6 Mb, скачано: 5 958)

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

Первым делом нам нужен программатор, разновидностей программаторов много, какой программатор выбрать?
Есть обычные программаторы в который нужно вставлять микроконтроллер, прошивать, вынимать микроконтроллер и потом вставлять его в нашу плату, чтобы увидеть результат и эту последовательность придется делать первое время сотни раз, этот вариант на мой взгляд не удобный.
Наш микроконтроллер ATtiny2313 поддерживает функцию внутрисхемного программирования ISP (In-System Programming) через SPI порт, этот вариант использования внутрисхемного программирования ISP на мой взгляд самый удобный и быстрый, т.к. микроконтроллер из нашей платы вынимать не нужно после каждой прошивки, можно программировать микроконтроллер сотни раз и сразу же не отключая программатор от компьютера и платы, видеть результат после прошивки микроконтроллера, процесс отладки программного обеспечения радиолюбительского устройства заметно упрощается и сокращается затрачиваемое на это время.
Внутрисхемный программатор ISP можно сделать самому, в интернете есть множество простых схем как это делается через LPT,COM порт, например программатор PonyProg в интернете можно найти схемы как его сделать.

В данной статье будет рассматриваться работа с внутрисхемным ISP программатором для микроконтроллеров AVR (PX-400) он работает через COM порт.
Если у вас нет COM порта в компьютере, нужен будет еще переходник с USB порта на COM порт, переходников таких тоже много разновидностей, я рекомендую переходник с которым я работал: UCON-232S USB to Serial port converter board
Фото программатора PX-400 , переходника UCON-232S USB , Datasheet ATTiny2313

Разберем подробнее все детали данной схемы:
(На всякий случай, все детали, программатор, переходик (с USB на COM порт) я покупал в chipdip.ru)

1 - PBD-20 гнездо на плату 2.54мм 2х10 прямое - Это я сделал для удобства, чтобы проще было проверять сигналы с выводов микроконтроллера, этот пункт можно было не делать.
2 - SCS-20 DIP панель 20 контактов - панель припаиваем к плате, чтобы была возможность заменить микроконтроллер в плате если потребуется,
ATtiny2313-20PU, DIP20, МCU, 5V, 1K-Flash, 12MHz - Микроконтроллер вставляем в DIP панель.
3 - Кварцевый резонатор 4.000 МГц (усечен.) HC-49S - Кварцевый резонатор 4 МГц
4 - Керамический конденсатор К10-17Б имп. 22пФ NPO,5%,0805 - Два керамических конденсатора по 22пФ
5 - 78M05 (+5В, 0.5А) TO220 - Стабилизатор напряжения 5В, подает на микроконтроллер стабилизированное питание не более +5В, в данном случае у меня получилось 4,4В, этого вполне хаватает.
6 - NP-116 штекер питания 1.3х3.4х9.5мм MP-331 (7-0026c) - Штекер питания припаял к старому зарядному устройству от мобильного телефона DC 5.7V/800mA
7 - DS-213 гнездо питания на плату - гдездо питания для штекера NP-116, для удобства подключения питания
8 - IDC-10MS (BH-10), вилка прямая - Вилка для подключения внутрисхемного ISP программатора
9 - Резистор постоянный 0,25Вт 150 Ом - Три резистора по 150 Ом на выводы MISO,SCK,MOSI
10 - Резистор постоянный 0,25Вт 47 Ом - Один резистора 47 Ом на вывод RESET
11 - Кнопка тактовая h=5мм, TC-0103 (TS-A2PS-130) - Кнопка сброса RESET, после нажатия на кнопку программа в микроконтроллере запускается с начала, кнопку можно было не делать.
12 - Светодиод зеленый d=3мм, 2.5В, 2мА - Выполняет функцию индикатора, этот пункт можно было не делать.
13 - Резистор постоянный 0,25Вт 110 Ом - Резистор для светодиода, чтобы на светодиоде было 2В, этот пункт можно было не делать
14 - Два провода подключенные к светодиоду, для проверки сигналов с выводов микроконтроллера, этот пункт можно было не делать
15 - Дип-Рм печатная макетная плата 100х100мм

Пункты 3 и 4 Работают как единое целое, как внешний тактовый генератор,эти пункты можно не делать, если вы не предъявляете высоких требований к точности и стабильности внутреннего RC-Генератора, внутренний RC-Генератор имеет погрешность около 10% и на точность может влиять изменение температуры.

Итак, вы скачали и установили Atmel Studio :
Запускаем Atmel Studio и напишем простейшую программу на языке Си мигание светодиодом:
Нажимаем: New project... \ AVR GCC \ C \ C Executable Project
Указываем папку где сохранить проект и название проекта например Test1 и нажимаем ОК.
Из списка выбираем наш микроконтроллер ATtiny2313 и нажимаем ОК.
Стираем все что появилось в окне и вставляем наш код программы который ниже:

#define F_CPU 4000000L //Указываем частоту нашего внешнего кварца 4 МГц
#include
#include
int main(void)
{
//Устанавливаем все выводы PORTB как выходы
DDRB=0xFF;//Регистр направления передачи информации (1-выход, 0-вход)
while(1)
{
//Регистр данных PORTB (используется для вывода информации)
PORTB=0b00000001;//Подаем 1 на 12 порт МК PB0 - включаем светодиод
PORTB=0b00000000;//Подаем 0 на 12 порт МК PB0 - выключаем светодиод
_delay_ms(1000);//Задержка 1 сек.
}
}

Заходим в меню Build \ Configuration manager \ Active solution configuration \
Выбираем Release , нажимаем Close
Это мы сделали для того, чтобы у нас появилась в проекте папка Release , о которой я расскажу ниже.

Нажимаем F7 , готово, наше приложение откомпилировалось!
Для прошивки микроконтроллера ATtiny2313 нам нужен только один файл с расширением HEX
Он находится в папке нашего проекта: ...
Обратите внимание, файл Test1.hex нуно взять именно из папки Release !
Не перепутайте, т.к. папке Debug лежит тоже файл Test1.hex , но в этом файле еще содержится отладочная информация и из-за этого вы прошить этим файлом не сможете т.к. он обычно бывает большого размера и не поместится в памяти МК.

Файл.hex нашли, теперь нужна программа для прошивки микроконтроллера ATtiny2313, программ таких много, но мы воспользуемся программой: Avr-Osp II
Скачать:

Подключаем программатор к нашей схеме, на схему обязательно подаем питание!

Запускаем программу Avr-Osp II , указываем в разделе FLASH путь к файлу...\Test1\Test1\Release\Test1.hex ,устанавливаем галочки в программе и нажимаем кнопку Program вот и все, микроконтроллер ATtiny2313 прошит!

В чем приемущество внутрисхемных программаторов ISP, теперь не отключая провода от нашей схемы, можно делать изменения в программе, и как описывалось выше прошивать микроконтроллер и сразу видеть результат.

Вопросы и комментарии оставляйте пожалуйста на нашем форуме


Характеристики:

  • AVR RISC архитектура
  • AVR - высококачественная и низкопотребляющая RISC архитектура
    120 команд, большинство которых выполняется за один тактовый цикл
    32 8 битных рабочих регистра общего применения
    Полностью статическая архитектура
  • ОЗУ и энергонезависимая память программ и данных
    2 КБ самопрограммируемой в системе Flash памяти программы, способной выдержать 10 000 циклов записи/стирания
    128 Байт программируемой в системе EEPROM памяти данных, способной выдержать 100 000 циклов записи/стирания
    128 Байт встроенной SRAM памяти (статическое ОЗУ)
    Программируемая защита от считывания Flash памяти программы и EEPROM памяти данных
  • Характеристики периферии
    Один 8- разрядный таймер/счетчик с отдельным предделителем
    Один 16-разрядный таймер/счетчик с отдельным предделителем, схемой сравнения, схемой захвата и двумя каналами ШИМ
    Встроенный аналоговый компаратор
    Программируемый сторожевой таймер со встроенным генератором
    USI - универсальный последовательный интерфейс
    Полнодуплексный UART
  • Специальные характеристики микроконтроллера
    Встроенный отладчик debugWIRE
    Внутрисистемное программирование через SPI порт
    Внешние и внутренние источники прерывания
    Режимы пониженного потребления Idle, Power-down и Standby
    Усовершенствованная схема формирования сброса при включении
    Программируемая схема обнаружения кратковременных пропаданий питания
    Встроенный откалиброванный генератор
  • Порты ввода - вывода и корпусное исполнение
    18 программируемых линий ввода - вывода
    20 выводной PDIP, 20 выводной SOIC и 32 контактный MLF корпуса
  • Диапазон напряжения питания
    от 1.8 до 5.5 В
  • Рабочая частота
    0 - 16 МГц
  • Потребление
    Активный режим:
    300 мкА при частоте 1 МГц и напряжении питания 1.8 В
    20 мкА при частоте 32 кГц и напряжении питания 1.8 В
    Режим пониженного потребления
    0.5 мкА при напряжении питания 1.8 В


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

ATtiny2313 - низкопотребляющий 8 битный КМОП микроконтроллер с AVR RISC архитектурой. Выполняя команды за один цикл, ATtiny2313 достигает производительности 1 MIPS при частоте задающего генератора 1 МГц, что позволяет разработчику оптимизировать отношение потребления к производительности.

AVR ядро объединяет богатую систему команд и 32 рабочих регистра общего назначения. Все 32 регистра непосредственно связаны с арифметико-логическим устройством (АЛУ), что позволяет получить доступ к двум независимым регистрам при выполнении одной команды. В результате эта архитектура позволяет обеспечить в десятки раз большую производительность, чем стандартная CISC архитектура.

ATtiny2313 имеет следующие характеристики: 2 КБ программируемой в системе Flash память программы, 128 байтную EEPROM память данных, 128 байтное SRAM (статическое ОЗУ), 18 линий ввода - вывода общего применения, 32 рабочих регистра общего назначения, однопроводный интерфейс для встроенного отладчика, два гибких таймера/счетчика со схемами сравнения, внутренние и внешние источники прерывания, последовательный программируемый USART, универсальный последовательный интерфейс с детектором стартового условия, программируемый сторожевой таймер со встроенным генератором и три программно инициализируемых режима пониженного потребления. В режиме Idle останавливается ядро, но ОЗУ, таймеры/счетчики и система прерываний продолжают функционировать. В режиме Power-down регистры сохраняют свое значение, но генератор останавливается, блокируя все функции прибора до следующего прерывания или аппаратного сброса. В Standby режиме задающий генератор работает, в то время как остальная часть прибора бездействует. Это позволяет очень быстро запустить микропроцессор, сохраняя при этом в режиме бездействия мощность.

Прибор изготовлен по высокоплотной энергонезависимой технологии изготовления памяти компании Atmel. Встроенная ISP Flash позволяет перепрограммировать память программы в системе через последовательный SPI интерфейс или обычным программатором энергонезависимой памяти. Объединив в одном кристалле 8- битное RISC ядро с самопрограммирующейся в системе Flash памятью, ATtiny2313 стал мощным микроконтроллером, который дает большую гибкость разработчика микропроцессорных систем.

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