2313 attiny: ATtiny2313-20PU, Микроконтроллер 8-Бит, AVR, 20МГц, 2КБ Flash [DIP-20], Microchip

Электронный термометр на Attiny 2313 с LCD дисплеем / Блог им. Jman / Сообщество EasyElectronics.ru

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

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

Звезды совпали для создания устройства выходного дня, новогодние праздники на носу, в загашнике лежит новая Attiny 2313 в DIP корпусе, DHT — 22 и 8×2 LCD 1602 дисплей. Взял я breadboard, быстро все соединил и принялся писать прошивку. Кстати для отладки я использовал LCD 16 x 2, так как у него пины расположены в один ряд и его проще соединять на монтажной плате. Я изначально хотел сделать работу от двух сенсоров внутренний — DHT22, внешний DS18B20, но памяти программ катастрофически не хватало, пришлось отказаться от идеи с внешним датчиком. В итоге написана прошивка только для работы с DHT — 22. Микроконтроллер тактируется от внутреннего осциллятора на 8МГц, но кто же запрещает внешний кварцевый резонатор? Фьюз биты по умолчанию, главное выбрать осциллятор и частоту 8МГц. Вот так выглядела отладочная модель:



Но постоянно загружать правки программы в реальное железо мне быстро надоело и я создал компьютерную модель в программе Proteus 8.

Схема устройства:

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

Печатную плату я пока не проектировал, начал сборку на распаячной плате, так как в этом проекте минимум соединений. Микропрограмма написана на языке Си в Atmel Studio 7. Исходный код и файл симуляции схемы можно найти в моем репозитории на GitHub.

Устройство собрано на скорую руку на макетной плате навесным монтажом.

Далее все было засунуто в корпус Z-70:

Устройство питается от внешнего блока питания-«кубика» с выходным напряжением 5В, разъем питания — mini USB.

Этот проект сейчас также расположен на площадке Hackaday.io.

ATtiny2313-20PU Atmel от 112 грн

ATTINY2313-20PU
Производитель: Microchip Technology / Atmel
8-bit Microcontrollers — MCU 2kB Flash 0.128kB EEPROM 18 I/O Pins
под заказ 85 шт

срок поставки 8-21&nbspдня (дней)
1+ 99.37 грн
18+ 89.63 грн
108+ 76.23 грн
ATTINY2313-20PU
Производитель:
Микросхема
под заказ 10 шт
срок поставки 3-5&nbspдня (дней)
ATTINY2313-20PU
Производитель: MCRCH

под заказ 5 шт
срок поставки 16-23&nbspдня (дней)
3+ 173.65 грн
4+ 158.35 грн
18+ 136.59 грн
90+ 129.73 грн
ATTINY2313-20PU
Производитель:
ATTINY2313-20PU 8-bit microcontroller with 2K bytes in-system programmable flash. Speed 20 MHz. Power supply 2.7 — 5.5 V. DIP-20
товар отсутствует, Вы можете сделать запрос добавив товар в корзину
ATTINY2313-20PU
Производитель:
ATTINY2313-20PU 8-bit microcontroller with 2K bytes in-system programmable flash. Speed 20 MHz. Power supply 2.7 — 5.5 V. DIP-20
товар отсутствует, Вы можете сделать запрос добавив товар в корзину
ATTINY2313-20PU
Производитель:
ATTINY2313-20PU 8-bit microcontroller with 2K bytes in-system programmable flash. Speed 20 MHz. Power supply 2.7 — 5.5 V. DIP-20
товар отсутствует, Вы можете сделать запрос добавив товар в корзину
ATTINY2313-20PU
Производитель: Microchip Technology
Description: IC MCU 8BIT 2KB FLASH 20DIP
Number of I/O: 18
Part Status: Active
Supplier Device Package: 20-PDIP
Peripherals: Brown-out Detect/Reset, POR, PWM, WDT
Connectivity: SPI, UART/USART
Voltage — Supply (Vcc/Vdd): 2.7V ~ 5.5V
Core Size: 8-Bit
Core Processor: AVR
EEPROM Size: 128 x 8
Program Memory Type: FLASH
Oscillator Type: Internal
Operating Temperature: -40°C ~ 85°C (TA)
RAM Size:
128 x 8
Program Memory Size: 2KB (1K x 16)
Speed: 20MHz
Mounting Type: Through Hole
Package / Case: 20-DIP (0.300″, 7.62mm)
Packaging: Tube
товар отсутствует, Вы можете сделать запрос добавив товар в корзину
ATTINY2313-20PU
Производитель: MICROCHIP (ATMEL)
Material: ATTINY2313-20PU 8-bit AVR family
товар отсутствует, Вы можете сделать запрос добавив товар в корзину
ATTINY2313-20PU
Производитель: Microchip Technology
MCU 8-bit AVR RISC 2KB Flash 3.3V/5V 20-Pin PDIP W Tube
товар отсутствует, Вы можете сделать запрос добавив товар в корзину
ATTINY2313-20PU
Производитель: Microchip Technology
MCU 8-bit AVR RISC 2KB Flash 3.3V/5V 20-Pin PDIP W Tube
товар отсутствует, Вы можете сделать запрос добавив товар в корзину
ATTINY2313-20PU
Производитель: MICROCHIP
Description: MICROCHIP — ATTINY2313-20PU — 8 Bit MCU, Low Power High Performance, AVR ATtiny Family ATtiny23 Series Microcontrollers, 20 MHz
MCU Family: AVR ATtiny
RAM Memory Size: 128
Supply Voltage Max: 5.5
Product Range: AVR ATtiny Family ATtiny23 Series Microcontrollers
MSL:
Supply Voltage Min: 2.7
Automotive Qualification Standard:
MCU Case Style: DIP
No. of Pins: 20
Embedded Interface Type: I2C, SPI, UART
MCU Series: ATtiny23
Program Memory Size: 2
No. of I/O’s: 18
CPU Speed: 20
SVHC: No SVHC (08-Jul-2021)
товар отсутствует, Вы можете сделать запрос добавив товар в корзину
ATTINY231320PU
Производитель: ATMEL
под заказ 200 шт
срок поставки 14-28&nbspдня (дней)
ATTINY2313-20PU
Производитель: ATMEL
2009+
под заказ 1 шт

срок поставки 14-28&nbspдня (дней)
ATTINY2313-20PU
Производитель: Microchip Technology
MCU 8-bit AVR RISC 2KB Flash 3.3V/5V 20-Pin PDIP W Tube
товар отсутствует, Вы можете сделать запрос добавив товар в корзину
ATTINY231320PU
Производитель:
под заказ 200 шт
срок поставки 14-28&nbspдня (дней)

Электронный телеграфный ключ на Attiny 2313

Ярослав Рахматуллаев
yaropolkow (at) gmail.com

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


Работает схема следующим образом. После подачи питания, контроллер постоянно опрашивает со скоростью 500 000 раз в секунду все контакты по очереди. Кроме клавиши «Reset», естественно. При замыкании ключа на точки или тире он начинает выдавать соответствующие пачки импульсов. Начальная скорость передачи знаков, при загрузки контроллера составляет около 30 знаков минуту. Регулировка скорости передачи осуществляется клавишами S3-S4. Для этого надо нажать и удерживать соответствующую клавишу. Скорость начнет плавно регулироваться. Диапазон настройки скорости составляет от 30 до 240 знаков в минуту. На практике скорость регулируется до бесконечности. Например, на минимальной скорости, длина точки составляет 13 секунд. На максимальной, скорость передачи составляет 900 точек в секунду. Понятно, что это и не нужно, но на максимальном режиме данный ключ можно использовать в качестве генератора 1 кгц.

Для удобства оператора, клавишей S5 включается автоматическая передача CQ. Вид текста: «CQ CQ CQ DE», далее оператор подставляет свой позывной.

Для того, что б сохранить текущую скорость в энергонезависимую память, нужно нажать клавишу S6. Для того, что б извлечь, например, при новом включении контроллера, кнопку «Read»

Данная схема работает на частоте 4 Мгц. От внутреннего генератора. В качестве контроля применяется Бипер уже с готовой заданной частотой. Транзистор КТ 815 с любой буквой. Следует учесть если будет применятся реле, то в включить защитный диод на обмотку реле. Питание 5 вольт, желательно через микросхему серией 7805. Для себя я сделал сенсорный телеграфный манипулятор. Рис 2.


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

Fuse Биты надо поставить следующим образом

CKSEL3 — Есть галочка
CKSEL2 – Есть галочка
CKSEL1 — Нет галочки
CKSEL0 – Есть галочка.

Остальные без изменения.

Программа приведена ниже. Она как и в hex расширении так и в aps. Жалобы принимаются по адресу Email

С уважением Ярослав.

Ссылки для скачивания:
  1. Текст исходной прошивки в формате MS Word
  2. Исходная прошивка для ассемблера

 

 

Описание микроконтроллера ATTiny 2313, Исследование аналого-цифрового преобразователя с помощью Elvis

Микросхема ATTiny 2313 представляет собой восьмиразрядный микроконтроллер с внутренне программируемой Flash-памятью размером 2 Кбайт.

Общие сведения:

Использует AVR RISC архитектуру

AVR — это высокое быстродействие и специальная RISC архитектура с низким потреблением

120 мощных инструкций, большинство из которых выполняется за один машинный цикл

32 восьмиразрядных регистра общего назначения

Полностью статическая организация (минимальная частота может быть равна 0)

До 20 миллионов операций в секунду (MIPS/Sec) при тактовой частоте 20 МГц

Сохранение программ и данных при выключенном питании:

2 Кбайт встроенной программируемой Flash-памяти, до 10000 циклов записи/стирания

128 байт встроенной программируемой энергонезависимой памяти (EEPROM)

До 100000 циклов записи/стирания

128 байт внутреннего ОЗУ (SRAM)

Программируемые биты защиты от чтения и записи программируемой памяти и EEPROM

Периферийные устройства:

Один 8-разрядный таймер/счетчик с программируемым предделителем и режимом совпадения

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

Четыре канала ШИМ (PWM)

Встроенный аналоговый компаратор

Программируемый сторожевой таймер и встроенный тактовый генератор

Универсальный последовательный интерфейс USI (Universal Serial Interface)

Полнодуплексный USART

Особенности микроконтроллера:

Специальный вход debug WIRE для управления встроенной системой отладки

Внутрисистемный программируемый последовательный интерфейс SPI

Поддержка как внешних, так и внутренних источников прерываний

Три режима низкого потребления (Idle, Power-down и Standby)

Встроенная система аппаратного сброса при включении питания

Внутренний перестраиваемый тактовый генератор

Цепи ввода — вывода и корпус

18 программируемых линий ввода — вывода

Три вида корпусов:

PDIP — 20 контактов

SOIC — 20 контактов

QFN/MLF — 20 контактных площадок

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

1.8 — 5.5 Вольт

Диапазон частот тактового генератора:

0 — 10 МГц при напряжении 2.7 — 5.5 Вольт

0 — 20 МГЦ при напряжении 4.5 — 5.5 Вольт

Ток потребления в активном режиме:

1 МГц, 1.8 Вольт, 230 мкА

32 МГц, 1.8 Вольт, 20 мкА (с внутренним генератором)

Ядро AVR имеет большой набор инструкций для работы с 32 регистрами общего назначения. Все 32 регистра непосредственно связанны с арифметико-логическим устройством (ALU), которое позволяет выполнять одну команду для двух разных регистров за один такт системного генератора. Такая архитектура позволила достигнуть производительности в десять раз больше, чем у традиционных микроконтроллеров, построенных по CISC — технологии.

Микросхема ATTiny 2313 имеет следущее особенности:

2 Кбайт системной программируемой Flash — памяти программ

128 байт EEPROM

128 байт SRAM (ОЗУ)

18 линий ввода — вывода (I/O)

32 рабочих регистра

Однопроводной интерфейс для внутрисхемной отладки

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

Поддержка внешних и внутренних прерываний

Последовательный программируемый USART — порт

Универсальный последовательный интерфейс с детектором начала передачи

Программируемый сторожевой таймер с внутренним генератором

Три программно изменяемых режима энергосбережения

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

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

Микросхема изготовлена с использованием высокоточной технологией фирмы «Atmel». Внутренняя Flash — память программ может быть перепрограммирована при помощи ISP — интерфейса без извлечения микроконтроллера из платы. Объединение 8 — разрядного RISC процессора с внутрисистемной перепрограммируемой Flash памятью на одном кристалле делают микросхему ATTiny 2313 мощным средством, которое обеспечивает очень гибкие и недорогие решения многих прикладных задач управления.

Для микросхемы ATTiny 2313, как и для всех остальных микросхем серии AVR, существует полный набор документации и инструментальных программ:

Компиляторы с языка Си

Микроассемблеры

Программные отладчики/имитаторы

Отладочные комплекты

Рисунок 16 — назначение выводов микросхемы ATTiny 2313

Таблица 3 — Описание выводов микросхемы ATTiny 2313

VCC

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

GND

Общий провод

PORT A

(PA2…PA0)

Порт А — трехразрядный двунаправленный порт ввода — вывода.

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

После системного сброса все выводы порта А переходят в высокоимпедансное состояние (режим ввода без нагрузочного резистора) даже в том случае, если системный генератор не работает.

PORT B

(PB7…PB0)

Порт В — восьмиразрядный двунаправленный порт ввода — вывода

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

После системного сброса все выводы порта В переходят в высокоимпедансное состояние (режим ввода без нагрузочного резистора) даже в том случае, если системный генератор не работает.

Port D

(PD6…PD0)

Порт D — семиразрядный двунаправленный порт ввода — вывода.

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

После системного сброса все выводы порта D переходят в высокоимпедансное состояние (режим ввода без нагрузочного резистора) даже в том случае, если системный генератор не работает.

RESET

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

XTAL1

Инвертирующий вход для кварцевого резонатора, вход внешнего генератора.

Вход XTAL1 имеет альтернативную функцию. Он может использоваться как линия PA0

XTAL2

Вход на внешний резонатор.

Вывод XTAL2 имеет альтернативную функцию. Он может использоваться как линия PA1

Простой таймер с индикацией на ATtiny2313

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

Схема действительно простая и кроме программирования МК никакой сложности не представляет, да программирование, если вы хоть раз это делали, тоже не проблема вообще.
В устройстве используется микроконтроллер — Attiny2313, индикатор с общим анодом. Транзистор можно заменить на любой другой маломощный npn транзистор. Для питания схемы очень удобно использовать одну банку любого Li-ion акб и конечно можно дополнить схему контроллером заряда от USB. Энкодер (ENC) используется механический, который можно выдрать из любой мышки с колесом.


Управление таймером:
  • При кратковременном нажатии на кнопку S1 таймер включается и выключается.
  • Время выбирается, прокруткой энкодера, в диапазоне от 1 до 99 минут. В процессе отсчета времени издается звуковой сигнал, напоминающий быстрое тиканье часов, по завершению звучит мелодия, и затем – сигнал, звучит пока таймер не отключат.
  • При длительном нажатии на кнопку S1 – можно выбрать 3 команды, при этом, на экране отобразится «OF», «PE», «CE».
  • «OF» — выключит таймер,
  • «РЕ» — начнет отсчет времени со значения, которое было задано в последний раз,
  • «СЕ» — секундомер, точнее «минутомер» — просто отсчитывает количество минут, которое прошло после запуска этой команды.

  • При прошивке нужно выставить следующие фьюзы: CKDIV8, SUT1, CKSEL0, CKSEL1.

    И если было упоминание об исполнительном устройстве, то так оно и есть: 19я нога Attiny 2313 может управлять реле, т.е. по окончанию таймером отсчета времени будет отключится/включатся какое-то устройство, включенное через реле, например, свет в туалете)).
    Если звук не нужен, можно убрать цепь «спикера» и транзистор вообще, или поставить тумблер перед динамиком или базой транзистора (фантазия может гулять безгранично) для опционального отключения звуковых эффектов.

    Прошивка

    Для изменения мелодии сигнала есть небольшой мануал (инструкция) и все необходимое для этого.

    Для изменения мелодии

    Для гурманов, можно просто использовать, что-то готовое: например такой:





    Arduino за 1$ / Хабр

    В качестве вступления, я не буду пространно рассказывать о том, как люди, в руках паяльника не державшие, слова «программатор» не знающие, вместе с детьми радостно втыкают провода в разъемы электронного «конструктора» под названием Arduino. И никаким словом не помяну лагерь «хардкорщиков», считающих это баловством и/или надругательством над самой идеологией микроконтроллеров.

    Скажу за себя — мне Arduino нравится. Тем, что можно быстро что-нибудь работающее соорудить. По сути, мне не нравятся только цены. Ну, дорого же. Модуль на порядок дороже использованного в нем микроконтроллера. Такие размышления неоднократно подталкивали меня к тому, чтобы «соскочить», но потом я открывал Aliexpress и заказывал очередную порцию. Китайская версия Arduino Nano — 3-4$. Pro Mini (без USB) — 2-3$.

    Потом стало интересно — а где предел минимальной розничной (или микрооптовой) цены. Но так, чтобы можно было работать, а не искать хаки с целью сэкономить пару байт. Пара вопросов к всемирному разуму, кратчайшее изучение матчасти, решение: «Буду ковыряться с ATTiny, но чтобы с Arduino».

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

    ATtiny 44 ATtiny 84 ATtiny 45 ATtiny 85 Примечание
    Макс. частота, МГц 8 8 8 8 От внутреннего генератора
    RAM, байт 256 512 256 512
    Flash, Кб 4 8 4 8
    I/O выводов 11 11 5 5 RESET не считаем
    Цена, $ 1.66 1.8 1.49 1.69 Розница DigiKey, просто для сравнения

    Ладно, к делу. Рассматривать будем микроконтроллеры ATtiny 44/84 и 45/85. Базовые характеристики приведены в табличке. У меня в качестве подопытных 85-е в DIP-корпусе, с ценою в 1$ за штуку при покупке десятка у китайцев.

    Чего можно добиться?

    На ATTiny 85 можно использовать 5 выводов (RESET не рассматриваем, его полезное использование в случае с Arduino сопряжено с битьем в бубен приличного диаметра). На трех доступен АЦП, на двух — ШИМ. То есть, моя вторая задачка-иллюстрация (там нужно 2 канала АЦП, один ШИМ и один светодиод) уже отлично решается. ATtiny 84 позволяет использовать 11 выводов, но дороже — а у нас спортивное удешевление.

    Как программировать?

    Проще всего — через ISP. В качестве программатора можно использовать плату Arduino, или копеечный ISP-программатор.

    На сцене появляются первые грабли

    Для экспериментов были заказаны ATtiny 85 и, собственно, программатор. Последний уверенно определялся ПК как USB HID устройство. Это плохо, в таком виде гаджет можно использовать с минимальным количеством ПО, Arduino IDE туда не входит. Впрочем, беглое гугление показало — проблема известна и решаема. Есть готовая прошивка, превращающие чудо китайской науки в USBASP.

    Да-да, я беру второй программатор (это было найденное в закромах сомнительное поделие под названием SP300), соединяю его ISP-кабелем с первым, оба втыкаю в USB, ставлю в софте SP300 пункт назначения — ATmega8 ISP, и через долю секунды получаю вожделенный USBASP.

    Arduino IDE

    Для того, чтобы работать с ATtiny, нужно добавить в IDE описания плат (по факту — чипов). Я использовал вот эти. Описания кладутся в папку со скетчами следующим образом: %папка-со-скетчами%\hardware\attiny, там будут каталог Variants и файл boards.txt.

    Материализация вторых граблей

    Устанавливаю чип в «хлебную доску», подключаю к программатору, устанавливаю резистор в 10 КОм (Потенциально лишняя рекомендация, подтягивающий резистор встроен. Но в электромагнитно-шумной среде, как пишут в комментах, в апноуте рекомендуют его ставить, чтобы исключить случайный сброс.) между плюсом питания и выводом RESET (т.к. сигнал сброса низкого уровня). Выбираю в IDE программатор USBASP, пытаюсь прошить bootloader — и тишина. Точнее, AVRDude утверждает, что нет связи с микроконтроллером.

    Ларчик открывается просто, но не совсем очевидно. Дело в том, что «голая» ATtiny не прошивается с настройками AVRDude, используемыми в Arduino IDE. Слишком высокая частота тактирования при ISP-программировании. Более того, эту частоту нельзя указать в настройках IDE.

    Решение: берем AVRDude и прошиваем посредством командной строки фьюзы ATTiny таким образом, чтобы чип тактировался от внутренего генератора с частотой 8 МГц. При этом указываем малую частоту (если быть точным — указывается не частота, а длительность такта) тактирования при ISP-программировании (ключ -B). В итоге, «волшебная строка» выглядит следующим образом:

    avrdude -p t85 -c usbasp -U lfuse:w:0xC2:m -U hfuse:w:0xDF:m -U efuse:w:0xFF:m -B 5
    

    После этого ATtiny 85 нормально прошивается через Arduino IDE. Проверка работоспособности производится с помощью легендарного демонстрационного проекта Blink. Меняем в скетче пин с 13-го на 4-й (это 3-й вывод ATtiny 85), подключаем светодиод и резистор, выполняем загрузку с помощью программатора. Светодиод мигает, цель достигнута.

    Итого

    Делаем вывод, что с микроконтроллерами ATtiny 85 (а также 44, 84, 45) вполне можно работать через Arduino IDE. Желающие могут придти в ужас от того, что код моргания светодиодом бодренько кушает почти килобайт памяти (при 8 доступных).

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

    Источник вдохновения (англ.)

    Мигалка на ассемблере и ATtiny2313

    Для программирования микроконтроллеров существуют два основных языка — это язык Си и Ассемблер. Бывают и другие языки но Си и Ассемблер используются чаще других т.к. их можно использовать для создания программ оптимально использующих ресурсы микроконтроллера. Язык Си более прост в изучении чем Ассемблер, более прост для понимания человеком вообще (на нем можно писать более читабельный код) а также более просто переносим между разными микроконтроллерами и вообще разными устройствами. Ассемблер же не так прост в понимании и хуже переносим т.к. он имеет множество разных команд которые отличаются друг от друга при программировании разных микроконтроллеров и устройств и даже при программировании одного и того же устройства но при использовании разных компиляторов. Однако язык ассемблер дает больше возможностей управлять ресурсами микроконтроллера. Программы написанные на Ассемблере могут быть более оптимальными чем программы на Си. Также изучение Ассемблера позволяет лучше понять работу микроконтроллера и писать более оптимальные программы на языке Си. Поэтому данный низкоуровневый язык стоит изучить даже если необходимость в его изучении и применении на практике никогда не возникала. Данный язык сильно отличается для разных микроконтроллеров но всё таки некоторые общие принципы наверняка должны присутствовать в той или иной степени для разных устройств. Начать скорее всего будет лучше с какого нибудь простого микроконтроллера. Например, для старта, можно взять ATtiny2313 и написать для него мигалку а если это получиться то делать далее уже более сложные устройства и переходить на более сложные микроконтроллеры например какие нибудь из STM32. Чтобы писать саму программу можно использовать какой либо текстовый редактор. Обычно в ОС Windows присутствует текстовый редактор «блокнот». После написания программы в «блокноте»её можно сохранить в формате с расширением .asm потом откомпилировать в файл с расширением .hex каким нибудь компилятором ассемблера для микроконтроллеров avr напр. компилятором avra (который можно скачать по ссылке https://sourceforge.net/projects/avra/files/1.2.3/ (для windows нужно скачать avra-1.2.3-win32.zip)) (для установки достаточно разархивировать) и записать полученный файл с расширением .hex в микроконтроллер утилитой avrdude (устанавливается вместе с arduino IDE, WinAVR или отдельно) через программатор. Рассмотрим схему устройства которое будем программировать:

    Рисунок 1 — Светодиодная мигалка на микроконтроллере ATtiny2313 с программатором


    На рисунке выше приведена схема светодиодной мигалки на микроконтроллере ATtiny2313 с программатором. Микроконтроллер ATtiny2313 имеет встроенный тактовый RC генератор и встроенный внутренний резистор для подтяжки вывода reset к нужному для работы микроконтроллера уровню также ему не нужно много внешних конденсаторов и прочей дополнительной обвязки (этим данный микроконтроллер прост и хорош). В качестве программатора можно использовать Arduino с записанным в неё скетчем ISP программатора:

    Рисунок 2 — Светодиодная мигалка на микроконтроллере ATtiny2313 с программатором на Arduino Uno

    Если все необходимые элементы имеются то можно начинать писать программу. Давайте рассмотрим простую программу мигания светодиодом на Ассемблере:
    .CSEG ; начало сегмента кода .ORG 0x0000 ; начальное значение для адресации ; — устанавливаем пин 0 порта D на вывод — LDI R16, 0b00000001 ; поместим в регистр R16 число 1 OUT 0x11, R16 ; загрузим значение из регистра R16 в DDRD (адрес DDRD = 0x11 (attiny2313,atmega8)) ; — основной цикл программы ( адрес PORTD = 0x12 (attiny2313,atmega8) ) — Start: SBI 0x12, 0 ; подача на пин 0 порта D высокого уровня ; — задержка 1 — ldi r18, 250 ldi r19, 250 L1: dec r19 brne L1 dec r18 brne L1 CBI 0x12, 0 ; подача на пин 0 порта D низкого уровня ; — задержка 2 — ldi r18, 250 ldi r19, 250 L2: dec r19 brne L2 dec r18 brne L2 RJMP Start
    Ассемблер, в отличии от Си, регистронезависимый язык поэтому команды можно писать и большими буквами и маленькими и вперемешку. Команды которые начинаются с точки называются директивами. Директивы — это команды не для микроконтроллера а для компилятора. Директива .CSEG означает начало сегмента кода, помимо сегмента кода существует также сегмент данных и сегмент EEPROM. Директива .ORG указывает адрес с которого начинается сегмент. В ассемблере можно делать комментарии т.е. строки которые игнорируются компилятором и нужны для помощи программисту, комментарии начинаются с точки с запятой и завершаются концом строки. Команда LDI нужна для помещения в регистр какой либо константы. Константу можно записать в десятичном, шестнадцатеричном или двоичном виде. Если она записана в двоичном виде то перед ней ставиться нолик и английская буква b т.е. например 0b00000001. Двоичные числа удобны для конфигурирования порта микроконтроллера т.к. по ним наглядно видно в каком бите есть ноль а в каком единица. Если константа пишется в десятичном виде то перед ней ставить ничего не надо а надо просто написать число. Если константа пишется в шестнадцатеричном виде то перед ней ставиться 0x. Чтобы настроить второй пин микроконтроллера на выход нужно в записать единицу в нулевой разряд регистра DDRD. DDRD — это просто название регистра для удобства, на самом деле важно знать что этот регистр имеет какой то адрес в памяти и для того чтобы записать в этот регистр какое либо число и т.о. поместить либо ноль либо единицу в нужный его разряд, нужно записать это число по соответствующему адресу для регистра DDRD в микроконтроллере ATtiny2313 этот 0x11. Для того чтобы настроить второй пин микроконтроллера ATtiny2313 на выход мы сначала командой LDI записываем в регистр R16 число 0b00000001 а потом командой OUT из регистра R16 мы это число помещаем в регистр DDRD по тому что записать сразу константу в DDRD нельзя. Далее идет основной цикл программы т.е. «бесконечный» цикл в котором выполняются основные постоянные действия. Чтобы организовать этот цикл на ассемблере используется оператор безусловного перехода RJMP. В самом низу кода мы видим строку RJMP Start а в самом верху основного цикла мы видим метку Start. Команда RJMP просто переводит выполнение программы на то место где стоит метка т.о. если метку поставить перед этой командой после которой идет название этой метки то можно получить бесконечный цикл. Командой SBI мы устанавливаем высокий уровень т.е. пять вольт на нужном пине микроконтроллера. Если мы используем пин который связан с нулевым битом порта D то после команды SBI мы пишем адрес порта D (для микроконтроллера ATtiny2313 это 0x12) ставим запятую и после этого пишем номер бита который мы хотим установить в логическую единицу чтобы на нужном пине стало пять вольт. Аналогично командой CBI мы делаем ноль вольт на нужном нам пине. Для создания задержки сначала в регистр r18 записывается число 250 (максимальное которое можно записать = 255, минимальное = 0) потом 250 записывается в регистр r19. После чего командой dec (декремент) происходит уменьшение на единицу числа находящегося в регистре r19. Далее имеется команда brne — это оператор условного перехода т.е. он переносит выполнение программы на место с меткой при выполнении условия. Если результатом операции предшествовавшей данной команде был ноль то перехода туда где стоит метка не происходит и выполнение программы продолжается, если был получился не ноль то происходит переход на строку с меткой в данном случае это L1. Т.о. получается цикл выход из которого происходит тогда когда число в регистре r19 становиться равным нулю. Далее происходит декремент числа в регистре r18 и так как сразу там ноль не получиться то переход происходит на строку с меткой L1 а там стоит декремент числа в регистре r18 но так как там уже ноль то декремент делает там 255 и всё повторяется заново т.о. получается вложенный цикл. Эти циклы выполняются какое то время и делают задержку для того чтобы можно было наблюдать мигание светодиода.
    После того как программа написана (например в имеющемся в windows текстовом редакторе «блокнот» или любом другом подходящем текстовом редакторе (неважно каком (это дело вкуса (на результат не повлияет (если текстовый редактор подходит для данных целей и позволяет сохранять текст в формате .asm))))) её можно сохранить в формате .asm и откомпилировать в cmd (командной строке windows) командой:
    путь_до_компилятора_avra путь_до_файла.asm
    например:
    F:\avra-1.2.3\bin\avra F:\avr\blink.asm
    Если компиляция пройдет успешно то компилятор создаст файл с расширением .hex который можно загрузить в микроконтроллер например командой:
    avrdude -c avrisp -P COM3 -b 19200 -p t2313 -U flash:w:blink.hex
    (avrdude перед этим надо установить на компьютер)
    Эта команда сработает если используется микроконтроллер ATtiny2313 (-p t2313), программатор avrisp (-c avrisp (он же arduino, он же stk500, он же «пять проводков» (avrdude не поймет «пять проводков» (остальное должна понять)))) который подключен к порту который называется COM3 (-P COM3) (если называется по другому то в команду надо вписать соответствующее название). blink.hex — это название откомпилированного файла который надо загрузить в микроконтроллер. При этом в данной программе не прописана установка фьюзов и считается что микроконтроллер либо новый с завод и на нем установлены фьюзы по молчанию либо фьюзы ранее были установлены как надо и менять их не требуется. Если hex файл успешно запишется то светодиод должен замигать!


    КАРТА БЛОГА (содержание)

    Программирование Attiny2313 с Arduino Uno

    Теперь на вашем Attiny 2313 должен мигать светодиод.

    Выберите плату -> [email protected]
    Выберите -> Инструменты-> Программатор-> Arduino as ISP
    выберите -> Инструменты-> Записать загрузчик

    Примечание. используется только для установки предохранителей на другую тактовую частоту.

    Когда вы используете его в своем проекте, рекомендуется подключить А 0.1 мкФ между VCC и GND как можно ближе к процессору
    и резистор 10 кОм от RESET к VCC.

    Связь с Attiny2313

    Всегда приятно иметь возможность получать отладочную информацию с вашего устройства tiny.
    На Arduino для этой цели используется Serial.print().
    К счастью, вы можете использовать это и на Аттини.
    на самом деле у вас есть дополнительные варианты:

    Tinydebugserial — поставляется с основными файлами (только вывод из атмосфера)
    Softwareserial — используйте программную библиотеку (вход / вывод)
    TinyknockBang
    — использовать TinyISP (только выходной кадр)
    RELAY_SERIAL — использовать TinyISP (входной/выходной Attiny)
    Более подробное объяснение: здесь

    Решение для отсутствующего АЦП

    У Atmel есть несколько замечаний по применению о том, как сделать дешевый АЦП с использованием компаратора На Attiny2313.
    Например:
    http://www.atmel.com/Images/doc0942.pdf

    К сожалению, они не предоставляют примеров программирования. Но недавно я нашел простое решение
    http://learn.adafruit.com/photocells/using-a-photocell

    На схеме внизу этой страницы используется функция digitalRead() для измерения времени в радиоуправляемой сети.

    В примере используется фоторезистор, но его можно заменить потенциометром.
    Я попробовал это с помощью потенциометра на 10 кОм и конденсатора на 0,1 мкФ, который дал мне показания от 0 до 600
    В скетче PIN 2, это PD2 на Attiny2313 — физически контакт № 4

    Физические/логические номера контактов.
    Ф. напр. контакт 13 в мигающем примере — это физический контакт 16
    См. памятку

    ATtiny2313 Target Boards


    Целевые платы TinyX313 — это удобные и недорогие целевые/разветвительные платы, которые подходят для микроконтроллеров Atmel ATtiny2313 и ATtiny4313 AVR. Они являются дополнением к нашим популярным коммутационным платам ATmegaxx8, и мы рекомендуем использовать программатор USBtinyISP для использования с этими платами.


    ‘tiny2313 Целевая плата:

    • Общий размер 2″ x 3.5 дюймов (стандартный размер визитной карточки)
    • Толщина: 0,031 дюйма, т. е. 1/32 дюйма или 0,8 мм. (Половина стандартной толщины печатной платы.) Это толсто для визитной карточки — как некоторые из карточек с тиснением супер-премиум, но это довольно тонко для печатной платы. Он достаточно толстый, чтобы быть достаточно жестким.
    • Бессвинцовая конструкция (соответствует RoHS)
    • Односторонняя печатная плата
    • Бессвинцовое покрытие, легко поддающееся пайке
    • ФР-4 стекловолокно-эпоксидный плитный материал; UL94V-0 рейтинг
    • Черная паяльная маска с белой шелкографией с обеих сторон

    ‘tiny2313 Target Board Характеристики:
    • Подходит для микроконтроллеров Atmel ATtiny2313 и ATtiny4313
    • Индивидуальные метки для всех выводов микроконтроллера
    • Четыре дополнительных отверстия для доступа, подключенные к через каждый контакт микроконтроллера
    • Совместим с 20-контактными разъемами ZIF DIP
    • Зоны для прототипирования: 28 независимых наборов из четырех соединенных металлических сквозных отверстий; подходит для двух корпусов DIP-8.
    • Несколько точек доступа для питания и заземления.
    • Расположение разъема питания для подключения к адаптеру питания постоянного тока 3–5 В
    • 6-32 монтажных отверстия в каждом углу
    • Вмещает 3-контактный керамический резонатор или кварцевый генератор с конденсаторами
    Перейдите сюда для получения дополнительной информации об этой печатной плате и ее конструкции. Дополнительная информация о платах и ​​их использовании с другими (примерно) совместимыми по выводам микросхемами, такими как ATtiny25, ’45 и ’85, доступна здесь.


    Также доступен: комплект разработки ATtiny2313 Mini, который включает в себя печатную плату, микроконтроллер, разъем и разъем для программирования.


    Бессвинцовый
    Все наши мишени и другие электронные компоненты, перечисленные на этой странице, соответствуют требованиям RoHS (не содержат свинца). Работая с этими деталями, вы обнаружите, что все хорошо работает как с обычным, так и с бессвинцовым припоем — в зависимости от того, что вы хотите использовать.
    Рекомендуемые принадлежности:
    Вас также может заинтересовать:
    Главная > Продукты > Прототипирование и макетирование
    Главная > Продукты > Комплекты разработки AVR
    Главная > Продукты > печатные платы

    IDE с использованием MikroForth для ATMEL AVR Attiny 2313 в 20-контактном DIL [Forth-eV Wiki]

    ОБНОВЛЕНИЕ : документацию на английском языке см. ниже…

    Этот проект ATTINY 1) был разработан Э.Эубе, Г. Хайнрихс и У. Илефельдт

    На своем веб-сайте Г. Хайнрихс подробно документирует проект. Он описывает концепцию, разработку и технические детали. Доступны загрузки программ. Описаны FORTH и ассемблер. Также есть форум.

    Этот проект Attiny был использован в марте 2017 года для 5-го учебного мероприятия по микроконтроллерам для учителей в Эссене, Leibniz-Gymnasium.

    Изображение использованной печатной платы Attiny 3.0

    ATTINY-Board 3.0

    Основные характеристики

    • Микроконтроллер AVR Attiny2313 (не впаян, а вставлен в розетку)

    • Преобразователь USB-UART встроен в печатную плату;

    • Загрузчик обеспечивает высокую скорость при использовании интерфейса USB

    • (почти) все соединения АРН доступны через контактные разъемы с соединительными кабелями

    • Параллельно 8 битам полного порта (порт B) 8 разъемов с массивом резисторов.В результате состояния порта могут отображаться с помощью светодиодов

      .
    • Два входа прерывания, напрямую подключенные к кнопкам, один из них защищен от дребезга через конденсатор

    • Пьезодинамик

    • Усилитель мощности для подключения лампочки, электродвигателя…

    • Последовательная связь и быстрое программирование через USB

    • Подготовка I2C через подтягивающие резисторы (переключаемые перемычкой)

    • Программирование SPI микросхемы 2313 через USB

    • Некоторые дополнительные контактные поля для более сложных схем

    • Питание и передача данных через стандартный USB-удлинитель;

    • Питание от батареи 9 В и опциональный регулятор напряжения

    • Розетка для подключения небольшого недорогого ЖК-дисплея (ЖК-дисплей входит в комплект)

    • Гнездовой разъем для подключения дополнительных устройств, свободно подключаемый!

    • Кнопка сброса для перезапуска программы или активации процесса загрузки

    Схема платы 3.0

    Примечания относительно платы 3.0

    1. Полный комплект деталей включает в себя плату, соединительный USB-кабель, 10 светодиодов, фотодиод, 2 перемычки, маленькие разъемы, ЖК-дисплей (2 x 8 символов) и необходимое программное обеспечение (программа загрузки и т. д.).

    2. ЖК-дисплей использует порт B; в то время как PortB.5 и PortB.7 остаются свободными для работы с шиной I2C.

    3. Вы можете легко подключить другие устройства через планку розеток. Для этого гнездовой разъем подключается через соединительные кабели к контактам Attiny2313.Таким образом, возможно гибкое назначение контактов гнездового разъема контактам Attiny.

    4. На плате находится силовой полевой МОП-транзистор, который может получать питание от платы или от внешнего источника питания. Он также может включать и выключать внешние устройства через выход микроконтроллера, если они требуют больших токов (например, лампочки или электродвигатели).

    5. Плата также подготовлена ​​для автономной работы без USB-кабеля: Все, что вам нужно сделать, это припаять на плате клемму для подключения батарей 9В, переключатель, два конденсатора и стабилизатор 5В.

    Если вы заинтересованы в покупке одной или нескольких досок (в комплекте или в готовом виде, примерно от 20 евро), свяжитесь напрямую с г-ном Юбе ([email protected])

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

    Аттини 2313 | Хакадей

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

    Wake Up Bright — новейшая линейка виджетов для пробуждения, созданных [Maarten], чтобы помочь им проснуться утром. Их отчет охватывает все идеи, которые у них были по этому вопросу за эти годы, а также электронику, прошивку, отладку и все обновления, сделанные после его использования в течение некоторого времени.

    Медленное увеличение яркости светодиода не обязательно должно быть сложным или дорогим. [Maarten] первоначально использовал AVR Atmel 90S2313, а затем обновил его до ATtiny 2313, что было легко, поскольку они совместимы по выводам.2313 выдает ШИМ, который включает рабочий цикл светодиода для создания приятного постепенного появления белого света, который намного мягче, чем классический гудок будильника 1980-х годов.

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

    Наши глаза воспринимают увеличение яркости логарифмически, но ШИМ линейно. Мы можем обойти это, время от времени умножая значение ШИМ на некоторый коэффициент, но проблема в том, что этот AVR никогда не изучал свою таблицу умножения.Так как же тогда? Ответ [Мартена] заключается в смещении байтов с использованием 16-битного регистра — один байт для ШИМ, а другой — в качестве блокнота для логарифмических вычислений. [Maarten] умножает 16-битный регистр на 1/256 каждые пару секунд, что приводит к логарифмическому увеличению яркости. Он рассчитан для 15-минутного восхода солнца, что потребовало некоторых экспериментов, чтобы получить правильный результат.

    В то время как [Maarten] начал с RGB-светодиода мощностью 3 Вт, текущая версия имеет три светодиода мощностью 10 Вт и использует блок питания от старого монитора.Летнее время в США подходит к концу, и оно будет быстро ухудшаться. К счастью для вас, исходный код этого проекта полностью открыт вплоть до прошивки.

    Вы думаете, что гудок будильника 1980-х — это плохо? Как насчет нескольких повторяющихся пощечин, чтобы проснуться?

    Адаптер

    AT90S2313/ATtiny 2313 Адаптер

    AT90S2313/ATtiny 2313

    Все категорииПолупроводникиОптоэлектроника и дисплеиКристаллические генераторы и фильтрыКонденсаторыРезисторыПотенциометры и триммерыЗащита цепейТрансформаторы и ферритыЗвуковые устройстваКорпуса и платы для ПКРазъемыРелеВыключатели и индикаторыКабели, провода, кабельные сборкиВентиляторы и воздуходувки, радиаторыАккумуляторы и аксессуарыБезопасность и управлениеДатчики и преобразователиДомашняя автоматизация и освещениеАвтоматика , Клеи, Химические материалыЗапчасти, CATV, KVM, АнтенныАвтомобильные устройстваХобби-наборы и модулиКомплектующие для ПКПериферия для ПКФлэш-память, Внешние накопителиАксессуары для ноутбуков, планшетов и мобильных телефоновСетевые устройстваКабели, адаптерыОхлаждениеCD, DVD, Blu-RayАдаптеры и зарядные устройстваАвтомобильные аксессуары, FM-передатчикиТовары для дома и офиса

    1+ 4.80 BGN
    3+ 455 BGN
    5+ 4.34 BGN
    10+ 4.16 BGN

    Код продукта:

    407005

    Производитель:

    Печатная плата СИРИУС

    Производ. Код:

    Поддерживает микросхемы AT90S2313 и Attiny2313.
    Размеры: 38×16 мм

    Скрыть

    Изображение носит исключительно иллюстративный характер


    0700 18 880
    факс: 056/800-067

    Copyright 2004-2022, Panda III Co., Ltd. Все права защищены.

    Программирование attiny2313 с Arduino

    Это вторая часть настройки Arduino для программирования микроконтроллера Attiny, в предыдущих частях мы добавили поддержку множества микроконтроллеров.Для справки, вот каким будет Attiny2313, когда вы это сделаете, контакты и соответствующие контакты Arduino показаны ниже, как вы можете видеть, вы по-прежнему получаете 16 контактов ввода-вывода, возможности I2C, 3 контакта PWM и последовательный интерфейс. для связи.

     

    аттини2313 ардуино

    Вам нужно будет добавить поддержку ATtiny2313 в соответствии с Программирование ATtiny85 с Arduino Uno, но вам нужно добавить следующие

    http://drazzy.com/package_drazzy.com_index.json

     

    Настройка соединения attiny2313 с платой Arduino

    Подключите ваш Attiny2313 к Arduino следующим образом

    1) attiny2313 pin 1 к arduino pin 10 reset
    2) attiny 2313 pin 17 к arduino pin 11 MOSI
    3) attiny2313 pin 18 к arduino pin 12 MISO
    4) attiny2313 pin 19 к arduino pin 13 SCK
    3) attiny2313 pin 19 к arduino pin 13 SCK
    10 к arduino GND
    6) attiny2313 контакт 20 к arduino VCC

    Макет

    На схеме не показан светодиод, который мы подключили для проверки, он был подключен к контакту 7.

    Шаги

    Откройте программу ArduinoISP и загрузите программу ArduinoISP на плату Arduino, чтобы превратить ее в программатор ISP.

    1) Откройте программу ArduinoISP.
    Файл>Примеры>ArduinoISP

    2) Выберите последовательный порт.
    Инструменты>Порт>COMX (введите здесь свой COM-порт)

    2) Выберите нужную плату Arduino, в данном случае мы используем Arduino Uno.
    Инструменты>Плата>Arduino Uno

    3) Установите тип программатора AVRISP MKII.
    Инструменты>Программист>AVRISP MKII

    4) Нажмите кнопку загрузки.

    5) Теперь ваш Arduino Uno настроен как программатор ISP. Теперь, чтобы настроить Arduino для программирования Attiny с модифицированным примером мерцания

    .

    6) Выберите цель AVR для Arduino ISP для программирования.
    Инструменты>Плата>ATtinyx313

    7) Замените плату для Arduino ISP для программирования.
    Инструменты>Чип>ATtiny2313

    8) Убедитесь, что часы для Arduino ISP установлены на 8 МГц.
    Инструменты>Часы>8 МГц (внутренние)

    Вы можете увидеть эти настройки на скриншоте ниже

    9) Установите режим программатора.
    Инструменты>Программист>Arduino как провайдер

    10) Наконец, начните загрузку скетча в микроконтроллер Attiny2313
    File>Upload

    Это наш пример кода для загрузки

     // функция настройки запускается один раз, когда вы нажимаете сброс или питание платы
    недействительная установка () {
      // инициализируем цифровой контакт 13 как выход.pinMode(7, ВЫВОД);
    }
    
    // функция цикла запускается снова и снова навсегда
    недействительный цикл () {
      цифровая запись (7, ВЫСОКИЙ); // включаем светодиод (HIGH - уровень напряжения)
      задержка(1000); // ждем секунду
      цифровая запись (7, НИЗКИЙ); // выключаем светодиод, понижая напряжение
      задержка(1000); // ждем секунду
    } 

     

    Если вы подключите светодиод к контакту 7 вашего Attiny2313, вы увидите, как светодиод мигает, но это кажется немного медленным

    Если вы хотите, вы можете записать загрузчик на Attiny, и микроконтроллер будет работать на частоте 8 МГц, а в приведенном выше примере светодиод будет мигать с правильной скоростью

    ATtiny2313 8-битный микроконтроллер AVR — распиновка, характеристики, техническое описание, работа, приложения

    ATtiny2313 — это высокопроизводительный, но маломощный микроконтроллер Microchip с 8-разрядной архитектурой AVR RISC, который имеет 20 контактов, 18 из которых могут использоваться в качестве контактов ввода-вывода.

     

    Конфигурация контактов ATtiny2313

    Номер контакта

    Название контакта

    Описание

    1

    СБРОС/dW/PA2

    Порт A, бит 2 или СБРОС используется в основном для программирования или dW

    2

    ПД0/RXD

    Контакт двунаправленного ввода-вывода порта D, бит 0 или UART DATA. Получение

    3

    ПД1/ТСД

    Контакт двунаправленного ввода-вывода порта D, бит 1, или передача данных по UART

    4

    PA1/XTAL2

    Порт A, бит 1 или Crystal Out

    5

    PA0/XTAL1

    Порт A Бит 0 или Crystal In

    6

    PD2/CKOUT/XCK/INT0

    Контакт двунаправленного ввода-вывода порта D, бит 2, или внешнее прерывание, 0, или выход системных часов, или часы USART для синхронной передачи

    7

    ПД3/ЦЕЛ.1

    Контакт двунаправленного ввода-вывода порта D, бит 3 или внешнее прерывание 1

    8

    ПД4/Т0

    Контакт двунаправленного ввода-вывода порта D, бит 4 или таймер 0, выход/счетчик

    9

    ПД5/ОС0Б/Т1

    Двунаправленный контакт ввода-вывода порта D, бит 5 или сравнение выхода, соответствие выходу/счетчику выхода или таймера 1

    10

    ЗЕМЛЯ

    Контакт заземления MCU

    11

    ПД6/ИКП

    Двунаправленный контакт ввода-вывода порта D, бит 6 или захват ввода

    12

    PB0/AIN0/PCINT0

    Контакт двунаправленного ввода/вывода порта B, бит 0 или аналоговый компаратор 0, или изменение контакта Источник прерывания

    13

    PB1/AIN1/PCINT1

    Контакт двунаправленного ввода/вывода порта B, бит 1, или аналоговый компаратор 1, или изменение контакта Источник прерывания

    14

    ПБ2/ОС0А/ПКИН2

    Двунаправленный ввод/вывод порта B, бит 2 или сравнение выхода, совпадение выхода A или изменение контакта Источник прерывания

    15

    PB3/OC1A/PCINT3

    Двунаправленный ввод/вывод порта B, бит 3 или сравнение выхода, совпадение выхода A или изменение контакта Источник прерывания

    16

    PB4/OC1B/PCINT4

    Двунаправленный ввод-вывод порта B, бит 4 или сравнение выхода, совпадение Bout или изменение контакта Источник прерывания

    17

    PB5/MOSI/DI/SDA/PCINT5

    Контакт двунаправленного ввода-вывода порта B, бит 5 или SPI MOSI, также используется в программировании или I2C SDA или изменение контакта Источник прерывания

    18

    ПБ6/МИСО/ДО/ПКИНТ6

    Двунаправленный контакт ввода-вывода порта B, бит 5 или SPI MISO, также используется при программировании или смене контакта Источник прерывания или трехпроводной универсальный интерфейс Вывод данных

    19

    ПБ7/УКСК/СКЛ/ПКИНТ7

    Двунаправленный ввод/вывод порта B, бит 7 или трехпроводной режим Универсальный последовательный интерфейс или I2C SCL или изменение контакта Источник прерывания или SCK для программирования

    20

    ВКК

    Положительный контакт MCU (+5 В)

     

    Особенности и технические характеристики микроконтроллера ATtiny2313

    ATtiny2313 — упрощенные функции и спецификации

    ЦП

    8-битный AVR

    Количество контактов

    20

    Рабочее напряжение (В)

    1.8-5,5 В

    Количество контактов ввода/вывода

    18

    Модуль АЦП

    нет

    Модуль таймера

    8-битный(1), 16-битный(1)

    Компараторы

    1

    Модуль ЦАП

    нет

    Периферийные устройства связи

    1-UART, 2-SPI, 1-I2C

    Внешний осциллятор

    Да

    Внутренний осциллятор

    8 МГц

    Память программ (КБ)

    2 КБ

    Скорость процессора (MIPS)

    20 миллионов операций в секунду

    байт ОЗУ

    128

    ЭСППЗУ данных

    128 байт

     

    Примечание. Полную техническую информацию можно найти в таблице данных ATtiny2313 , ссылка на которую приведена внизу этой страницы.

     

    Альтернативный продукт ATtiny2313

    Альтернативные продукты для микроконтроллера ATtiny2313 перечислены ниже —

    1. ATtiny2313A (точная альтернатива новой версии)
    2. АТтини417
    3. АТтини28Л
    4. АТтини48
    5. ATmega88PA
    6. ATmega8A
    7. ATmega8515
    8. ATmega8535
    9. ATmega645A
    10. ATmega6490

     

    Знакомство с ATtiny2313

    ATtiny2313 — это высокопроизводительный, но маломощный микроконтроллер Microchip с 8-разрядной архитектурой AVR RISC, который имеет 20 контактов, из которых 18 контактов могут использоваться в качестве контактов ввода-вывода.

     

    Он имеет мощную архитектуру инструкций, которая обеспечивает скорость обработки 1 MIPS на МГц, балансируя энергопотребление и в то же время обрабатывая высокоскоростную производительность. Скорость может достигать 20 MIPS, если используется максимальная частота 20 МГц. ATtiny2313 также поставляется с функцией отладки на кристалле debugWIRE, внутрисистемным программируемым портом SPI, режимами ожидания с низким энергопотреблением, отключением питания и режимом ожидания. Он также использует программируемую схему обнаружения пониженного напряжения.

     

    Имеет широкий диапазон рабочего напряжения, от 1.8В до 5,5В. Таким образом, его можно использовать в операциях логического уровня 1,8 В, 3,3 В или 5,0 В. Однако работа в диапазоне 0-4 МГц поддерживается входным напряжением 1,8 В для ATtiny2313V. Для частоты до 10 МГц требуется минимальное напряжение 2,7В для ATtiny2313, а для работы на 20МГц требуется минимальное напряжение 4,5В-5,5В.

     

    На изображении ниже показана подробная схема выводов ATtiny2313.

     

    Подробные характеристики ATtiny2313

    ATtiny2313 – Подробные характеристики

    ЦП

    8-битный AVR RISC

    Архитектура

    8

    Размер памяти программ (Кбайт)

    2

    ОЗУ (байт)

    128

    ЭСППЗУ/HEF

    128

    Количество выводов

    20

    Макс.Частота процессора (МГц)

    20

    Выбор периферийного контакта (PPS)

    Внутренний осциллятор

    4 МГц

    Количество компараторов

    1

    №Операционный усилитель

    0

    Количество каналов АЦП

    0

    Максимальное разрешение АЦП (бит)

    АЦП с вычислением

    0

    Номер преобразователя ЦАП

    0

    Максимальное разрешение ЦАП

    Внутреннее опорное напряжение

    Обнаружение пересечения нуля

    №8-битных таймеров

    1

    Количество 16-битных таймеров

    1

    Таймер измерения сигнала

    0

    Аппаратный таймер ограничения

    0

    №Выходов ШИМ

    4

    Макс. разрешение ШИМ

    1024

    Угловой таймер

    0

    Математический ускоритель

    №модуля UART

    1

    № модуля SPI

    2

    № модуля I2C

    1

    № USB-модуля

    0

    Оконный сторожевой таймер (WWDT)

    CRC/скан

    Осциллятор с числовым программным управлением

    Крышка.Сенсорные каналы

    4

    Сегментный ЖК-дисплей

    0

    Минимальная рабочая температура (*C)

    -40

    Максимальная рабочая температура (*C)

    85

    Минимальное рабочее напряжение (В)

    1.8 / (2,7 до 10 МГц) / (4,5 до 20 МГц)

    Максимальное рабочее напряжение (В)

    5,5

    Возможность работы с высоким напряжением

     

    Программирование микроконтроллера AVR Микроконтроллеры

    PIC можно программировать с помощью различного программного обеспечения, доступного на рынке.Есть люди, которые до сих пор используют язык ассемблера для программирования микроконтроллеров AVR. Приведенная ниже информация относится к наиболее продвинутому и распространенному программному обеспечению и компилятору, разработанному самой компанией Atmel (теперь Microchip).

     

    Для программирования микроконтроллера AVR нам понадобится IDE (Integrated Development Environment), где и происходит программирование. Компилятор, в котором наша программа преобразуется в удобочитаемую форму MCU, называемую HEX-файлами.

     

    IDE: Atmel Studio 7

    Компилятор: наборы инструментов AVR и ARM

     

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

     

    Чтобы выгрузить или загрузить наш код в AVR, нам понадобится устройство с именем ATAtmel-ICE. Программатор/отладчик ATATmel — ICE представляет собой простой внутрисхемный отладчик, которым управляет ПК с установленным программным обеспечением Atmel Studio на платформе Windows.Программатор/отладчик ATAtmel-ICE является неотъемлемой частью набора инструментов инженера-разработчика. Базовая схема программирования ATtiny2313 показана ниже.

    Помимо этого официального программатора, пользователи также используют USB ASP AVR Programmer для недорогих программных решений.

     

    В дополнение к этому нам также понадобится другое оборудование, такое как плата Perf или макетная плата, паяльная станция, микросхемы AVR, кварцевые генераторы, конденсаторы и т. д.

     

    Компоненты, связанные с AVR

    USB программатор ASP AVR, макетная плата AVR, кварцевые генераторы, конденсаторы, адаптер 12 В, регулятор напряжения 7805.

     

    2D-модель

    Размеры ATtiny2313 показаны ниже-

    .

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

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