Универсальный внешний накопитель для всех 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

Содержание

Универсальные платы для умного дома на базе микроконтроллера ATmega128 (ATmega2561) / Хабр

Недавно я написал первый пост о том, как начал переделывать обычные светодиодные светильники в диммируемые. Многим не понравилось что свой диммер я делаю на базе микроконтроллера ATmega128. Поэтому хочу объяснить, почему используется именно этот микроконтроллер, и почему в наше время разрабатывая что-то ДЛЯ СЕБЯ, не стоит стремиться всё делать на самом слабеньком микроконтроллере, способном протянуть только лишь функционал разрабатываемого вами устройства.

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

Почему был выбран именно этот микроконтроллер? Да всё просто, потому что по цене ATmega128 всего на 20 центов дороже чем чем ATtiny2313. А ATtiny2313 стоит столько же, сколько и ATmega8. То есть уже про ATtiny2313 можно забыть как страшный сон.
Привожу пару картинок с ценами на AliExpress (а именно там я покупаю детальки) и идём дальше.

ATtiny2313:

Стоимость ATtiny2313

ATmega8:

Стоимость ATmega8

ATmega128:

Стоимость ATmega128

ATmega2561:

Стоимость ATmega2561

Думаю комментарии излишни, сейчас даже для мигалки обычным светодиодиком куда выгоднее и рациональнее брать сразу ATmega128 чем 8 мегу, про тиньку и вообще молчу, забудьте про её существование как страшный сон. Да даже штук 5 транзисторов и резисторов для мигалки, уже будут стоить больше чем ATmega128. Так что забудьте про все микроконтроллеры слабее 128 меги, их использование в домашних проектах просто невыгодно и нерационально со всех сторон как ни посмотри. Да-да друзья мои, хочется вам или нет, но таковы реалии современного мира.

Следующий аргумент можно заметить если сравнить внимательно распиновку ножек ATmega128 и ATmega2561.

Сравнение между собой ATmega128 и ATmega2561

Видим что распиновка ножек очень похожа, выводы SPI для программирования МК совпадают, так же совпадают и выводы питания, в общем почти всё совпадает, там буквально пару ножек различается которые ни на что не влияют, к чему я это веду, да к тому, что разработав плату для ATmega128, вы спокойно можете при необходимости купить и впаять в неё более производительный ATmega2561, а тут и памяти под программу больше в 2 раза и “оперативки”. Например, мой главный модуль умного дома будет построен именно на ATmega2561, а остальные на ATmega128. Как итог, мне не нужно будет самому изготавливать плату для ATmega2561. Не знаю как кому, а лично мне, изготавливать в домашних условиях платы для smd микросхем тот ещё геморрой. Ну не люблю я разводить такую мелюзгу, особенно ЛУТ-том (другой технологии я пока не освоил). Заказывать в Китае 10 плат ради одного модуля тоже не выгодно. А так мы разводим универсальную плату на базе ATmega128, и в одну из плат впаиваем ATmega2561 для главного модуля умного дома. Как итог, все наши платы для микроконтроллеров изготовлены на заводе в Китае, а в заводские платы даже впаивать smd микроконтроллеры проще, чем в платы собственного изготовления, во всяком случае для меня.

Ну и собственно к самой теме поста.
Схема моих универсальных плат для умного дома:

Схема платы

Вот такие платы пришли из Китая:

Лицевая сторона платЗадняя сторона плат

После разрезания и впаивания компонентов платы выглядят так:

Лицевая сторона плат после впаивания компонентовЗадняя сторона плат после впаивания компонентов

Плата с модулем ADM488 для связывания всех модулей умного дома в единую сеть:

Плата с модулем ADM488Плата с модулем ADM488

Плата с модулем беспроводной связи nRF24L01+:

Плата с модулем nRF24L01+Плата с модулем nRF24L01+

Как видите, на универсальной плате есть 2 специализированных разъёма, для модуля ADM488 и для модуля nRF24L01+, вся остальная периферия подключаемая к таким универсальным платам будет подключаться шлейфами к выведенным штырькам.

Вот собственно и всё. Может кто-то подчерпнёт какие-нибудь полезные идеи и для себя.

Цоколевка коннектора ISP программатора TL866A | avr

Нумерация штырьков 6-выводного коннектора “папа” на корпусе программатора TL866A:

# PIC AVR
1 VPP/MCLR ~RESET
2 VCC VCC
3 GND GND
4 PGD MOSI
5 PGC MISO
6 N.C. SCK

[Проблема программирования ATtiny45 через ISP]

По непонятной причине AVR-ки ATtiny45, ATtiny85 нельзя программировать через интерфейс ISP (ICSP). Радиокнопка выбора ICSP становится серой, когда выбирается ATtiny45.

Хакерскими методами можно эти кнопки разрешить (спасибо [email protected] и его программе Enable button v.1.1, 28253_Enable button.exe), но это мало что дает. Чипы ATtiny45 все равно не программируются, на микроконтроллер подается опасное высокое напряжение, и утилита программирования сообщает о срабатывании защиты ограничения тока.

Ссылку на утилиту 28253_Enable button.exe нашел на 9 странице блога [3].

“Try this link. MD5: 28d10f5ea6f3b1e5de4074aa5294ef92. Run this programm, switch to window with blocked elements and run mouse cursor over them – they will unlock!”

[Ссылки]

1. XGecu TL866II Plus USB High Performance Programmer site:autoelectric.cn.
2. Цоколевки коннекторов ISP.
3. EEVblog #411 – MiniPro TL866 Universal Programmer Review site:eevblog.com.

Условные обозначения и описание ножек микроконтроллеров AVR ATtiny и ATmega

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

Далее мы приводим описание аббревиатур, которые Вы можете встретить в datasheet микроконтроллеров.

PAn n-й разряд порта A
PBn n-й разряд порта B
PDn n-й разряд порта D
(IR) (Выходной контакт с повышенной нагрузочной способностью)
ADCn n-й вход АЦП
AREF Вход опорного напряжения для АЦП
AVCC Вывод источника питания АЦП
AIN0 Положительный вход компаратора
AIN1 Отрицательный вход компаратора
INTn  Вход внешнего n-го прерывания
PCINTn Вход внешнего n-го прерывания по изменению состояния вывода
XTAL1 Вход тактового генератора
XTAL2 Выход тактового генератора
CKOUT Выход системного тактового сигнала
CLKO Выход системного тактового сигнала
MOSI Вход данных при программировании
MISO Выход данных при программировании
SCK Вход тактового сигнала при программировании
DI Вход данных модуля USI в режиме SPI
DO Выход данных модуля USI в режиме SPI
USCK Вход/выход тактового сигнала модуля USI в режиме SPI
SDA
Вход/выход данных модуля USI в режиме TWI
SCL Вход/выход тактового сигнала модуля USI в режиме TWI
RXD Вход USART
TXD Выход USART
XCK Вход/выход внешнего тактового сигнала USART
RESET Сброс
Tn Вход внешнего тактового сигнала таймера/счетчика Tn
OCnX Выход X таймера/счетчика Tn
ICP Вход захвата таймера/счетчика
dW Вывод отладочного интерфейса debugWire
GND Общий провод
VCC Питание микросхемы

Всё о микроконтроллерах AVR

Микроконтроллер — микросхема, предназначенная для управления электронными устройствами.

AVR – это название популярного семейства микроконтроллеров, которое выпускает компания 

Atmel. Кроме АВР под этим брендом выпускаются микроконтроллеры и других архитектур, например, ARM и i8051.

Какими бывают AVR микроконтроллеры?

Существует три вида микроконтроллеров:

  1. AVR 8-bit.
  2. AVR 32-bit.
  3. AVR xMega

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

Микроконтроллеры AVR 8-bit в свою очередь делятся на два популярных семейства:

  • Attiny – из названия видно, что младшее (tiny – юный, молодой, младший), в основном имеют от 8 пинов и более. Объём их памяти и функционал обычно скромнее, чем в следующем;
  • Atmega – более продвинутые микроконтроллеры, имеют большее количество памяти, выводов и различных функциональных узлов;

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

Расшифровка: Пин (англ. pin – иголка, булавка) – это вывод микроконтроллера или как говорят в народе – ножка. Отсюда же слово «распиновка» – т.е. информация о назначении каждой из ножек.

Для чего нужны и на что способны микроконтроллеры?

Микроконтроллеры применяются почти везде! Практически каждое устройство в 21 веке работает на микроконтроллере: измерительные приборы, инструменты, бытовая техника, часы, игрушки, музыкальные шкатулки и открытки, а также многое другое; одно лишь перечисление займет несколько страниц текста.

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

В распространенных AVR-микроконтроллерах, например, Atmega328, который на 2017 году является сердцем многих плат Arduino, но о них позже. Используется 8 канальный АЦП, с разрядностью 10 бит. Это значит вы сможете считать значение с 8 аналоговых датчиков. А к цифровым выводам подключаются цифровые датчики, что может быть очевидным. Однако цифровой сигнал может являться только 1 (единицей) или 0 (нулем), в то время как аналоговый может принимать бесконечное множество значений.

Пояснение:

Разрядность – это величина, которая характеризует качество, точность и чувствительность аналогового входа. Звучит не совсем понятно. Немного практики: 10 битный АЦП, записать аналоговую информацию с порта в 10 битах памяти, иначе говоря плавно изменяющийся цифровой сигнал микроконтроллером распознается как числовое значение от 0 до 1024.

12 битный АЦП видит тот же сигнал, но с более высокой точностью – в виде от 0 до 4096, а это значит, что измеренные значения входного сигнала будут в 4 раза точнее. Чтобы понять откуда взялись 1024 и 4096, просто возведите 2 в степени равную разрядности АЦП (2 в степени 10, для 10 разрядного и т.д.)

Чтобы управлять мощностью нагрузки к вашему распоряжению есть ШИМ-каналы, их можно задействовать, например, для регулировки яркости, температуры, или оборотов двигателя. В том же 328 контроллере их 6.

В общем структура AVR микроконтроллера изображена на схеме:

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

  • АЛУ – арифметико-логическое устройство. Нужно для выполнения вычислении.
  • Регистры общего назначения (РОН) – регистры которые могут принимать данные и хранить их в то время пока микроконтроллер подключен к питанию, после перезагрузки стираются. Служат как временные ячейки для операций с данными.
  • Прерывания – что-то вроде события которое возникает по внутренним или внешним воздействиям на микроконтроллер – переполнение таймера, внешнее прерывание с пина МК и т.д.
  • JTAG – интерфейс для внутрисхемного программирования без снятия микроконтроллера с платы.
  • Flash, ОЗУ, EEPROM – виды памяти – программ, временных рабочих данных, долгосрочного хранения независимая от подачи питания к микроконтроллеру соответственно порядку в названиях.
  • Таймеры и счетчики
     – важнейшие узлы в микроконтроллере, в некоторых моделях их количество может быть до десятка. Нужны для того, чтобы отчитывать количество тактов, соответственно временные отрезки, а счетчики увеличивают свое значение по какому-либо из событий. Их работа и её режим зависят от программы, однако выполняются эти действия аппаратно, т.е. параллельно основному тексту программы, могут вызвать прерывание (по переполнению таймера, как вариант) на любом этапе выполнения кода, на любой его строке.
  • A/D (Analog/Digital) – АЦП, его назначение мы уже описали ранее.
  • WatchDogTime (Сторожевой таймер) – независимый от микроконтроллера и даже его тактового генератора RC-генератор, который отсчитывает определенный промежуток времени и формирует сигнал сброса МК, если тот работал, и пробуждения – если тот был в режиме сна (энергосбережния). Его работу можно запретить, установив бит WDTE в 0.

Выходы микроконтроллера довольно слабые, имеется в виду то, что ток через них обычно до 20-40 миллиампер, чего хватит для розжига светодиода и LED-индикаторов. Для более мощной нагрузки – необходимы усилители тока или напряжения, например, те же транзисторы.

Что нужно чтобы начать изучение микроконтроллеров? 

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

Следующее что Вам нужно – программатор. Он нужен для загрузки прошивки в память МК, самым дешевым и популярным считается USBASP.

Немногим дороже, но не менее распространенный программатор AVRISP MKII, который можно сделать своими руками – из обычной платы Arduino

Другой вариант – прошивать их через USB-UART переходник, который обычно делается на одном из преобразователей: FT232RL, Ch440, PL2303 и CP2102.

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

  • ATmega8U2;
  • ATmega16U2;
  • ATmega32U2.

Одно лишь «но» – в память микроконтроллера предварительно нужно загрузить UART бутлоадер. Разумеется, для этого все равно нужен программатор для AVR-микроконтроллеров.

Интересно: Bootloader – это обычная программа для микроконтроллера, только с необычной задачей – после его запуска (подключения к питания) он ожидает какое-то время, что в него могут загрузить прошивку. Преимуществом такого метода – можно прошить любым USB-UART переходником, а они очень дешевы. Недостаток – долго загружается прошивка.

Для работы UART (RS-232) интерфейса в микроконтроллерах AVR выделен целый регистр UDR (UART data register). UCSRA (настройки битов приемопередатчика RX, TX), UCSRB и UCSRС – набор регистров отвечающие за настройки интерфейса в целом.

В чем можно писать программы?

Кроме программатора для написания и загрузки программы нужно IDE – среда для разработки. Можно конечно же писать код в блокноте, пропускать через компиляторы и т.д. Зачем это нужно, когда есть отличные готовые варианты. Пожалуй, один из наиболее сильных – это IAR, однако он платный.

Официальным IDE от Atmel является AVR Studio, которая на 6 версии была переименована в Atmel studio. Она поддерживает все микроконтроллеры AVR (8, 32, xMega), автоматически определяет команды и помогает ввести, подсвечивает правильный синтаксис и многое другое. С её же помощью можно прошивать МК.

Наиболее распространённым является – C AVR, поэтому найдите самоучитель по нему, есть масса русскоязычных вариантов, а один из них – Хартов В.Я. «Микроконтроллеры AVR. Практикум для начинающих».

Самый простой способ изучить AVR

Купите или сделайте своими руками плату Arduino. Проект ардуино разработан специально для учебных целей. Он насчитывает десятки плат различных формами и количеством контактов. Самое главное в ардуино – это то что вы покупаете не просто микроконтроллера, а полноценную отладочную плату, распаянную на качественной текстолитовой печатной плате, покрытой маской и смонтированными SMD компонентами.

Самые распространенные – это Arduino Nano и Arduino UNO, они по сути своей идентичны, разве что «Нано» меньше примерно в 3 раза чем «Уно».

Несколько фактов:

  • Ардуино может программироваться стандартным языком – «C AVR»;
  • своим собственным – wiring;
  • стандартная среда для разработки – Arduino IDE;
  • для соединения с компьютером достаточно лишь подключить USB шнур к гнезду micro-USB на плате ардуино нано, установить драйвера (скорее всего это произойдет автоматически, кроме случаев, когда преобразователь на Ch440, у меня на Win 8.1 драйвера не стали, пришлось скачивать, но это не заняло много времени.) после чего можно заливать ваши «скетчи»;
  • «Скетчи» – это название программ для ардуино.

Выводы

Микроконтроллеры станут отличным подспорьем в вашей радиолюбительской практике, что позволит вам открыть для себя мир цифровой электроники, конструировать свои измерительные приборы и средства бытовой автоматики. 

Ранее ЭлектроВести писали, что в аэропорту «Борисполь» запустили первое электрозарядное устройство на два паркоместа. Об этом сообщил на своей странице в Facebook заместитель гендиректора аэропорта Георгий Зубко.

По материалам: electrik.info.

ПРОГРАММИРУЕМ ATTINY85 ИЗ ARDUINO ISP

 

Распиновка микроконтроллера Attiny85

Начнем с того, а есть ли у вас ардуино и Attiny85? Нет? Идем покупать, и снова за статью. Для тех у кого есть Arduino — устанавливаем среду программирования Arduino IDE. Кратенько напомним как это сделать.

Идём на сайт arduino.cc и скачиваем Arduino IDE (на данный момент версия Arduino 1.0.5), Windows Installer, чтобы ни чем не заморачиваться, пусть сама думает куда ставится, чего, и как называть. Скачать ардуино можно по ссылке http://arduino.googlecode.com/files/arduino-1.0.5-r2-windows.exe

Запускаем установку от имени «Администратора», трудностей с установкой как правило не возникает, только если у вас система супер экзотическая, далее соглашаемся доверять программному обеспечению… на этом с установкой ArduinoIDE все.

Теперь для тех у кого есть Attiny85, и вы решили узнать что это такое…. Чтобы настроить Arduino IDE для работы с микроконтроллерами ATtiny, нужны следующие вещи:

Макетная плата, можно самую маленькую.
Соединительные провода.
Arduino UNO или Duemilanome.
Электолитический конденсатор 10Мкф на 25V.
Светодиод.
Резистор 200 Ом.

Платформа Arduino поддерживает микроконтроллеры фирмы Atmel ATmega, для поддержки микроконтроллеров ATtiny84 (84/44/24), ATtiny85 (85/45/25), and ATtiny2313 (4313), а также ATtiny13, необходимо добавить все эти элементы в ядро. Для этого скачиваем архив — актуальную версию можно скачать с «arduino-tiny» http://code.google.com/p/arduino-tiny/) с нужными элементами (на сегодня актуальна arduino-tiny-0100-0018.zip), и распаковываем его в…

…Заходим в директорию для Windows7 это c:UsersAlexGercen*DocumentsArduino и создаем здесь папку «hardware», заходим в нее, создаем папку «tiny», распаковываем архив в эту папку. После распаковки архива заходим в c:Users AlexGercen*DocumentsArduinohardwaretiny, и в этой директории переименовываем файл Prospective Boards.txt в boards.txt.

Для микроконтроллеров ATtiny13, тоже понадобится другое ядро, но это другая история…

* имя пользователя Windows — у меня AlexGercen, у вас свое.

Теперь все готово для запуска среды программирования arduinoide, запускаем ее с рабочего стола. В меню выбираем Файл, Настройки, Editor Language — выбираем русский язык, и за одно смотрим путь «Расположения папки со скетчами» (это к тому, туда ли вы распаковали ядро для Attiny).

 

Меню программы Arduino IDE — настройки языка

Далее переходим в меню Сервис, Программатор, Arduino us ISP

 

Arduino как программатор ISP (Arduino us ISP)

Подключаем плату Arduino через USB шнур и в меню ArduinoIDE жмем в верхнем меню на кружок со стрелкой — Загрузить. После этого наша плата готова работать как программатор.

Теперь выбираем устройство — Сервис, Плата, «ATtiny85 @ 8 MHz (internal oscillator; BOD disabled)» поскольку кварц нам не нужен.

 

В меню Arduino IDE «Сервис» выбираем attiny 85

 

Теперь, после всех проделанных манипуляций, плата готова работать не просто как программатор, а программатор Attiny 85.

Остаётся присоединить к портам ардуины тиньку и залить в нее программу.

Продолжение следует…

Подключение сдвигового регистра 74HC595 к светодиодному индикатору на примере ATtiny13 и Ардуино | Электроника и жизнь

Здравствуйте, уважаемые читатели! В прошлой статье мы говорили о семисегментном индикаторе и о его подключении к Ардуино. Сегодня поговорим о подключении данного индикатора к микроконтроллерам семейства ATtiny с помощью сдвигового регистра 74HC595. Подключать я буду на примере ATtiny13.

Сдвиговый регистр 74HC595

Сдвиговый регистр 74HC595

Если посмотреть схему подключения из прошлой статьи, в которой мы задействовали 9 пинов Arduino UNO (8 цифровых пинов и землю), то очевидно, что у малыша ATtiny просто не хватит ног. У него всего 8 ног, из которых только 5 мы можем использовать как цифровые.

В этом случае у нас есть два варианта: либо взять микроконтроллер с большим количеством пинов, например, очень популярный вариант ATtiny2313, либо использовать сдвиговый регистр, который задействует только 3 пина микроконтроллера, а на выходе даст результат работы 8 цифровых пинов.

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

Изначально мы соберем схему на Arduino UNO, протестируем, а затем, вместо Ардуино подключим ATtiny13 и адаптируем подключение и схему для него.

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

Распиновка сдвигового регистра 74HC595

Распиновка сдвигового регистра 74HC595

Пины с 1 по 7, на схеме обозначенные от Q1 до Q7 и еще пин номер 15, обозначенный на схеме как Q0 – это цифровые выходы, которые и будут зажигать секции светодиодного индикатора.

8 пин – пин для подключения земли, а 16 пин для подачи напряжения 5В.

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

10 пин – это reset. Он очищает память регистра, при подаче низкого уровня сигнала, т.е. логического нуля. Нам это не нужно, поэтому данный пин будет постоянно подключен к питанию 5В.

С помощью подачи 5 В на 13 пин мы можем отключить выходные пины Q0-Q7. При этом значение, записанное в память регистра сохраняться. Т.е. этот пин, можно использовать для включения и отключения светодиодного индикатора. А пока что соединим его с землей.

Самое интересное происходит с пинами 11, 12 и 14, которые мы и подключаем к микроконтроллеру и по ним передаем данные, управляющие сдвиговым регистром.

Начнем с 12 пина (ST). При подаче низкого уровня сигнала на данный пин, мы подготавливаем регистр к приему цифровых данных от микроконтроллера. А при подаче высокого уровня сигнала, записывает данные во внутреннюю память регистра и одновременно, передаем сигналы на цифровые выходы регистра.

14 пин (Ds) принимает значение для выбранного бита. Т.е. при получении высокого уровня сигнала 5 В, записывается в память единица, а при получении низкого уровня сигнала, записывается 0.

А при подаче 5 В на 11 пин (SH), мы произведем сдвиг битов влево, чтобы освободить место получения нового значения через 14 пин Ds.

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

В среде Arduino IDE есть стандартная функция shiftOut(), которая значительно упрощает работу со сдвиговым регистром.

shiftOut (dataPin, clockPin, bitOrder, value)

В качестве первого аргумента (dataPin) нужно указать пин микроконтроллера, который соединен с 14 пином (Ds) сдвигового регистра.

В качестве второго аргумента (clockPin) нужно указать пин микроконтроллера, который соединен с 11 пином (SH) сдвигового регистра.

Третий аргумент (bitOrder) задает порядок чтения передаваемых регистру байт – слева направо (MSBFIRST) или справа налево (LSBFIRST).

Четвертый аргумент (value) – собственно битовое представление передаваемой цифры.

Вначале соберем схему на макетной плате с Arduino UNO.

Схема подключения сдвигового регистра 74HC595 к Ардуино

Схема подключения сдвигового регистра 74HC595 к Ардуино

Разместим на макетной плате светодиодный индикатор и рядом сдвиговый регистр.

Пины 5 В и GND Arduino UNO соединим с плюсом и минусом макетной платы.

Пины с 1 по 7 сдвигового регистра соединим с пинами светодиодного индикатора, в том же порядке, в каком они идут у светодиодного индикатора, пропуская 3 пин, связанный с землей, 5-й пин связанный с точкой и 8-й пин снова связанный с землей.

3 пин светодиодного индикатора соединим через резистор 220 Ом с землей.

Всё, со светодиодным индикатором закончили, возвращаемся к регистру. 8 его пин соединяем с землей, 16 пин с плюсом макетной платы. Еще с плюсом соединим 10 пин, а с минусом 13 пин.

Остались у нас пины для связи с микроконтроллером. Подключим 11 пин (SH) ко второму пину Arduino UNO, 12 пин (ST) к 3 пину Ардуино, а 14 пин (Ds) к 4 пину Ардуино.

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

Скетч для работы сдвигового регистра 74HC595 и Ардуино

Скетч для работы сдвигового регистра 74HC595 и Ардуино

В функции setup() настроим пины со 2 по 4 для работы с выходным сигналом.

А в функции loop() в цикле будем последовательно выводить все цифры от 0 до 9.

В начале подаем низкой уровень сигнала, на 12 пин (ST) регистра, подготавливая его к приему новых данных. Далее с помощью функции shiftOut() указываем номера пинов связанных с пином 14 (Ds) и 11 (SH) сдвигового регистра и передаем регистру битовое представление текущей цифры. После этого, подаем высокий уровень сигнала на 12 пин (ST), сообщая регистру, что записанные данные можно отправлять на цифровые выводы.

Загружаем скетч в Ардуино. И видим как цифры последовательно сменяют друг друга.

Подключение сдвигового регистра 74HC595 к Arduino UNO на макетной плате

Подключение сдвигового регистра 74HC595 к Arduino UNO на макетной плате

Кстати, если переподключить 13 пин сдвигового регистра с минуса на плюс, то светодиодный индикатор гаснет, но перебор цифр продолжается. Т.е. как будто отключился экран, в режиме энергосбережения.

Теперь вместо Arduino UNO подключим ATtiny13. Подключение аналогичное. Только у ATtiny13 мы задействуем 5,6 и 7 ножки, которые в Arduino IDE обозначаются 0, 1 и 2.

Видоизменяем скетч для работы с ATtiny. Загружаем скетч в ATtiny.

Скетч для работы сдвигового регистра 74HC595 и ATtiny13

Скетч для работы сдвигового регистра 74HC595 и ATtiny13

Все ссылки на статьи по прошивке микроконтроллеров ATtiny, а так же схемы и скетчи я оставлю в конце статьи.

Устанавливаем ATtiny13 на макетную плату. 5, 6 и 7 его ножки соединяю с 11, 12 и 14 пинами сдвигового регистра. 4 ножку с минусом, а 8 с землей.

Схема подключения сдвигового регистра 74HC595 к ATtiny13

Схема подключения сдвигового регистра 74HC595 к ATtiny13

А в качестве источника питания буду использовать LiPo аккумулятор на 3,7 В.

Как только подаем питание на схему, видим как последовательно выводятся все цифры от 0 до 9.

Подключение сдвигового регистра 74HC595 к ATtiny13 на макетной плате

Подключение сдвигового регистра 74HC595 к ATtiny13 на макетной плате

Таким образом, можно выводить на светодиодный индикатор информацию, которую получает микроконтроллер с датчиков, в том числе, которую он хранит в памяти. Я обязательно вернусь к теме работы со светодиодными индикаторами, когда необходимо будет извлекать из энергонезависимой памяти EEPROM информацию, которую туда в течение какого-то периода записывал микроконтроллер ATtiny.

О 4-х символьных индикаторах поговорим в одной из следующих статей. Т.к. есть вариант использования вот таких готовых модулей. Существенно упрощающих подключение светодиодного индикатора к микроконтроллеру. Что в каких случаях лучше использовать и о способах подключения светодиодного индикатора и модуля на его основе к Ардуино и ATtiny мы обсудим далее.

Схема подключения сдвигового регистра 74HC595 к Ардуино – https://yadi.sk/i/aq6c40LjqrmxaA

Схема подключения сдвигового регистра 74HC595 к ATtiny13 – https://yadi.sk/i/aq6c40LjqrmxaA

Скетч семисегментный индикатор + сдвигового регистра 74HC595 + Arduino UNO -https://yadi.sk/d/pO3-qut4WgpLUQ

Скетч семисегментный индикатор + сдвигового регистра 74HC595 + ATtiny13 – https://yadi.sk/d/pO3-qut4WgpLUQ

Видео по материалам статьи:

_________________________________________________________

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

Другие публикации по теме:

Добавляем поддержку не родных м/к в среду Arduino IDE

Добавляем поддержку не родных м/к в среду Arduino IDE

Иногда можно использовать в своих проектах умного дома более простые или слабые микроконтроллеры,где ресурсов может быть достаточно для простых операций -Такие микроконтроллеры дешевле.Кроме программирования таких микроконтроллеров в более сложной среде разработки в WinAVR или CodeVisionAVR можно использовать среду Arduino IDE,добавив их поддержку.Иногда могут пригодится микроконтроллеры с бОльшим количеством портов,например Atmega16 и Atmega32 – их так же можно программировать в Arduino.

 

Обратите внимание,что обычно микроконтроллер с завода настроен на внутренний генератор и чаще всего прошивка загрузчика переключает микроконтроллер на внеший кварц – так что Вы должны позабодиться о подключении кварца к выводам микроконтроллера(выводы XTAL) по стандартной схеме.Исключение – серия attiny и некоторые другие м/к..

Серия микроконтроллеров ATtiny

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

 attiny13,attiny2313, attiny45, attiny44,attiny85, attiny84, attiny25, attiny24, attiny4313

Цоколевка микроконтроллеров

Для программирования ATtiny 13/25/45/85 подключим его к нашему программатору согласно даташиту:

 

Примечание: У ATtiny13  нет шины i2c и имеет всего 1кб под программу.У ATtiny 25/45/85 имеется последовательный порт на выводах PB4 -RX ,PB3 – TX ,но м/к не поддерживают загрузку через его,только обмен данными.

У ATtiny 2313 и 4313 другая цоколевка,но подключается так же:

Настройка Arduino IDE для микроконтроллеров ATtiny

Для этого необходимо дописать нужные микроконтроллеры в файл boards.txt  и распаковать  архив arduino-tiny в папку  папка_arduino/hardware/arduino/ 

Последнюю версию arduino-tiny можно найти тут.

Например ,чтобы добавить в список поддерживаемых контроллеров ATtiny85 необходимо добавить следущий текст в boards.txt:

###########################################################################
attiny85.name=Optiboot ATtiny85 @ 8 MHz (internal osc)
attiny85.upload.protocol=arduino
attiny85.upload.speed=9600
#bootloader takes up last 10 pages, so there is a limit on the max size.
attiny85.upload.maximum_size=7616
attiny85.bootloader.low_fuses=0xE2
attiny85.bootloader.high_fuses=0xD7
attiny85.bootloader.extended_fuses=0xFE
attiny85.bootloader.path=optiboot
attiny85.bootloader.file=optiboot_attiny85.hex
attiny85.build.mcu=attiny85
attiny85.build.f_cpu=8000000L
attiny85.build.core=tiny
attiny85.build.variant=tinyX5
 # вариант c частотой внутренного генератора 8 мгц.
###########################################################################

Остальные примеры поддерживаемых микроконтроллеров можно посмотреть в файле Prospective Boards.txt архива arduino-tiny .

Для ATtiny13 необходимо другое ядро ,для этого распакуем архив в папку hardware\arduino\cores\core13\

 и добавляем в список boards.txt:

#############################################

attiny13.name=ATtiny13 (internal 9.6 MHz clock)
attiny13.bootloader.low_fuses=0x7a
attiny13.bootloader.high_fuses=0xff
attiny13.upload.maximum_size=1024
attiny13.build.mcu=attiny13
attiny13.build.f_cpu=9600000L
attiny13.build.core=core13
attiny13.build.variant=tiny8

###############################################

Сейчас мы можем программировать добавленные микроконтроллеры через плату Arduno или USBasp.

Другие микроконтроллеры ATmega

ATmega8 без загрузчика

Чтобы добавить м/к ATmega8 без загрузчика добавляем в boards.txt следущий текст:

###########################################################################
atmega8A.name=ATmega8A
atmega8A.bootloader.low_fuses=0xFF
atmega8A.bootloader.high_fuses=0xCF
atmega8A.bootloader.unlock_bits=0x3F
atmega8A.bootloader.lock_bits=0x0F
atmega8A.upload.maximum_size=8192
atmega8A.build.mcu=atmega8
atmega8A.build.f_cpu=16000000L
atmega8A.build.core=arduino:arduino
atmega8A.build.variant=standard

# вариант без загрузчика и частотой м/к 16 мгц.
###########################################################################

 ATmega8 имеется в списке поддерживаемых как Arduino NG or older с загрузчиком,который отнимает 1 кб ,при таком загрузчике микроконтроллер можно прошивать стандартно,установив его например в Arduino UNO.Сконфигурировать свой загрузчик на другую частоту вы можете в Конструкторе Bootloader`а.

ATmega32 ,ATmega16,ATmega1284,ATmega644,ATmega324

Для добавления данных микроконтроллеров необходимо распаковать из архива avr-netino папку hardware\avrnetio и поместить её в папку Arduiono_ide\hardware\ .Другие папки с примерами и библиотеками можно так же распаковать в соотвествующие папки при необходимости.

Расмотрим пример на  микроконтроллере ATmega32:

Микроконтроллер ATmega32 имеет 40 ножек из них 32 – это порты ввода вывода.

Расшифруем основные из них:

D – это цифровые выводы в нумерации arduino.

AI – аналоговые входы.

PWM – выводы с возможностью ШИМ.

 

Если Вы правельно скопировали папку avrnetio ,то после запуска Arduino IDE Вы увидите добавленные микроконтроллеры в общем списке.Вы можете исправить или удалить некоторые ненужные микроконтроллеры в файле hardware\avrnetio\board.txt 

Если сейчас подключить микроконтроллер к  Arduno или USBasp ,то можно уже заливать скетчи из среды Arduino IDE .

Обратите внимание,что новый м/к запрограммирован работать от внутреннего генератора и при прошивке загрузчика (через меню сервис-> записать загрузчик) поменяются фьюзы на режим от внешнего кварца.Загрузчик прошивать не обязательно,если Вы не хотите Заливать скетчи через последовательный порт.Перед прошивкой загрузчика можно поправить фьюзы в файле board.txt в строках bootloader.low_fuses и bootloader.high_fuses используя калькулятор фьзов.

Хотя avr-netino и поставляется с загрузчиками,но загрузка через последовательный порт на ATmega32 у меня не заработала.Для загрузки через его необходимо подсунуть “правельный” загрузчик в папку /hardware/avrnetio/bootloaders/optiboot/ из архива boots.zip ,заменив в файле board.txt имя файла загрузчика в строке bootloader.file соотвествующего микроконтроллера.Сконфигурировать свой загрузчик на другую частоту вы можете в Конструкторе Bootloader`а

ATtiny2313 Распиновка, программирование и функции 8-битного микроконтроллера AVR

ATtiny2313 – один из небольших микроконтроллеров на базе технологии Flash и архитектуры RISC. Интегрированная ИС с контактами GPIO, процессором, памятью и другими периферийными устройствами. Высокотехнологичный чип с низким энергопотреблением, представленный Microchip, имеет скорость 12 миллионов инструкций в секунду и EEPROM данных размером 128 байт. Он находит свое применение от бытовых устройств до промышленного уровня для обеспечения цифрового управления системами.

Это руководство представляет собой введение в микроконтроллер ATtiny2313. Здесь будут обсуждаться все функции, характеристики, конфигурация контактов, работа контактов GPIO и приложения.

ATtiny2313 Введение

Микроконтроллер AVR

ATtiny2313 представляет собой 8-битный микроконтроллер с внутренним генератором 4 МГц. Он имеет 20 контактов, из которых 18 являются контактами GPIO, атрибутом отладки debugWIRE, портом и портом USART для последовательного взаимодействия различных датчиков и электронных компонентов.Он также имеет встроенный сторожевой таймер для работы в энергосберегающем режиме.

ATtiny2313 Распиновка

На следующей схеме показана распиновка микроконтроллера AVR ATtiny2313:

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

Обсудим распиновку микроконтроллера AVR ATtiny 2313. Подробная информация о конфигурации выводов в табличной форме указана ниже:

Номер Имя контакта Функция
1 Reset / dW / PA2 PortA2 / Reset / debug wire pin
2 PD0 / RXD Dual I / Порт вывода D0 / UART Приемный вывод
3 PD1 / TXD Двойной порт ввода-вывода D1 / UART Вывод передачи
4 PA1 / XTAL2 Вывод PortA1 / осциллятора
5 PA0 / XTAL1 PortA0 / Осциллятор на контакте
6 CKOUT / XCK / INT0 / PD2 Тактовый выход / USART Тактовый сигнал / прерывание0 / Двойной порт ввода / выводаD2 контакт
7 PD3 / INT1 Двойной порт ввода-вывода D3 / контакт прерывания 1
8 PD4 / T0 Двойной порт ввода-вывода D4 / выходной контакт таймера 0
9 PD5 / OC0B / T1 Двойной ввод-вывод PortD5 / Выход сравнения B выход / ВРЕМЯ r1 контакт
10 GND Ground
11 PD6 / ICP Dual I / O Port D6 / Input Capture pin
12 PB0 / AIN0 / PCINT0 Dual I / O PortB0 / Аналоговый компаратор0 / Прерывание смены контакта 0 контакт
13 PB1 / AIN1 / PCINT1 Порт двойного ввода / выводаB1 / Аналоговый компаратор1 / Прерывание смены контакта 1 контакт
14 PB2 / OC0A / PCINT2 Двойной порт ввода / выводаB2 / Сравнение выходов 0 A / Прерывание смены контакта 2 контакта
15 PB3 / OC1A / PCINT3 Порт двойного ввода / выводаB3 / Сравнение выходов1 Прерывание смены A / контакта 3 контакта
16 PB4 / OC1B / PCINT4 Двойной порт ввода / выводаB4 / Сравнение выходов1 B / Прерывание смены контакта 4 контакта
17 PB5 / MOSI / DI / SDA / PCINT5 Порт двойного ввода / выводаB5 / MOSI / SDA / Прерывание смены контакта 2 контакта
18 PB6 / MISO / DO / PCINT6 Двойной порт ввода / вывода B6 / MISO / Вывод данных / прерывание смены контакта 6 контактов
19 PB7 / UCSK / SCL / PCINT7 Порт двойного ввода / вывода B7 / универсальный последовательный интерфейс / SCL / Прерывание смены контакта 7 контактов
20 VCC Контакт источника питания
  • контактов GPIO: всего 20 контактов GPIO, из которых 18 контактов ввода-вывода и 3 порта
  • Прерывания: Прерывания – это подпрограммы, используемые для выполнения определенных инструкций перед обычными инструкциями.
  • Осцилляторы / XTAL: ATtiny2313 имеет внутренний генератор на 4 МГц, но его можно настроить, предоставив тактовую частоту через вывод внешних осцилляторов для быстрой обработки.
  • MOSI / MISO: Эти выводы предназначены для последовательной связи и взаимодействия контроллеров и устройств. MOSI используется для отправки данных с микроконтроллера на периферийные устройства, тогда как MISO используется для приема данных.
  • ICP: входной вывод захвата используется для захвата для измерения импульсов таймеров
  • dW: он используется для управления потоком выполнения программы путем чтения и записи во все блоки памяти

Выводы UART

UART Номер контакта
RXD PD0
TXD PD1

Контакты внешнего прерывания

Номер прерывания Номер контакта
INT0 PD3
INT1 PD4

Контакты UART

Контакты SPI Номер контакта
MOSI PB5
MISO PB6
SCK PB7

Контакты I2C

UART Номер контакта
SDA PB5
SCL PB7

ATtiny2313 Характеристики и характеристики

Функции и периферия Доступность
Архитектура RISC
Количество контактов 20
SRAM 128 байт
EEPROM / HEF 128 байт
Программная память 2 килобайта
Частота процессора 20 МГц (макс.)
Внутренний осциллятор 4 МГц
Количество компараторов 1
АЦП Нет
ЦАП Нет
USB-модуль Нет
Выбор периферийного контакта Нет
Каналы ШИМ 4
Разрешение ШИМ 1024
Количество таймеров 2
12C модуль 1
Модуль UART 1
Сенсорный колпачок Каналы 4
Оконный сторожевой таймер (WWDT)

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

  • Ширина шины данных: 8 бит
  • Количество выводов: 20 (PDIP / SOIC / MLF / QFN)
  • Скорость процессора: 12 миллионов инструкций в секунду
  • Программная память: 2 КБ
  • Статическая ОЗУ: 128 байтов
  • EEPROM данных: 128 Байт
  • Каналы ШИМ: 4
  • Рабочая температура: -40 0 C – 85 0 C

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

Некоторые подробные характеристики перечислены ниже:

  • высокопроизводительные микроконтроллеры CMOS с технологией Flash
  • работают в широком диапазоне 2.7 – 5,5 вольт, поэтому он является энергоэффективным. опция сброса
  • 3 режима питания, т.е. режим ожидания, режим отключения питания и режим ожидания
  • Имеет внутренние / внешние прерывания и 2 разных таймера
  • Порт SPI, USART для последовательного программирования
  • Сторожевой таймер для работы и пробуждения
  • ЦП на базе 8-битной RISC-архитектуры
  • 120 наборов инструкций за цикл
  • Электрически стираемая память Программируемая постоянная память размером 125 × 8 байт для хранения некоторых из данные постоянно

Как программировать микроконтроллер AVR ATtiny2313

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

Компиляторы поддержки

Нам нужны IDE, IPE, подходящий компилятор и программист / отладчик для разработки программы. Функция IDE (интегрированная среда разработки) – предоставить среду для программирования. Компилятор преобразует программу в читаемые файлы HEX. IPE (интегрированная среда программирования) служит для записи файлов HEX в микроконтроллерах AVR.

Ассемблер все еще работает для программирования. Некоторые из наиболее часто используемых компиляторов – это Micro C для AVR, AVR и ARM Toolchains, предоставляемые производителями Atmel, известные как Microchip.

Atmel-ICE – это внутрисхемный программатор / отладчик, который играет важную роль в программировании AVR. Он поддерживает внутрисхемное последовательное программирование, управляемое компьютером, для записи кода в AVR ATtiny2313 с помощью Atmel Studio. Кроме того, требуется оборудование, такое как монтажная плата, паяльная станция, кварцевый осциллятор, конденсаторы, микросхема AVR.

Альтернативные микроконтроллеры

  • ATtiny2313A (эквивалент)
  • ATmega8515
  • ATmega8535
  • ATmega645A
  • ATmeg6490
  • ATmega8a
  • ATmega88PA
  • ATtiny3
  • ATtiny3204
  • ATtiny3
    • Сенсорные системы
    • Медицинские системы
    • Системы домашней автоматизации
    • Недорогие встроенные системы
    • Автомобили
    • Для целей обороны и безопасности

    2D-диаграмма

    ATtiny2313 8-битный микроконтроллер AVR поставляется в трех корпусах: i.е., 20П3, 20С и 20М1. На следующем рисунке показана 2-я модель 8-разрядного микроконтроллера AVR ATtiny2313 (20P3). Он показывает нам физические размеры компонентов, необходимых при проектировании печатной платы.

    Другие микроконтроллеры AVR:

    Учебные пособия по микроконтроллеру

    AVR:

    % PDF-1.6 % 16444 0 объект > эндобдж xref 16444 712 0000000016 00000 н. 0000018501 00000 п. 0000018637 00000 п. 0000018845 00000 п. 0000018876 00000 п. 0000018930 00000 п. 0000018969 00000 п. 0000019195 00000 п. 0000019284 00000 п. 0000019369 00000 п. 0000019457 00000 п. 0000019545 00000 п. 0000019633 00000 п. 0000019721 00000 п. 0000019809 00000 п. 0000019897 00000 п. 0000019985 00000 п. 0000020073 00000 п. 0000020161 00000 п. 0000020249 00000 п. 0000020337 00000 п. 0000020425 00000 п. 0000020513 00000 п. 0000020601 00000 п. 0000020689 00000 п. 0000020777 00000 п. 0000020865 00000 п. 0000020953 00000 п. 0000021041 00000 п. 0000021129 00000 п. 0000021217 00000 п. 0000021305 00000 п. 0000021393 00000 п. 0000021481 00000 п. 0000021569 00000 п. 0000021657 00000 п. 0000021745 00000 п. 0000021833 00000 п. 0000021921 00000 п. 0000022009 00000 п. 0000022097 00000 п. 0000022185 00000 п. 0000022273 00000 п. 0000022361 00000 п. 0000022449 00000 п. 0000022537 00000 п. 0000022625 00000 п. 0000022713 00000 п. 0000022801 00000 п. 0000022889 00000 п. 0000022977 00000 п. 0000023065 00000 п. 0000023153 00000 п. 0000023241 00000 п. 0000023329 00000 п. 0000023417 00000 п. 0000023505 00000 п. 0000023593 00000 п. 0000023681 00000 п. 0000023769 00000 п. 0000023857 00000 п. 0000023945 00000 п. 0000024033 00000 п. 0000024121 00000 п. 0000024209 00000 п. 0000024297 00000 п. 0000024385 00000 п. 0000024473 00000 п. 0000024561 00000 п. 0000024649 00000 п. 0000024737 00000 п. 0000024825 00000 п. 0000024913 00000 п. 0000025001 00000 п. 0000025089 00000 п. 0000025177 00000 п. 0000025265 00000 п. 0000025353 00000 п. 0000025441 00000 п. 0000025529 00000 п. 0000025617 00000 п. 0000025705 00000 п. 0000025793 00000 п. 0000025881 00000 п. 0000025969 00000 п. 0000026057 00000 п. 0000026145 00000 п. 0000026233 00000 п. 0000026321 00000 п. 0000026409 00000 п. 0000026497 00000 п. 0000026585 00000 п. 0000026673 00000 п. 0000026761 00000 п. 0000026849 00000 п. 0000026937 00000 п. 0000027025 00000 п. 0000027113 00000 п. 0000027201 00000 п. 0000027289 00000 н. 0000027377 00000 п. 0000027465 00000 н. 0000027553 00000 п. 0000027641 00000 п. 0000027729 00000 н. 0000027817 00000 п. 0000027905 00000 н. 0000027993 00000 н. 0000028081 00000 п. 0000028169 00000 п. 0000028257 00000 п. 0000028345 00000 п. 0000028433 00000 п. 0000028521 00000 п. 0000028609 00000 п. 0000028697 00000 п. 0000028785 00000 п. 0000028873 00000 п. 0000028961 00000 п. 0000029049 00000 н. 0000029137 00000 п. 0000029225 00000 п. 0000029313 00000 п. 0000029401 00000 п. 0000029489 00000 н. 0000029577 00000 п. 0000029665 00000 п. 0000029753 00000 п. 0000029841 00000 п. 0000029929 00000 н. 0000030017 00000 п. 0000030105 00000 п. 0000030193 00000 п. 0000030281 00000 п. 0000030369 00000 п. 0000030457 00000 п. 0000030545 00000 п. 0000030633 00000 п. 0000030721 00000 п. 0000030809 00000 п. 0000030897 00000 п. 0000030985 00000 п. 0000031073 00000 п. 0000031161 00000 п. 0000031249 00000 п. 0000031337 00000 п. 0000031425 00000 п. 0000031513 00000 п. 0000031601 00000 п. 0000031689 00000 п. 0000031777 00000 п. 0000031865 00000 п. 0000031953 00000 п. 0000032041 00000 п. 0000032129 00000 п. 0000032217 00000 п. 0000032305 00000 п. 0000032393 00000 п. 0000032481 00000 п. 0000032569 00000 п. 0000032657 00000 п. 0000032745 00000 п. 0000032833 00000 п. 0000032921 00000 п. 0000033009 00000 п. 0000033097 00000 п. 0000033185 00000 п. 0000033273 00000 п. 0000033361 00000 п. 0000033449 00000 п. 0000033537 00000 п. 0000033625 00000 п. 0000033713 00000 п. 0000033801 00000 п. 0000033889 00000 п. 0000033977 00000 п. 0000034065 00000 п. 0000034153 00000 п. 0000034241 00000 п. 0000034329 00000 п. 0000034417 00000 п. 0000034505 00000 п. 0000034593 00000 п. 0000034681 00000 п. 0000034769 00000 п. 0000034857 00000 п. 0000034945 00000 п. 0000035033 00000 п. 0000035121 00000 п. 0000035209 00000 п. 0000035297 00000 п. 0000035385 00000 п. 0000035473 00000 п. 0000035561 00000 п. 0000035648 00000 п. 0000035735 00000 п. 0000035822 00000 п. 0000035909 00000 п. 0000035996 00000 п. 0000036083 00000 п. 0000036170 00000 п. 0000036257 00000 п. 0000036344 00000 п. 0000036431 00000 н. 0000036518 00000 п. 0000036605 00000 п. 0000036692 00000 п. 0000036779 00000 п. 0000036866 00000 н. 0000036953 00000 п. 0000037040 00000 п. 0000037127 00000 п. 0000037214 00000 п. 0000037301 00000 п. 0000037388 00000 п. 0000037475 00000 п. 0000037562 00000 п. 0000037649 00000 п. 0000037736 00000 п. 0000037823 00000 п. 0000037910 00000 п. 0000037997 00000 п. 0000038084 00000 п. 0000038171 00000 п. 0000038258 00000 п. 0000038345 00000 п. 0000038432 00000 п. 0000038519 00000 п. 0000038606 00000 п. 0000038693 00000 п. 0000038780 00000 п. 0000038867 00000 п. 0000038954 00000 п. 0000039041 00000 п. 0000039128 00000 п. 0000039215 00000 н. 0000039302 00000 п. 0000039389 00000 п. 0000039476 00000 п. 0000039563 00000 п. 0000039650 00000 п. 0000039737 00000 п. 0000039824 00000 н. 0000039911 00000 н. 0000039998 00000 н. 0000040085 00000 п. 0000040172 00000 п. 0000040259 00000 п. 0000040346 00000 п. 0000040433 00000 п. 0000040520 00000 п. 0000040607 00000 п. 0000040694 00000 п. 0000040781 00000 п. 0000040868 00000 п. 0000040955 00000 п. 0000041042 00000 п. 0000041129 00000 п. 0000041216 00000 п. 0000041303 00000 п. 0000041390 00000 н. 0000041477 00000 п. 0000041564 00000 п. 0000041651 00000 п. 0000041738 00000 п. 0000041825 00000 п. 0000041912 00000 п. 0000041999 00000 н. 0000042086 00000 п. 0000042173 00000 п. 0000042259 00000 п. 0000042345 00000 п. 0000042431 00000 п. 0000042517 00000 п. 0000042603 00000 п. 0000042689 00000 п. 0000042775 00000 п. 0000042861 00000 п. 0000042947 00000 п. 0000043033 00000 п. 0000043119 00000 п. 0000043414 00000 п. 0000043586 00000 п. 0000043677 00000 п. 0000043767 00000 п. 0000044420 00000 н. 0000045235 00000 п. 0000045876 00000 п. 0000046682 00000 п. 0000046876 00000 п. 0000047059 00000 п. 0000047585 00000 п. 0000048596 00000 н. 0000049588 00000 п. 0000049728 00000 п. 0000050137 00000 п. 0000051138 00000 п. 0000051547 00000 п. 0000051778 00000 п. 0000052664 00000 п. 0000053597 00000 п. 0000059767 00000 п. 0000060003 00000 п. 0000060346 00000 п. 0000061355 00000 п. 0000061907 00000 п. 0000062038 00000 п. 0000065210 00000 п. 0000065253 00000 п. 0000065805 00000 п. 0000065937 00000 п. 0000069112 00000 п. 0000069155 00000 п. 0000069650 00000 п. 0000069733 00000 п. 0000069797 00000 п. 0000069897 00000 п. 0000070012 00000 п. 0000070212 00000 п. 0000070344 00000 п. 0000070473 00000 п. 0000070631 00000 п. 0000070790 00000 п. 0000070944 00000 п. 0000071134 00000 п. 0000071235 00000 п. 0000071336 00000 п. 0000071525 00000 п. 0000071641 00000 п. 0000071754 00000 п. 0000071912 00000 п. 0000072050 00000 п. 0000072243 00000 п. 0000072386 00000 п. 0000072541 00000 п. 0000072739 00000 п. 0000072882 00000 п. 0000073046 00000 п. 0000073237 00000 п. 0000073368 00000 п. 0000073538 00000 п. 0000073766 00000 п. 0000073880 00000 п. 0000074137 00000 п. 0000074316 00000 п. 0000074428 00000 п. 0000074602 00000 п. 0000074809 00000 п. 0000074919 00000 п. 0000075093 00000 п. 0000075273 00000 п. 0000075431 00000 п. 0000075642 00000 п. 0000075751 00000 п. 0000075925 00000 п. 0000076107 00000 п. 0000076217 00000 п. 0000076394 00000 п. 0000076551 00000 п. 0000076661 00000 п. 0000076816 00000 п. 0000077053 00000 п. 0000077189 00000 п. 0000077364 00000 п. 0000077555 00000 п. 0000077665 00000 п. 0000077843 00000 п. 0000078049 00000 п. 0000078160 00000 п. 0000078333 00000 п. 0000078498 00000 п. 0000078687 00000 п. 0000078862 00000 п. 0000079026 00000 п. 0000079151 00000 п. 0000079323 00000 п. 0000079517 00000 п. 0000079642 00000 п. 0000079813 00000 п. 0000080022 00000 п. 0000080176 00000 п. 0000080348 00000 п. 0000080518 00000 п. 0000080684 00000 п. 0000080858 00000 п. 0000081018 00000 п. 0000081154 00000 п. 0000081326 00000 п. 0000081486 00000 п. 0000081621 00000 п. 0000081810 00000 п. 0000081965 00000 п. 0000082074 00000 п. 0000082194 00000 п. 0000082354 00000 п. 0000082471 00000 п. 0000082653 00000 п. 0000082834 00000 п. 0000082983 00000 п. 0000083086 00000 п. 0000083192 00000 п. 0000083313 00000 п. 0000083433 00000 п. 0000083579 00000 п. 0000083723 00000 п. 0000083867 00000 п. 0000083983 00000 п. 0000084117 00000 п. 0000084243 00000 п. 0000084407 00000 п. 0000084540 00000 п. 0000084746 00000 п. 0000084914 00000 п. 0000085051 00000 п. 0000085214 00000 п. 0000085369 00000 п. 0000085546 00000 п. 0000085732 00000 п. 0000085866 00000 п. 0000085993 00000 п. 0000086215 00000 п. 0000086372 00000 п. 0000086506 00000 п. 0000086650 00000 п. 0000086818 00000 п. 0000086938 00000 п. 0000087058 00000 п. 0000087178 00000 п. 0000087368 00000 п. 0000087556 00000 п. 0000087726 00000 п. 0000087892 00000 п. 0000088068 00000 п. 0000088226 00000 п. 0000088372 00000 п. 0000088563 00000 п. 0000088672 00000 п. 0000088847 00000 п. 0000088982 00000 п. 0000089113 00000 п. 0000089278 00000 п. 0000089458 00000 п. 0000089598 00000 п. 0000089730 00000 п. 0000089871 00000 п. 00000

    00000 п. 00000 00000 п. 00000 00000 п. 00000

    00000 н. 00000

    00000 н. 00000

    00000 п. 00000
    00000 п. 00000
    00000 п. 00000 00000 п. 0000091397 00000 п. 0000091562 00000 п. 0000091732 00000 п. 0000091845 00000 п. 0000091965 00000 п. 0000092107 00000 п. 0000092257 00000 п. 0000092459 00000 п. 0000092633 00000 п. 0000092866 00000 п. 0000092985 00000 п. 0000093183 00000 п. 0000093366 00000 п. 0000093539 00000 п. 0000093662 00000 п. 0000093785 00000 п. 0000093934 00000 п. 0000094073 00000 п. 0000094228 00000 п. 0000094397 00000 п. 0000094584 00000 п. 0000094719 00000 п. 0000094869 00000 п. 0000095053 00000 п. 0000095233 00000 п. 0000095421 00000 п. 0000095610 00000 п. 0000095765 00000 п. 0000095932 00000 п. 0000096130 00000 п. 0000096286 00000 п. 0000096445 00000 п. 0000096618 00000 п. 0000096805 00000 п. 0000096974 00000 п. 0000097154 00000 п. 0000097344 00000 п. 0000097513 00000 п. 0000097691 00000 п. 0000097882 00000 п. 0000098051 00000 п. 0000098188 00000 п. 0000098318 00000 п. 0000098462 00000 п. 0000098646 00000 н. 0000098801 00000 п. 0000098983 00000 п. 0000099128 00000 н. 0000099309 00000 н. 0000099494 00000 н. 0000099662 00000 н. 0000099849 00000 н. 0000099968 00000 н. 0000100110 00000 н. 0000100308 00000 н. 0000100477 00000 н. 0000100667 00000 н. 0000100804 00000 н. 0000100962 00000 н. 0000101094 00000 п. 0000101229 00000 н. 0000101395 00000 н. 0000101510 00000 н. 0000101630 00000 н. 0000101817 00000 н. 0000101958 00000 н. 0000102151 00000 п. 0000102354 00000 п. 0000102534 00000 н. 0000102713 00000 н. 0000102885 00000 н. 0000103083 00000 н. 0000103270 00000 н. 0000103459 00000 н. 0000103662 00000 н. 0000103827 00000 н. 0000103995 00000 н. 0000104180 00000 п. 0000104300 00000 н. 0000104471 00000 н. 0000104671 00000 п. 0000104843 00000 н. 0000105033 00000 н. 0000105171 00000 п. 0000105326 00000 н. 0000105511 00000 н. 0000105667 00000 н. 0000105821 00000 н. 0000105957 00000 н. 0000106120 00000 п. 0000106286 00000 п. 0000106402 00000 н. 0000106527 00000 н. 0000106663 00000 н. 0000106804 00000 п. 0000106992 00000 п. 0000107149 00000 п. 0000107288 00000 п. 0000107479 00000 н. 0000107683 00000 п. 0000107881 00000 н. 0000108096 00000 н. 0000108305 00000 н. 0000108489 00000 н. 0000108690 00000 н. 0000108891 00000 н. 0000109065 00000 н. 0000109215 00000 н. 0000109354 00000 п. 0000109545 00000 н. 0000109705 00000 н. 0000109893 00000 п. 0000110112 00000 п. 0000110214 00000 п. 0000110418 00000 н. 0000110569 00000 н. 0000110729 00000 н. 0000110948 00000 н. 0000111122 00000 н. 0000111274 00000 н. 0000111506 00000 н. 0000111676 00000 н. 0000111826 00000 н. 0000111974 00000 н. 0000112149 00000 н. 0000112279 00000 н. 0000112459 00000 н. 0000112661 00000 н. 0000112813 00000 н. 0000112978 00000 н. 0000113136 00000 п. 0000113278 00000 н. 0000113447 00000 н. 0000113594 00000 н. 0000113771 00000 н. 0000113945 00000 н. 0000114101 00000 п. 0000114241 00000 н. 0000114394 00000 н. 0000114574 00000 н. 0000114753 00000 н. 0000114917 00000 н. 0000115121 00000 н. 0000115325 00000 н. 0000115527 00000 н. 0000115695 00000 п. 0000115891 00000 н. 0000116055 00000 н. 0000116230 00000 н. 0000116419 00000 н. 0000116591 00000 н. 0000116766 00000 н. 0000116901 00000 н. 0000117060 00000 н. 0000117200 00000 н. 0000117326 00000 н. 0000117539 00000 н. 0000117750 00000 н. 0000117962 00000 н. 0000118116 00000 н. 0000118270 00000 н. 0000118461 00000 н. 0000118635 00000 н. 0000118770 00000 н. 0000118965 00000 н. 0000119095 00000 н. 0000119245 00000 н. 0000119370 00000 н. 0000119530 00000 н. 0000119668 00000 н. 0000119834 00000 п. 0000120002 00000 н. 0000120181 00000 н. 0000120334 00000 н. 0000120473 00000 н. 0000120636 00000 н. 0000120802 00000 н. 0000121005 00000 н. 0000121179 00000 п. 0000121321 00000 н. 0000121477 00000 н. 0000121628 00000 н. 0000121775 00000 н. 0000121899 00000 н. 0000122097 00000 н. 0000122289 00000 н. 0000122455 00000 н. 0000122658 00000 н. 0000122846 00000 н. 0000123048 00000 н. 0000123174 00000 н. 0000123300 00000 н. 0000123432 00000 н. 0000123562 00000 н. 0000123694 00000 н. 0000123819 00000 н. 0000123987 00000 н. 0000124195 00000 н. 0000124325 00000 н. 0000124455 00000 н. 0000124623 00000 н. 0000124739 00000 н. 0000124877 00000 н. 0000125063 00000 н. 0000125183 00000 н. 0000125338 00000 н. 0000125528 00000 н. 0000125669 00000 н. 0000125825 00000 н. 0000125987 00000 н. 0000126155 00000 н. 0000126320 00000 н. 0000126494 00000 н. 0000126659 00000 н. 0000126821 00000 н. 0000126974 00000 н. 0000127121 00000 н. 0000127277 00000 н. 0000127432 00000 н. 0000127564 00000 н. 0000127758 00000 н. 0000127914 00000 н. 0000128097 00000 н. 0000128271 00000 н. 0000128483 00000 н. 0000128627 00000 н. 0000128764 00000 н. 0000128954 00000 н. 0000129136 00000 н. 0000129273 00000 н. 0000129391 00000 н. 0000129536 00000 н. 0000129702 00000 н. 0000129852 00000 н. 0000130024 00000 н. 0000130190 00000 п. 0000130340 00000 н. 0000130499 00000 н. 0000130708 00000 н. 0000130867 00000 н. 0000131013 00000 н. 0000131208 00000 н. 0000131377 00000 н. 0000131568 00000 н. 0000131745 00000 н. 0000131903 00000 н. 0000132110 00000 н. 0000132266 00000 н. 0000132413 00000 н. 0000132604 00000 н. 0000132774 00000 н. 0000132963 00000 н. 0000133139 00000 п. 0000133256 00000 н. 0000133371 00000 н. 0000133465 00000 н. 0000133574 00000 н. 0000014843 00000 п. трейлер ] >> startxref 0 %% EOF 17155 0 объект > поток Oj% ܆ T8hncd & 8 + ȗ ,, 6Ydz} rvM: 3.

    Программирование Attiny2313 с помощью Arduino Uno

    Теперь у вас должен быть мигающий светодиод на вашем Attiny 2313

    Обратите внимание, что заводская настройка по умолчанию – 1 МГц, если вы хотите запустить его на 8 МГц, используйте: burn bootloader.

    Выберите плату -> Attiny2313 @ 8MHZ
    Выберите -> Инструменты-> Программист-> Arduino в качестве ISP
    выберите -> Инструменты-> Записать загрузчик

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

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

    Связь с Attiny 2313

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

    TinyDebugSerial – поставляется с файлами ядра (только вывод из attiny)
    SoftwareSerial – используйте библиотеку SoftwareSerial (вход / вывод attiny)
    TinyKnockbang – использовать TinyISP (только выходной fram attiny)
    RELAY_SERIAL – использовать TinyISP (Input / output attiny)
    Более подробное объяснение: здесь

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

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

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

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

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

    Физические / логические номера контактов.
    F.ex. штырь 13 в примере мигания – это физический штифт 16
    См. памятку

    Узнайте, как программировать ATtiny85 и ATtiny13A

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

    Спасибо UTSOURCE.net за предложение электронных компонентов для этого проекта!

    вы можете проверить UTSOURCE.net, они имеют дело со всеми видами электронных компонентов, например, платой Arduino, attinys и многим другим.

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

    1.Получите файлы ядра для своего микроконтроллера (в этом случае нам нужны файлы ядра для ATtiny85 и ATtiny13A) ​​

    ATtiny85: https://github.com/SpenceKonde/ATTinyCore

    ATtiny13A: https://github.com/MCUdude/MicroCore

    Загрузите эти ядра и установите их.

    2. Теперь разберемся с распиновкой ATtiny.

    3. Найдите контакты ATtiny ICSP (MISO MOSI SCK RESET VCC GND) и подготовьте Arduino Uno.

    4. Загрузите Arduino как эскиз ISP на вашу плату Uno.Теперь вы можете использовать свой Arduino как программист ISP.

    Подключите ATtiny85 к плате Uno. (Не забудьте добавить колпачок 10 мкФ при сбросе и заземлении вашего Arduino.)

    Используйте перемычку для соединений или СОЗДАЙТЕ ЩИТ, ИСПОЛЬЗУЯ ПЛАТУ И РОЗЕТКУ DIP8.

    5. Соедините все вместе. (ПОДКЛЮЧЕНИЕ ОДИНАКОВО ДЛЯ И ATtiny85, и для ’13A)

    VCC к VCC

    SCK ATtiny к контакту 13 Arduino

    MISO

    ATtiny к контакту 12 Arduino

    MOSI ATtiny к

    Arduino

    СБРОС ATtiny на контакт 10 Arduino

    GND на GND

    6.Выберите свой ATtiny в меню «Инструменты»> «Менеджер платы»

    . Выберите правильную тактовую частоту для ATtiny85, выберите 8 МГц, а для ATtiny13A выберите 9,6 МГц.

    Измените программатор на «Arduino как ISP», а затем ЗАПИШИТЕ ЗАГРУЗЧИК.

    (нужно делать только один раз для каждого чипа)

    7. И теперь, наконец, вы можете загрузить свои скетчи на свой ATtiny, нажав Ctrl + Shift + U или Sketch> Upload с помощью Programmer

    “BANG” вы успешно запрограммировали свой Микроконтроллер ATtiny.

    Надеюсь, это было полезно. 🙂

    Я СДЕЛАНО ЭТОГО программатора Attiny85 / 13A с Arduino nano и специальной печатной платой, проверьте это для получения дополнительной информации по этой теме.

    https://www.hackster.io/Oniichan_is_ded/multiple-attiny85-13a-programmer-84adf8

    после программирования attiny85 и 13A, попробуйте запрограммировать attiny84 с тем же процессом

    Руководство по ATtiny85: распиновка, Функции и настройка Digispark

    Плата

    Arduino Attiny85 из серии ATtiny – это младшая линейка микроконтроллеров Atmel, урезанная по сравнению с чипами ATmega.

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

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

    Характеристики плат ATtiny

    В таблице ниже перечислены основные характеристики плат ATtiny:

    ATtiny 44 ATtiny 84 ATtiny 45 ATtiny 85 Примечание
    Макс.частота, МГц 8 8 8 8 От внутреннего генератора
    RAM, байты 256 512 256 512
    Flash, Кб 4 8 4 8
    Выходы ввода / вывода 11 11 5 5 СБРОС не считать

    Распиновка ATtiny85

    Распиновку ATtiny85 можно увидеть ниже.Щелкните для увеличения схемы:

    Еще одна схема, которая может вам пригодиться:

    Плата Digispark с Arduino Attiny85

    Совместимые платы

    могут как превосходить по производительности, так и быть меньше стандартных плат Arduino, как упоминалось выше. Отличным примером такой доски может быть Digispark.

    Характеристики платы довольно скромные. В комплекте идет подготовленный к работе микроконтроллер Arduino ATtiny85 – он представлен в восьмиконечном корпусе SOIC или большего размера – DIP8.Характеристики довольно скромные:

    • объем постоянной памяти составляет 8 КБ для программного кода и 512 для исполняемого кода;
    • , поскольку доступно только 8 контактов, вычтите два плюс и минус мощность, и у вас будет 6 цифровых контактов, из которых 4 являются АЦП и 2 ШИМ;
    • доступно только аппаратное прерывание;
    • контроллер работает на частотах от 1 до 20 МГц;
    • в зависимости от конкретной микросхемы напряжение питания варьируется от 1,8 до 5,5 вольт;
    • в режиме энергосбережения потребляет незначительный ток 0.1 мкА при самом низком напряжении питания 1,8 вольт.

    Оригинальный Digispark имеет интересный дизайн. Для его прошивки не нужно использовать кабель micro USB или USB-UART. Плата устроена таким образом, что вы можете запрограммировать микроконтроллер, просто подключив его к USB-порту на вашем компьютере.

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

    Что следует знать дополнительно

    Определение: Скетч – это программа, записанная в память Arduino.

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

    Простой для понимания язык и Arduino IDE были изобретены, чтобы упростить этот процесс. Однако многие любители не останавливаются на достигнутом и переходят на уровень языка C.

    Дело в том, что стандартные команды доступа к порту, чтения и записи занимают довольно много времени для выполнения с использованием Arduino. Поэтому вы можете обращаться к ним напрямую и при необходимости ускорять плату в десятки раз, а ШИМ на Arduino работает на низких частотах, что не является хорошим признаком, а в C, опять же, все происходит в несколько раз быстрее.

    Об особенностях среды разработки

    Arduino IDE имеет встроенный набор плат и микроконтроллеров, с которыми вы можете работать; он основан на классическом программаторе AVR, кстати, он позволяет обращаться к устройству с помощью команд C.

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

    • сервопривод;
    • Транзистор
    • ;
    • светодиод;
    • соленоид и др.

    По этой причине сторонние разработчики создали ряд совместимых плат. С ними можно работать через IDE Arduino, используя простые встроенные языковые команды. Для этого были переписаны загрузчики и библиотеки команд.

    Как сделать очень маленькую Ардуино своими руками?

    Сама плата Arduino, версия UNO, например, может использоваться как универсальный программатор. Вы можете легко запрограммировать другие микросхемы семейства AVR и не-AVR с помощью Arduino ATtiny2313.Сама серия Attiny, как видно из названия, является младшим семейством микроконтроллеров Atmel с урезанными чипами по сравнению с ATmega.

    Стоит отметить! Многие микроконтроллеры младшей, крошечной серии имеют схожую распиновку, например, совместимую с Tiny13 / 25/45/85.

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

    Arduino ISP – это проект, который превратит вашу плату в программиста. Для этого нужно загрузить скетч в плату UNO и использовать его для прошивки.

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

    Прошивка, которая превратит ваш Arduino в программатора ISP, входит в комплект для примера Arduino IDE.Подключите плату к компьютеру и выберите File-examples-Arduino ISP. После этого добавьте скетч в Arduino.

    На рисунке показано назначение контактов Arduino и их расположение на контроллерах в корпусах DIP. Подключите одинаковые контакты к микроконтроллеру и Arduino для прошивки.

    Если хотите, можете повторить опыт предшественников и сделать такой щит для ООН.

    Вот печатная плата.

    В объяснении нет необходимости – просто проявите изобретательность и напишите его.

    Чтобы прошить ATtiny с помощью Arduino IDE, вы должны сначала добавить библиотеки для их поддержки. Стандартно поддерживается только ATmega. Добавьте папку оборудования в директорию C: \ Users \ * имя пользователя * \ Documents \ Arduino \ и в ней папку tiny из архива, который можно найти здесь.

    После этого в крошечной папке найдите файл Prospective Boards.txt и удалите первое слово «Prospective» из его имени. Не забудьте выбрать программатор «Arduino ISP».

    При прошивке кода аттини будет проще, чем в UNO, некоторые функции урезаны и вам доступны:

    pinMode ()
    digitalWrite ()
    digitalRead ()
    analogRead ()
    аналоговая ссылка (ВНУТРЕННИЙ) / (ВНЕШНИЙ)
    shiftOut ()
    pulseIn ()
    analogWrite ()
    миллис ()
    микро ()
    задерживать()
    delayMicroseconds ()
     

    Что мы получаем?

    Вы получаете аналог digispark, но он уменьшен до размера единственного чипа; припаяйте периферийные устройства, и вы готовы к работе! Вы можете сделать дешевый Arduino ATtiny13 с 1024 байтами памяти для простейших поворотников и датчиков.

    Такие миниатюрные устройства позволят сэкономить место и деньги при сборке. Дело в том, что по цене дешевой Arduino nano можно купить несколько ATtiny13, и их можно запрограммировать простыми командами, не изучая C.

    .

    Любой порт, любой контакт: мастер TWI для Attiny, Atmega

    TWI, I2C, SMBus, 2-проводный. . . это бесценный способ доступа к датчикам в проектах микроконтроллеров. Хотя есть много примеров того, как использовать I2C и другие двухпроводные протоколы на назначенных контактах микросхемы Atmel, как разработать мастер I2C на нестандартных контактах?

    Питер Флери написал здесь отличную главную библиотеку I2C.Библиотеку можно скачать здесь, и ее можно адаптировать как для чипов Attiny, так и для Atmega.

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

    Есть два шага для адаптации этого к вашему проекту: изменить определения контактов и портов и согласовать тактовую частоту задержки.

    Замена штифтов:

    Мы будем использовать Attiny88 в качестве примера.Распиновка для нормального использования находится на картинке справа. SDA и SCL обычно определяются стандартными библиотеками TWI как PB2 и PB0. В нашем проекте мы хотели переместить линии SCL и SDA на контакты PB3 и PB4.

    Контакты выбираются в файле i2Cmaster.S, который происходит из исходного кода. Откройте этот файл в текстовом редакторе или AVR Studio, и вы увидите следующее:

    #define SDA 4 // SDA порт D, контакт 4
    #define SCL 5 // SCL порт D, контакт 5
    #define SDA_PORT PORTD // Порт SDA D
    #define SCL_PORT PORTD // SCL порт D

    Теперь просто переместите контакты туда, где они вам нужны.Опять же, в нашем примере мы перемещаем мастер I2C на PB3 и PB4.

    #define SDA 4 //
    #define SCL 3 //
    #define SDA_PORT PORTB //
    #define SCL_PORT PORTB //
    Как вы можете видеть выше, мы изменили определение портов и контактов.

    Изменение процедуры задержки:

    Второй шаг – изменение процедуры задержки.Поскольку I2C является двухпроводным протоколом, ему не нужны точные часы (точные, но не точные). Однако для некоторых датчиков требуются как точные, так и точные (например, многие датчики SMBus требуют тактовой частоты менее или равной 100 кГц).

    Файлы

    Fleury написаны на ассемблере AVR, который не является невероятно удобным или простым в использовании языком. Мы покопались и нашли здесь некоторую информацию о задержках в AVR, по крайней мере, достаточную, чтобы помочь нам изменить задержку.

    Начнем с исходного кода ниже.Предполагается, что кристалл 4 МГц. :

    ; ********************************************** *************************
    ; полупериод задержки
    ; для I2C в нормальном режиме (100 кГц) используйте T / 2> 5us
    ; Для I2C в быстром режиме (400 кГц) используйте T / 2> 1,3us
    ; ********************************************** *************************
    .stabs «», 100,0,0, i2c_delay_T2
    .stabs «i2cmaster.S», 100,0,0, i2c_delay_T2
    .func i2c_delay_T2; задержка 5.0 мкс с кристаллом 4 МГц
    i2c_delay_T2:; 4 цикла
    RJMP 1F; 2 “
    1: rjmp 2f; 2 “
    2: rjmp 3f; 2 “
    3: rjmp 4f; 2 “
    4: rjmp 5f; 2 “
    5: rjmp 6f; 2 “
    6: nop; 1 ”
    ret; 3 ”
    .endfunc; всего 20 циклов = 5,0 мкс с кристаллом 4 МГц

    Изменение этого раздела программы направлено на получение правильных подсчетов.В нашем примере мы используем внешние часы с частотой 16 МГц, что в 4 раза быстрее, чем была написана исходная программа. На странице ассемблера мы видим, что функция nop задерживает 1 отсчет или цикл. Чтобы получить 100 кГц, Флери изначально написал для 20 отсчетов, чтобы получить задержку в 5,0 микросекунд. В нашем примере мы просто добавим 80 отсчетов, чтобы задержать в 4 раза дольше. Мы можем сделать это с помощью «nop», и мы вставим его ниже.

    ; ********************************************** *************************

    ; полупериод задержки
    ; для I2C в нормальном режиме (100 кГц) используйте T / 2> 5us
    ; Для I2C в быстром режиме (400 кГц) используйте T / 2> 1.3us
    ; ********************************************** *************************
    .stabs «», 100,0,0, i2c_delay_T2
    .stabs «i2cmaster.S», 100,0,0, i2c_delay_T2
    .func i2c_delay_T2; задержка 5,0 мкс с кристаллом 4 МГц
    i2c_delay_T2:; 4 цикла
    ; nop задерживает 1 отсчет.
    ; вы должны согласовать это с тактовой частотой процессора.
    ; Чтобы получить 5,0 микросекунд с кристаллом 16 МГц, вам нужно
    ; иметь 80 отсчетов задержки.Без этого ничего не получится.
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет (5)
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет (10)
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет (15)
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет (20)
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет (25)
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет (30)
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет (35)
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет (40)
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет (45)
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет (50)
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет (55)
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет (60)
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет (65)
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет
    nop; удаляет 1 счет (70)
    nop; 1
    nop; 1 ”
    nop; 1 ”
    ret; 3 ”
    .endfunc; всего 80 циклов = 5,0 мкс с кристаллом 16 МГц;

    Получите модифицированный файл i2Cmaster.S здесь.

    Есть вопросы?

    ATtiny841 Ядро Arduino

    ATtiny841 Ядро Arduino

    Микроконтроллер Atmel ATtiny841 – один из наиболее эффективных продуктов линейки Atmel / Microchip ATtiny. Этот микроконтроллер представляет собой улучшенную версию ATtiny84, и хотя его цена всего на копейки выше, чем у ’84, он имеет гораздо более продвинутый набор функций, включая два аппаратных последовательных порта, усовершенствованный АЦП, дополнительный 16-битный таймер и переназначаемые выходные каналы сравнения. .Этот пакет платы (или «ядро») обеспечивает поддержку Arduino для ATTiny841 (и почти всех других ATtiny, которые достаточно велики, чтобы хорошо работать с Arduino).

    • 8k Flash, 512b EEPROM, 512b SRAM
    • Поддержка загрузчика Optiboot – программирование через последовательный порт!
    • Двойной аппаратный UART
    • Аппаратный SPI
    • Аппаратное ведомое устройство I2C (ведущее устройство I2C управляется программной реализацией)
    • ШЕСТЬ выходов ШИМ
    • АЦП на всех контактах
    • Два встроенных аналоговых компаратора
    • Совместимость с Arduino IDE 1.6.5 и выше – мы рекомендуем последнюю версию 1.8.x.
    • 8 МГц (внутренний), до 16 МГц с внешним кристаллом. (20 МГц, похоже, работает при 5 В и комнатной температуре, несмотря на то, что не соответствует спецификации)

    Сообщайте о проблемах с ATTiny841 через github или, если это не удается, по электронной почте

    .

    Купите мою коммутационную плату ATTiny841 на Tindie – доступны в собранном виде или в виде голых плат

    ATtiny1634 Ядро Arduino

    Микроконтроллер Atmel ATtiny1634 – это потрясающий процессор из линейки 8-битных микроконтроллеров AVR Atmel ATtiny.Хотя у него нет третьего таймера, как у tiny841, комбинация большой флэш-памяти и памяти SRAM, двойного uarts и 17 контактов GPIO делает его привлекательным пакетом, заполняющим пространство между маленькими Tiny и неизменно популярным ‘328p . Второй uart делает этот чип особенно подходящим для использования с GPS, GSM и последовательными адаптерами WiFi (например, ESP8266), не мешая последовательному программированию или не прибегая к SoftwareSerial и связанным с ним ограничениям.

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

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