Часто можно слышать отзывы об Arduino, что это дорого, неэффективно, профанация идеи и т.п. Если задуматься, то окажется, что во многом эта критика справедлива. Одним Arduino сыт не будешь. Если мне требуется микроконтроллер для чего-то простого, например: дисплей и пара кнопок, то использование для такой тривиальной задачи Arduino, действительно можно сравнить с забиванием гвоздей электронным микроскопом. Но если отбросить эмоции и подумать, что наиболее ценное в Arduino-проектах? На мой взгляд, это колоссальный объем открытого кода написанного под различные проекты. Называя вещи своими именами, я не хочу писать с нуля программу для работы микроконтроллера с дисплеем, я хочу использовать уже готовую библиотеку, которую я использовал для Arduino. И не потому что мне «слабо», а потому что я не вижу смысла в изобретении еще одного велосипеда.
О портировании проектов Arduino для “младшего” семейства микроконтроллеров AVR ATtiny пойдет речь в этом посте.
Несколько ссылок:
1) Страница проекта реализующая данную возможность: arduino-tinyИз литератуты рекомендую почитать книгу: Андрей Евстифеев «Микроконтроллеры AVR семейства Tiny»
Arduino использует старшее семейство микроконтроллеров ATmega. Портируя программы на ATtiny придется отказаться от некоторых плюшек. Что мы теряем кроме меньшей памяти и меньшего количества ног? Отказаться придется от UART и I2C интерфейсов(ATtiny2313 это по сути не совсем ATtiny). Если вас это не пугает, то идем дальше.
$ cd sketchbookПолучаем папку tiny в которой лежит файл README. Открываем его вашим любимым текстовым редактором и внимательно читаем секцию INSTALLATION/УСТАНОВКА
$ mkdir hardware
$ cd hardware
$ wget http://arduino-tiny.googlecode.com/files/arduino-tiny-0100-0018.zip
$ unzip ./arduino-tiny-0100-0018.zip
из всего этого следует только одна команда:* Create a new file named "boards.txt" in the tiny directory. Following from the examples above, the file would be here... C:\Projects\Arduino\hardware\tiny\boards.txt * Open the "boards.txt" file and the "Prospective Boards.txt" file using your favourite text editor. * Copy board entries of interest from "Prospective Boards.txt" to "boards.txt" (or copy the entire contents of "Prospective Boards.txt" to "boards.txt"). Board entries are delineated by a long line of pound-signs. * In the "boards.txt" file, change the "upload.using" entries to the appropriate value for your setup. * Save and close "boards.txt". Close "Prospective Boards.txt".
$ cp -v 'Prospective Boards.txt' ./boards.txtпосле чего можно запускать Arduino IDE
$ arduino
Здесь, пожалуй, сразу следует пояснить. oscillator — генератор тактовой частоты. Если вы купили микроконтроллер и еще не успели поменять fuse-биты, то генератор должен быть встроенным и работать на частоте 1MГц. Что будет, если ошибешься с частотой? Работать будет, но или медленнее или быстрее.
BOD — детектор пониженного питания ака Brown-out Detection. Датчик позволяющий определить пониженный уровень питания и “мягко” выключить чип предотвратив дребезг питания. Дело в том, что выключение питания, процесс не мгновенный, чип доли секунды работает при не достаточном питании. В таком состоянии, программа зашитая в нем, начинает выполняться с произвольных адресов т.
Схема подключения такая
Я использовал в качестве программатора Arduino на ATmega168. Конденсатор электролитический 10мФ x 16В. Минус на GND, плюс на RESET. Я не уверен, что он нужен на Arduino c ATmega328. Видел схемы без конденсатора, но шить через ATmega328 не пробовал.
исправте наint led=13
int led =0К Pin0 (пятый контакт ИС) подключите подтягивающий резистор, на другой конец резистора анод светодиода, катод которого соедините с землей.
please define PAGEL and BS2 signals in the configuration file for partВашим любимым текстовым редактором откройте файл
$ nano /opt/arduino/hardware/tools/avrdude.confнайдите секцию со своим микроконтроллером и добавьте в нее две строки
pagel = 0x01; bs2 = 0x01;Попробуйте перепрошить микроконтроллер, предупреждение должно исчезнуть. Подробнее смотрите по четвертой ссылке
Добавляем поддержку не родных м/к в среду 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.
Для 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`а
Микроконтроллеры ATtiny фирмы Atmel не поддерживаются средой Arduino из коробки. По крайней мере, так обстоят дела в Arduino v. 1.0.6. Но, добавить поддержку микроконтроллеров ATtiny в среду Arduino не сложно.
Скачайте файлы поддержки ATtiny для Arduino. Распакуйте архив Arduino1.zip. Из этого архива перенесите папку attiny в папку «hardware» Arduino IDE.
В списке поддерживаемых устройств дополнительно появится следующий набор:
Еще одна библиотека поддержки микроконтроллеров ATtiny в Arduino. Из этого архива перенесите папку tiny в папку hardware Arduino. В папке hardware/tiny сделайте копию файла Prospective Boards. txt и переименуйте копию в boards.txt. Теперь список поддерживаемых Arduino устройств пополнится следующими:
Так же, библиотеки поддержки не стандартных для Arduino микроконтроллеров можно устанавливать в папку со скетчами, предварительно создав в ней папку hardware. Это может быть полезно если у Вас нет доступа к системной папке в которую инсталлирован Arduino.
Откройте файл hardware/arduino/cores/arduino/wiring.c найдите в нем строку 44 и добавьте в конце строки:
|| defined(__AVR_ATtiny13__)
Так, чтобы получилось:
#if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) || defined(__AVR_ATtiny13__)
Чтобы при программировании не появлялось предупреждение «avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny13», откройте файл hardware/tools/avrdude.conf и в секцию для ATtiny13 добавьте две строки:
pagel = 0x01; bs2 = 0x01;
Например, так:
#------------------------------------------------------------ # ATtiny13 #------------------------------------------------------------ part id = "t13"; desc = "ATtiny13"; has_debugwire = yes; flash_instr = 0xB4, 0x0E, 0x1E; eeprom_instr = 0xBB, 0xFE, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, 0xBC, 0x0E, 0xB4, 0x0E, 0xBA, 0x0D, 0xBB, 0xBC, 0x99, 0xE1, 0xBB, 0xAC; stk500_devcode = 0x14; signature = 0x1e 0x90 0x07; pagel = 0x01; bs2 = 0x01; chip_erase_delay = 4000;
И в секцию для ATtiny45 добавьте эти же две строки:
#------------------------------------------------------------ # ATtiny45 #------------------------------------------------------------ part id = "t45"; desc = "ATtiny45"; pagel = 0x01; bs2 = 0x01; has_debugwire = yes;
И в секцию для ATtiny84 добавьте эти же две строки:
#------------------------------------------------------------ # ATtiny84 #------------------------------------------------------------ part id = "t84"; desc = "ATtiny84"; pagel = 0x01; bs2 = 0x01; has_debugwire = yes;
Arduino это просто, быстро, а самое главное удобно для реализации идей. Но когда всё отлажено и схема, и код настает момент, когда избыточность плат просто не нужна. Идею то можно реализовать значительно дешевле и компактнее. Без горы проводов. Для того чтобы избавиться от ненужных примочек в готовом устройстве предлагаем прошить ваш код непосредственно в микроконтроллер. Ниже описан пример, где в качестве программатора используется Arduino Nano, а прошивать будем микроконтроллер ATtiny13 на котором, кстати, собран набор RDC1-0004, Управление вентиляцией.
Распакуйте архив attiny13.zip. В папке со скетчами создайте папку «hardware». Размещение папки со скетчами можно узнать, выбрав «Файл – Настройки».
Из распакованного архива скопируйте папку «attiny13» в папку «hardware». Должно получиться примерно так: «C:\Users\имя пользователя\Documents\Arduino\hardware\attiny13».
Перезапустите Arduino IDE.
Если сделали все правильно, в списке плат появиться строка «ATtiny13(ATtiny13a)».
В списке Frequency можно выбрать нужную частоту работы микроконтроллера.
Чтобы запрограммировать микроконтроллер, нужен программатор. Программатор можно сделать из Ардуино Нано. Для этого в нее нужно загрузить скетч ArduinoISP из имеющихся примеров.
Внимание! Если для ATtiny13 будет выбрана частота менее 1,2 МГц, пример ArduinoISP нужно изменить.
Строку
#define SPI_CLOCK (1000000/6)
нужно заменить на
#define SPI_CLOCK (128000/6)
Подключите Arduino Nano к ПК. В Arduino IDE выберите плату Arduino Nano, процессор ATmega328, нужный COM-порт.
Выберите «Скетч – Загрузка». Начнется загрузка программы.
Дождитесь окончания загрузки. Программатор готов.
Подключите программируемый микроконтроллер к Ардуино, как показано на рисунке.
Теперь в Arduino IDE выберите программируемый микроконтроллер, нужную частоту, COM-порт остается без изменений. Выберите используемый программатор, в нашем случае «Arduino as ISP».
Сначала нужно записать загрузчик. В данном случае эта команда только изменяет заводские настройки микроконтроллера, чтобы он работал на выбранной частоте, загрузчик не пишется.
Теперь в микроконтроллер можно загружать «рабочую» программу. Откройте скетч, который хотите загрузить, и выберите «Скетч – Загрузить через программатор». Начнется загрузка. Дождитесь окончания загрузки программы.
Если для вашего проекта вы выбрали другой контроллер из семейства ATtiny, тогда загружайте и распаковывайте в папку hardware дополнительные файлы описания.
tiny.zip
tiny Chip_Dip.zip
Схема подключения для ATtiny в корпусе DIP14:
В качестве вступления, я не буду пространно рассказывать о том, как люди, в руках паяльника не державшие, слова «программатор» не знающие, вместе с детьми радостно втыкают провода в разъемы электронного «конструктора» под названием 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 (а также 44, 84, 45) вполне можно работать через Arduino IDE. Желающие могут придти в ужас от того, что код моргания светодиодом бодренько кушает почти килобайт памяти (при 8 доступных).
Сделать однозначный вывод о практической ценности проведенных изысканий я не могу (экономия небольшая, а памяти и выводов мало), но это было достаточно забавно.
Источник вдохновения (англ.)
ATtiny (Atmel AVR) — микроконтроллеры от американского производителя Atmel пользуется особой популярностью у радиолюбителей. Недорогие микроконтроллеры ATtiny очень просты в программировании и благодаря очень низкому энергопотреблению и малым размерам идеально подходят для небольших или простых проектов.
Цифровой мультиметр AN8009
Большой ЖК-дисплей с подсветкой, 9999 отсчетов, измерение TrueRMS. ..
Например, вам не нужно использовать большую плату Arduino UNO для небольшого проекта, в котором задействованы всего 2-3 цифровых вывода. Достаточно перенести весть проект на подходящую модель ATtiny и загрузить скетч через IDE Arduino.
Но поскольку изначально IDE не поддерживает микроконтроллеры ATtiny, то нам для программирования потребуется установить необходимые драйвера.
На самом деле установить в IDE Arduino поддержку микроконтроллеров семейства ATtiny не так уж и сложно.
Нам нужно только добавить новую ссылку-источник в нашу Arduino IDE, а затем выполнить установку всех необходимых драйверов с помощью встроенного менеджера плат. В результате всей это проделанной работы у нас появиться возможность работать с микроконтроллерами серия ATtiny.
Давайте рассмотрим все шаги по порядку:
Шаг 1: Сначала запустите программу Arduino IDE и перейдите по пути: «Файл – Настройки».
В поле, помеченное как «Дополнительные ссылки для Менеджера плат», вводим следующую строку:
http://drazzy. com/package_drazzy.com_index.json
и сохраняем, нажимая «ОК».
Примечание. Если у вас уже в этом окне вписаны какие-либо ссылки, то добавьте нашу ссылку через запятую.
После этого закрываем IDE и запускаем заново.
Шаг 2: Теперь нажимаем «Инструменты — Плата:**** — Менеджер плат…»:
В имеющееся окно впишите слово ATtiny и нажмите Enter. В списке Драйверов найдите ATTinyCore наведите мышь на поле с описанием, нажмите на появившуюся кнопку «Установка» и дождитесь завершения установки драйверов:
Когда вы выполнили все вышеперечисленные шаги, закройте «Менеджер плат». Перейдите по пути «Инструменты — Плата:**** — ATTinyCore». Вы увидите все доступные в IDE микроконтроллеры Attiny:
Теперь мы можем скомпилировать наш скетч и выбрав соответствующий программатор загрузить его в ATtiny.
HILDA — электрическая дрель
Многофункциональный электрический инструмент способн. ..
Рисунок 1 — Светодиодная мигалка на микроконтроллере ATtiny2313 с программатором
Рисунок 2 — Светодиодная мигалка на микроконтроллере ATtiny2313 с программатором на Arduino Uno
Если все необходимые элементы имеются то можно начинать писать программу. Давайте рассмотрим простую программу мигания светодиодом на Ассемблере:
Это вторая часть настройки Arduino для программирования микроконтроллера Attiny. В предыдущих частях мы добавили поддержку множества микроконтроллеров. Для справки вот каким будет Attiny2313, когда вы это сделаете, контакты и соответствующие контакты Arduino показаны ниже, как вы можете видеть, вы по-прежнему получаете 16 контактов ввода / вывода, возможности I2C, 3 контакта PWM и последовательный интерфейс. для связи.
attiny2313 arduino
Вам нужно будет добавить поддержку ATtiny2313 согласно Программированию ATtiny85 с Arduino Uno, но вам нужно добавить следующие
http: // drazzy. com / package_drazzy.com_index.json
Настройка подключения attiny2313 к плате Arduino
Подключите Attiny2313 к Arduino следующим образом
1) контакт 1 attiny2313 к контакту 10 Arduino сброс
2) контакт attiny 2313 17 к контакту 11 Arduino MOSI
3) контакт 18 attiny2313 к контакту 12 Arduino MISO
4) контакт 19 attiny2313 к контакту 13 Arduino SCK
5) контакт attiny2313 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, на которую ISP Arduino будет программировать.
Инструменты> Плата> ATtinyx313
7) Измените плату для ISP Arduino, на которую нужно программировать.
Инструменты> Чип> ATtiny2313
8) Убедитесь, что для часов Arduino ISP установлено значение 8 МГц.
Инструменты> Часы> 8 МГц (внутренние)
Вы можете увидеть эти настройки на скриншоте ниже
9) Установить режим программатора. Инструменты
> Программист> Arduino как ISP
10) Наконец, запустите загрузку скетча в микроконтроллер Attiny2313
File> Upload
Это наш пример кода для загрузки
// функция настройки запускается один раз, когда вы нажимаете кнопку сброса или включаете плату void setup () { // инициализируем цифровой вывод 13 как выход. pinMode (7, ВЫХОД); } // функция цикла запускается снова и снова навсегда void loop () { digitalWrite (7, ВЫСОКИЙ); // включаем светодиод (HIGH - уровень напряжения) задержка (1000); // ждем секунду digitalWrite (7, LOW); // выключаем светодиод, понижая напряжение задержка (1000); // ждем секунду }
Если вы подключите светодиод к контакту 7 вашего Attiny2313, вы увидите, что светодиодная вспышка включается и выключается, но это кажется немного медленным
Если вы хотите, вы можете записать загрузчик в Attiny, и микроконтроллер будет работать на частоте 8 МГц, а в примере выше светодиод будет мигать с правильной скоростью
. Обратите внимание, что заводская настройка по умолчанию — 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) |
— использовать 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
См. памятку
Это вторая часть настройки Arduino для программирования микроконтроллера Attiny. В предыдущих частях мы добавили поддержку множества микроконтроллеров. Для справки вот каким будет Attiny2313, когда вы это сделаете, контакты и соответствующие контакты Arduino показаны
.attiny2313-распиновка
Теперь займемся установкой
Настройка подключения attiny2313 к плате Arduino
Подключите Attiny2313 к Arduino следующим образом
1) контакт 1 attiny2313 к контакту 10 Arduino сброс
2) контакт attiny 2313 17 к контакту 11 Arduino MOSI
3) контакт 18 attiny2313 к контакту 12 Arduino MISO
4) контакт 19 attiny2313 к контакту 13 Arduino SCK
5) контакт attiny2313 10 к Arduino GND
6) attiny2313 контакт 20 к Arduino VCC
Вот макет
Arduino для atttiny2313
Откройте программу ArduinoISP и загрузите программу ArduinoISP на плату Arduino, чтобы превратить ее в программатора ISP.Теперь откройте скетч BLINK и загрузите скетч BLINK в Attiny2313 через опцию «Загрузить с помощью программатора» в Arduino IDE, как показано ниже
1) Откройте программу ArduinoISP.
Файл> Примеры> ArduinoISP
2) Выберите последовательный порт.
Инструменты> Порт> COM5 (ваши могут отличаться)
2) Выберите необходимую плату Arduino, в данном случае мы используем Arduino Uno. Инструменты
> Плата> Arduino Uno
3) Установите тип программатора как AVRISP MKII.
Инструменты> Программатор> AVRISP MKII
4) Нажмите кнопку загрузки.
5) Теперь ваш Arduino Uno настроен как программист ISP. Затем откройте эскиз LED Blink. Файл
> Примеры> Основы> Blink
6) Выберите цель AVR, на которую ISP Arduino будет программировать.
Инструменты> Плата> ATtinyx313
7) Измените плату для ISP Arduino, на которую нужно программировать.
Инструменты> Чип> ATtiny2313
8) Убедитесь, что для часов Arduino ISP установлено значение 8 МГц.
Инструменты> Часы> 8 МГц (внутренние)
Вы можете увидеть эти настройки на скриншоте ниже
attinyx313
9) Установить режим программатора.Инструменты
> Программист> Arduino как ISP
10) Наконец, запустите загрузку скетча в микроконтроллер Attiny2313
File> Upload
Если вы подключите светодиод к контакту 16 вашего Attiny2313, вы увидите, что светодиодная вспышка включается и выключается
РелизыВ этом выпуске представлена долгожданная и часто запрашиваемая поддержка загрузчика Micronucleus VUSB! При установке через диспетчер плат (для ручной установки требуется уже установленный пакет, использующий микронуклеус через диспетчер плат), теперь вы можете загрузить на эти USB-устройства ATtiny85 «Digispark», ATtiny167 «Digispark Pro», ATtiny841 «Nanite», ATtiny88 «MH Tiny» и платы ATtiny84! Это было огромное обновление — и для дальнейшего улучшения этой функциональности запланировано гораздо больше.Вы также можете загрузить на них загрузчик Micronucleus с помощью программиста ISP или обновить загрузчик до версии, включенной в ATTinyCore, через USB. Также доступны все обычные функции и опции ATTinyCore (при условии, что они имеют смысл)!
Это также вводит улучшения в загрузчики для 841, 441, 828 и 1634, которые должны помочь облегчить проблемы с зависимостью внутреннего генератора от напряжения, а версия> 4,5 В больше не требует другого загрузчика и достигает примерно 8 МГц подталкивая OSCCAL вниз, вместо того, чтобы компилировать для немного более высокой тактовой частоты.Авантюрные пользователи ATtiny841 теперь могут провернуть внутренний генератор примерно до 16 МГц — некоторые детали могут с трудом справиться с этим — но пока все те, которые я тестировал, были в состоянии это сделать. Здесь есть несколько существенных предостережений (помимо того факта, что мы не можем гарантировать, что мы действительно получили правильную частоту 16 МГц — она не настроена … последовательный прием и передача не будут работать во время записи EEPROM).
Наконец, у нас ОЧЕНЬ БОЛЬШОЙ список мелких (и не очень) исправлений:
Для ATTinyCore впереди еще больше — предстоит давно назревшая миграция четырех частей, которые в настоящее время используют ядро tinymodern, на основное ядро, есть ряд оптимизаций для уменьшения использования флэш-памяти в работе, а также функции «быстрого цифрового ввода / вывода». Скоро появятся библиотеки USB для поддержки плат micronucleus, действующих как клавиатуры, мыши и последовательные порты, а также набор новых двоичных файлов загрузчика micronucleus с поддержкой всех условий входа, которые кажутся полезными, включая их комбинации.
В будущем вы можете ожидать поддержку загрузчика micronucleus для всех частей, у которых его нет, а также оборудования из моего магазина Tindie для его использования! Попробуйте, посмотрите, что я сломал в процессе, и сообщите мне о них, чтобы я мог разблокировать их в 1.4.1 🙂
Это версия для установки Board Manager.
Несколько лет назад Microchip / Atmel объявила о выпуске совершенно новой линейки чипов, предназначенных для замены их более старые серии ATmega и ATtiny .Новые чипы ATtiny начались с 1-й серии, которая включала ATtiny417 и ATtiny817, , за которыми в 2018 году последовали более дешевые микроконтроллеры серии 0, в которые входили такие микроконтроллеры, как ATtiny1604 и ATtiny402. Новая линейка микроконтроллеров теперь состоит всего из 25 частей. Однако для производителей, любителей DIY и поклонников платформы разработки Arduino это не было праздником, поскольку не было поддержки, позволяющей программировать mcus с использованием Arduino IDE.Однако это изменилось несколько месяцев назад, когда megaTinyCore был выпущен в качестве ядра Arduino для поддержки программирования новой линейки микроконтроллеров Atmel. В сегодняшнем руководстве мы рассмотрим процесс использования megaTinyCore для программирования одного из этих новых микроконтроллеров ATtiny с помощью Arduino IDE.
Выбор новых микросхем ATtiny: SOIC ATtiny412, ATTiny1614 и ATtiny3216; QFN ATtiny1616 и ATtiny3217. (изображение: technoblogy.com)MegaTinyCore — это ядро Arduino для программирования новой серии микроконтроллеров Microchip с помощью Arduino IDE. Ядро основано на работе, проделанной командой Arduino во время разработки поддержки для своих новых плат на базе ATmega4809. В то время как ядро предоставляло все необходимое для компиляции кода для новых плат серии микрочипов, все еще оставалась небольшая проблема, поскольку ATtiny 0- и 1-серии можно было программировать только через унифицированный интерфейс программ и отладки (UPDI) (a 1-проводной интерфейс с использованием вывода сброса на ATtiny), потому что они не имеют загрузчика и, как таковые, не могут быть запрограммированы через ISP или с помощью программистов ISP.Чтобы решить эту проблему, пользователь GitHub ElTangas написал программатор UPDI, который можно загрузить на Arduino Uno или эквивалентную плату, чтобы превратить плату в программатор UPDI для платы новой серии, давая пользователям возможность не только разрабатывать свой код с помощью Arduino IDE, но также загружают код в свой целевой микроконтроллер, используя плату Arduino в качестве программиста, полностью устраняя необходимость в студии Atmel в процессе разработки.
Основываясь на вышеизложенном, в этом руководстве показано, как настроить плату Arduino в качестве программатора UPDI и процесс настройки megaTinyCore в среде Arduino IDE.
Для работы с этим руководством потребуются следующие компоненты:
Ни одно из новых устройств ATtiny не доступно в DIP-корпусах, поэтому для их подключения на макетной плате вам понадобится своего рода коммутационная плата, поэтому для этого используется 8-контактный SOIC Adafruit.Для микроконтроллеров с большим количеством контактов вы можете проверить их 14- и 20-контактную плату SOIC или эту 24-контактную плату VQFN на Amazon. Все эти компоненты можно купить в большинстве интернет-магазинов электронных компонентов.
Когда все компоненты установлены, мы можем начать с установки megaTinyCore в Arduino IDE.
Для megaTinyCore требуется Arduino IDE версии 1.6.3 или более поздней, хотя на его странице GitHub было указано, что для этого может потребоваться гораздо более новая версия IDE, но первоначальный тест проводился с версией 1.8.9.
MegaTinyCore можно установить в IDE Arduino двумя способами;
Я исследую оба метода и позволю вам решить, какой из них проще или быстрее.
1. Установка через Arduino Board Manager
Менеджер плат Arduino был разработан, чтобы упростить установку новых плат и надстроек для пользователей. Чтобы установить megaTinyCore с помощью этого метода, выполните шаги, перечисленные ниже;
После того, как все это выполнено успешно, вы должны увидеть все платы Attiny, перечисленные в разделе плат (инструменты -> Платы ) в Arduino IDE. Если это так, значит, установка платы прошла успешно.
2. Ручная установка
Метод диспетчера плат Arduino обеспечивает некоторый уровень автоматизации, в то время как ручная установка, с другой стороны, позволяет установить последнюю версию ядра с исправлениями, которые еще могут быть недоступны в версии ядра с диспетчером плат.Однако, чтобы использовать ручную установку, необходимо, чтобы y или использовали менеджер плат для установки последней версии официального пакета платы Arduino megaAVR для работы ручной установки.
Ручная установка рекомендуется, если вы хотите внести свой вклад в разработку ядра или если для вашей сборки важны последние исправления, которых нет в выпущенной версии.
Чтобы установить вручную, выполните следующие действия;
Для автоматических обновлений, вместо загрузки zip-файла, вы можете загрузить клиент GitHub и синхронизировать это репо с аппаратной подпапкой папки вашего альбома для рисования.
После завершения шагов установки вы должны увидеть все платы Attiny , перечисленные в разделе плат (инструменты -> Платы) Arduino IDE, если процесс установки прошел успешно.
После этого следующим шагом будет установка программатора UPDI , после чего вы будете готовы загрузить код в любой из микроконтроллеров Microchip новой серии attiny.
Как упоминалось во введении, нам нужно будет сделать программатор UPDI , чтобы иметь возможность загружать код в серию attiny с помощью IDE и платы Arduino.
Для этого нужно выполнить два шага. Первый шаг включает преобразование платы Arduino в качестве программатора UPDI, а вторая часть показывает, как подключить Attiny к программатору и процессу загрузки.
1. Преобразование Arduino в программатор UPDI
Чтобы преобразовать нашу плату Arduino в программатор UPDI, мы будем использовать скетч U PDI Arduino , созданный ElTangas. Скетч преобразует Arduino на базе ATmega328 (p), такую как Arduino UNO, Nano и Pro mini, в программатор UPDI.Однако скетч не работает на платах на основе других микроконтроллеров, таких как 32u4 (на Arduino Micro / Leo) или на любой плате, отличной от AVR.
Следующие шаги показывают, как сделать этот дешевый программатор UPDI;
После успешной загрузки вы готовы использовать программатор UPDI. Если вы часто используете новую серию ATtiny, будет разумным шагом полностью посвятить плату Arduino pro mini или nano в качестве постоянного программиста UPDI.
2. Подключение Attiny и загрузка
Подключите ATiny к Arduino, как показано на схемах ниже;
Схема для подключения программатора UPDI к AttinyПодключение довольно простое, но штыревое соединение между Arduino и Attiny показано ниже для предотвращения ошибок;
Arduino Nano — Attiny
GND - GND 5 В - VCC D6 - UPDI
Важно отметить, что вывод UPDI ATiny подключен к Arduino через 4.7 кОм, который может не понадобиться при использовании некоторых коммутационных плат, поскольку некоторые из них поставляются со встроенным резистором.
Теперь, когда микроконтроллер подключен к вашему программатору Arduino UPDI, мы готовы загрузить код в attiny.
Откройте или напишите код, который хотите загрузить. Проверьте код, чтобы убедиться, что нет ошибки, затем перейдите к Tools -> Board и прокрутите вниз, пока не увидите в списке ATtiny, с которым вы работаете, и выберите его.
Это должно обновить параметры, отображаемые при нажатии инструментов.Теперь нам нужно указать Arduino IDE использовать наш программатор. Для этого перейдите в Инструменты-> Программисты (ближе к концу).
Прокрутите панель вниз и выберите jtag2updi (megaTinycore) в качестве программиста.
После этого ваш экран должен выглядеть, как показано на изображении ниже, когда вы нажимаете на инструменты;
Это означает, что все индикаторы зеленые. Теперь выберите порт, к которому подключен Arduino nano, и нажмите кнопку загрузить в среде IDE.Вы должны сразу увидеть процесс загрузки, и по его завершении микроконтроллер должен работать в соответствии с программой.
По сравнению с предыдущими микроконтроллерами ATtiny, эта новая серия микроконтроллеров поставляется с большим объемом флэш-памяти, стоит намного дешевле и более эффективна по сравнению с предыдущим набором. выбор крошечного недорогого микроконтроллера с низким энергопотреблением для вашего проекта.
Atmel AVR: 8-битные микроконтроллеры Atmel AVR обеспечивают уникальное сочетание производительности, энергоэффективности и гибкости конструкции.Оптимизированные для ускорения вывода на рынок — и легкой адаптации к новым — они основаны на самой эффективной в отрасли архитектуре программирования на C и ассемблере
.Микроконтроллер | ATTINY2313 |
Частота | 8 МГц |
Вспышка | 2 КБ |
RAM | 128B |
Поставщик | Атмель |
Используйте attiny2313
ID для опции платы в «platformio.ini »(файл конфигурации проекта):
[env: attiny2313] платформа = atmelavr доска = attiny2313
Вы можете переопределить стандартные настройки ATtiny2313 по умолчанию для каждой среды сборки, используя board _ ***
option, где ***
— путь к объекту JSON из
манифест платы attiny2313.json. Например, board_build.mcu
, board_build.f_cpu
и т. Д.
[env: attiny2313] платформа = atmelavr доска = attiny2313 ; изменить микроконтроллер board_build.mcu = attiny2313 ; изменить частоту MCU board_build.f_cpu = 8000000L
Отладка — решение «в один клик» для отладки с нулевой конфигурацией.
Предупреждение
В зависимости от вашей системы вам потребуется установить драйверы средства отладки. Пожалуйста, нажмите на совместимый инструмент отладки ниже, чтобы продолжить инструкции и информация о конфигурации.
Вы можете переключаться между инструментами отладки и зондами отладки, используя параметр debug_tool в «platformio.ini» (файл конфигурации проекта).
Generic ATtiny2313 имеет встроенный датчик отладки, а ГОТОВ для отладки. Вам не нужно использовать / покупать внешний датчик отладки.
Совместимые инструменты | Бортовой | По умолчанию |
---|---|---|
симавр | Есть | Есть |
Имя | Описание |
---|---|
Ардуино | Arduino Wiring-based Framework позволяет писать кроссплатформенное программное обеспечение для управления устройствами, подключенными к широкому спектру плат Arduino, для создания всех видов творческого кодирования, интерактивных объектов, пространств или физического опыта |
ATtiny Mikrokontroller aus der tinyAVR Modellreihe von Atmel bieten für specialisierte Projekte wo nicht all Funktionen oder über 8KB Speicher benötigt werden eine stromsparende und kostengünstige AVR zu den ATmega Atmega.B. 328, 1280, 2560 и т. Д. Добро пожаловать в Arduino Boards eingesetzt werden.
Dank dem Board Manager der seit v1.6.3 in der Arduino IDE eingebaut ist können die etwas kleineren ATtiny Mikroprozessoren auch problemlos mit der Arduino IDE programmiert werden. Leider wird die Originale Implementierung der Arduino-Tiny nicht mehr weiterentwickelt. Es gibt jedoch einen «Fork» welcher die meisten ATtiny Mikroprozessoren direkt in der Arduino IDE unterstützt.
— https: // github.ru / SpenceKonde / ATTinyCore
Die alten Quellen finden immer noch die Arduino IDE <1.6.3 Verwendung:
Im folgenden stellen wir die ATtiny Mikrokontroller welche sich für einen Einsatz mit der Arduino IDE eignen kurz vor:
Das Muster ist schnell zu erkennen, die erste Zahl nach dem «ATtiny» steht für die Anzahl Kilobytes (1, 2, 4 и 8), die zweite Zahl gibt die Pinzahl an (x4 = 14Pin, x5 = 8Pin).
Mit dieser Tabelle sollte es Dir leicht fallen, den für Dein Projekt richtigen ATtiny Mikrokontroller auszuwählen.
Dank dem Board Manager имеет einfach die Arduino IDE für die Attiny Programmierung zu nutzen. Dazu einfach unter den Einstellungen die «Zusätzliche Board Manager URL » angeben von der Spence.
http://drazzy.com/package_drazzy.com_index.json
Danach einfach den Board Manager unter «Tools-Boards» start und die gewünschte Attiny Bibliothek installieren.
Danach stehen all installierten Attiny Boards zur Auswahl zur Verfügung.
Der «Программист» muss auch noch ausgewählt werden. Если вы используете Arduino ISP , программист имеет его «Arduino / Leo as ISP (Attiny Modern)».
Es ist kein Problem beide der genannten ATtiny Erweiterungen gleichzeitig installiert zu haben, wie in der Fussnote erwähnt heisst das Verzeichnis der MIT Реализация attiny und das der Googlecode tiny . Wir installieren in folgendem Beispiel beide, wenn Du sicher bist, dass Du nur eine benötigst / willst, kannst Du den jeweils anderen Teil natürlich überspringen.
Beende die Arduino IDE wenn sie gestartet ist
Finde Deinen Sketchbook Ordner und erstelle darin einen Ordner namens hardware .(Unter Menu Datei Einstellungen)
Для крошечного:
Entpacke nun das Archiv für tiny in den neu erstellten Ordner hardware .
Datei «Prospective Boards.txt» в Boards.txt umbenennen
Ну для Arduino IDE <1.0: Wenn Du nicht einen Arduino mit ArduinoISP (siehe weiter unten) zum Загрузить самое лучшее, устаревшее оборудование / крошечные / платы Datei .txt für die gewünschten Boards den Paramter ATTINY-NAME.upload.using = an (ATTINY-NAME ist z.B. attiny84at8 für einen ATtiny84 @ 8MHz)
Für attiny:
Entpacke nun das Archiv für attiny in den neu erstellten Ordner hardware .
Wenn Du das gewünschte Архив из архива энтпакта, портала Arduino IDE wieder start, unter Инструменты | Доски finden sich dann die folgenden Boards oder ein Teil davon (in diesem Fall wurden beide Archive entpackt):
Die Board-Definitionen mit einem @ stammen von der tiny Implementation, die ohne von der attiny Implementation.
Für die Verwendung mit dem ATtiny stehen Ihnen nun folgende Funktionen zur Verfügung (und natürlich auch all Libraries die mit diesen Funktionen auskommen und deren Verwendung die Speichergrösse des verwendeten ATtiny Chips nicht übers):
Hinweis: Nicht alle zeitabhängigen Funktionen wie z.B. delayMicroseconds () arbeiten mit allen Taktfrequenzen korrekt. 3)
Mit einem geeigneten Programmierer können nun bereits Sketche auf den ATtiny Chip geladen werden.Am einfachsten geht dies mit einem Arduino Board as ISP mit dem ArduinoISP Sketch, aber auch jeder andere Programmierer wie z.B. USBtiny или einem Pocket AVR Programmer.
Der Kondensator am Reset Pin des Arduino sorgt dafür, dass der Arduino nicht resettet wenn der Upload start. Dies äussert sich durch die folgende Fehlermeldung в Arduino IDE:
avrdude: stk500_getsync (): не синхронизируется: resp = 0x15
Hinweis: Der Kondensator wird offenbar nur mit Arduino UNO immer benötigt.Wird ein Duemilanove eingesetzt gehen die Meinungen weit auseinander… In Kürze: Wenns Probleme gibt unbedingt mit Kondensator — nützts nix, schads nix ! 4)
Hinweis: Der Arduino Leonardo eignet sich erst ab Arduino IDE 1.0.3 for die Verwendung als ISP !
Пин Arduino | Пин ATtiny | |
---|---|---|
MOSI | D11 | 7 |
MISO | D12 | 8 |
SCK | D13 | 9 |
Сброс | D10 | 4 |
Контакт Arduino | Контакт ATtiny | |
---|---|---|
MOSI | D11 | 5 |
MISO | D12 | 6 |
SCK | D13 | 7 |
Сброс | D10 | 1 |
Wähle den folgenden Программист унтер Инструменты | Программист > Arduino как ISP .
Verwende die obengenannten Anschlussbelegungen um die MOSI, MISO, SCK und Reset-Leitungen mit Deinem Programmierer zu verbinden.
Wähle den eingesetzten Программист унтер Инструменты | Программист .
Es existieren einige I2C Libraries for ATtiny (die Standard Wire Library kann nicht verwendet werden!), Jedoch mit Einschränkungen:
Библиотека | I2C Master | I2C Slave | unterstützte ATtiny | unterstütze Taktfrequenz |
---|---|---|---|---|
I2C (главный и подчиненный) | X | X | ATtiny85 | 1 МГц, 8 МГц |
TinyWireS | — | X | ATtiny2313 ATtiny25 / 45/85 ATtiny44 / 84 und weitere | 8 МГц |
SPI | ATtiny84 /? | 8/16 МГц | ||
RF24 (модули nRF24L01 +) | ATtiny84 /? | 8/16 МГц | ||
RF24Network (nRF24L01 + модули) | ATtiny84 /? | 8/16 МГц |
Die tiny Реализация bietet ein spezielles Отладка с einer seriellen Einwegschnittstelle — der ATtiny kann nur Daten senden, aber nicht empfangen.
Dazu einfach das FTDI Modul mit dem ATtiny verbinden and in der Arduino IDE den Serial Monitor start.
Bei den ATtinyX4 Modellen befindet sich der TinyDebug Port für die Ausgabe auf Pin 2 (PB0), bei den ATtinyX5 Modellen auf Pin 2 (PB3). Dieser Port имеет доступ к RX Port из FTDI Modul Verbunden.
Die Verwendung von TinyDebug ist dabei identisch mit der ganz normalen Syntax der Serial-Klasse — ausgenommen natürlich die Funktionen zum Empfangen von Daten:
void setup () { Серийный.begin (9600); Serial.println («Гестартет»); } void loop () { Serial.print ("Laufzeit:"); Serial.print (миллис () / 1000); Serial.print ("s"); задержка (1000); }
Alle der vorgestellten ATtiny Mikrokontroller können mit 1MHz или 8MHz mit dem internen Oszillator getaktet werden oder aber mit einer anderen Frequenz wie z.B. 20MHz mit einem externen Oszillator. Ум дем ATtiny Chip mitzuteilen welche Taktfrequenz gewünscht ist müssen einmalig gewissen Fuses gesetzt werden.Dies wird erreicht indem man das entsprechende getaktete Board unter Инструменты | Доска anwählt und dann mit dem Menupunkt Инструменты | Записать загрузчик die Fuses auf dem ATtiny einmalig setzt. Defaultmässig werden die meisten ATtiny auf 1MHz gesetzt ausgeliefert, so dass bei der Verwendung на 1MHz Dieser Vorgang beim erstmaligen Gebrauch des Chips ausfallen kann.
Man darf sich hier aber nicht täuschen lassen, die ATtiny enthalten auch nach diesem Vorgang keinen Bootloader wie z.B. der ATmega328 на плате Arduino. Программирование плат также включает в себя программное обеспечение ISP -Programmer erfolgen (например, плату Arduino с эскизом ArduinoISP, или программатор с USB-устройством или карманный программатор AVR).
Für viele Anwendungen reicht die Genauigkeit des internen Oszillators vollständig aus die bei rund 10% liegt. Dies hat vor allm auch einen Einfluss auf die serielle Kommunikation.So liegt die maximale Baudrate bei einer Abweichung von 4.5% bei 19200 5) und reduziert sich bei steigender Abweichung natürlich. Mit dem Tiny Tuner делает Möglichkeit Diese Abweichung zu messen und mit einer Korrektur / Drift im Sketch anzugleichen. Dies geschieht unter der Annahme, dass ein sendendes Terminal wie z.B. ein Computer eine hohe Taktgenauigkeit aufweist. Der TinyTuner Sketch также содержит 8 определяемых битов, которые используются для чтения, или для чтения, или для создания файлов.
Начните создание крошечных тюнеров, хранящих архив с библиотекой Arduino, в которой содержится библиотек, пакетов и новый набор IDE Arduino. Файл Unter | Примеры | TinyTuner stehen nun verschiedene Sketches bereit mit welchen die internen Oszillatoren gemessen und demensprechend später im eigenen Programme angepasst werden können.
Die Beispiele enthalten all komplette Instruktionen wie die Messung auszuführen ist und welche Anpassung im eigenen Programm nötig sind um die gemessene Abweichung zu korrigieren.
Венн Du mehrere Versionen der Arduino IDE installiert has und verwendest, empfiehlt es sich die Dateien statt unterhalb des sketchbook Verzeichnis die Dateien im hardware Verzeichnis der Installation zu entpacken. Damit wird erreicht, dass die ATtiny Boards Definition для Arduino IDE Version zur Verfügung stehen in deren Verzeichnis sie installiert wurden. Im Normallfall bei der eingangs beschriebenen Installation im Sketchbook Verzeichnis stehen die Board Definitionen allen installierten Arduino IDE Versionen zur Verfügung.
Diese Meldung erscheint immer zweimal auch bei erfolgreichen Uploads. Wenn es die einzige Fehlermeldung ist kann sie getrost ignoriert werden.
Dieser Fehler deutet darauf hin, dass das Arduino Board отмечает как ISP benützt wird nicht bereit war, resp.noch der Bootloader lief nach einem Reset. Um den Reset zu vermeiden reicht ein min. Конденсатор 10 мкФ для сброса и заземления перезагружает импульсные импульсы. 6)
Leider wirds hier ohne entsprechende Dokumentation zur Hand schon sehr spannend, so kann sich ohne Wissen der Pin Mappings, der Versuch eine LED zu blinken in die Tage ziehen ..
Zuerst einmal das Wichtigste: Je nachdem welches Board man im Menu Инструменты | Board wählt, wird die eine oder andere ATtiny Реализация активна и завершена, чтобы преобразовать контакты.Также З.Б. wo D2 bei einem ATtiny84 bei tiny auf Pin 5 liegt ist dieser bei der attiny Implementation auf Pin 11.
Arduino Pin | tiny Pin (ATtinyX4) ATtiny24,44,84 | tiny Pin (ATtinyX5) ATtiny25,45,85 ATtiny ATtiny44,84 | attiny Pin (ATtinyX5) ATtiny45,85 | tiny Pin ATtiny2313 | |
---|---|---|---|---|---|
D0 | 2 | 5 | 13 | 5 | 2 |
D1 | 3 | 6 | 12 | 6 | 3 |
D2 | 5 | 7 | 11 | 7 | 4 |
D3 | 6 | 2 | 10 | 2 | 5 |
D4 | 7 | 3 | 9 | 3 | 6 |
D5 | 8 | — | 8 | — | 7 |
D6 | 9 | — | 7 | — | 8 |
D7 | 10 | — | 6 | — | 9 |
D8 | 11 | — | 5 | — | 11 |
D9 | 12 | — | 3 | — | 12 |
D10 | 13 | — | 2 | — | 13 |
D11 | — | — | — | — | 14 |
D12 | — | — | — | — | 15 |
D13 | — | — | — | — | 16 |
D14 | — | — | — | — | 17 |
D15 | — | — | — | — | 18 |
D16 | — | — | — | — | 19 |
A0 | 13 | 1 | 13 | 1 | — |
A1 | 12 | 7 | 12 | 7 | — |
A2 | 11 | 3 | 11 | 3 | — |
A3 | 10 | 2 | 10 | 2 | — |
A4 | 9 | — | 9 | — | — |
A5 | 8 | — | 8 | — | — |
A6 | 7 | — | 7 | — | — |
A7 | 6 | — | 6 | — | — |
Вывод последовательной отладки | 2 (PB0) | 2 (PB3) | ? | ? | 4 (PA1) |
Wir sind für jede Anregung, Korrektur, Frage und / oder Rückmeldung dankbar.