8-900-374-94-44
[email protected]
Slide Image
Меню

Arduino attiny2313: Работаем с ATtiny в Arduino

Содержание

Программирование микроконтроллеров AVR ATtiny на Arduino IDE

Программирование микроконтроллеров AVR ATtiny на Arduino IDE

разделы: Arduino , Программаторы , AVR , дата: 23 февраля 2014г.

Часто можно слышать отзывы об Arduino, что это дорого, неэффективно, профанация идеи и т.п. Если задуматься, то окажется, что во многом эта критика справедлива. Одним Arduino сыт не будешь. Если мне требуется микроконтроллер для чего-то простого, например: дисплей и пара кнопок, то использование для такой тривиальной задачи Arduino, действительно можно сравнить с забиванием гвоздей электронным микроскопом. Но если отбросить эмоции и подумать, что наиболее ценное в Arduino-проектах? На мой взгляд, это колоссальный объем открытого кода написанного под различные проекты. Называя вещи своими именами, я не хочу писать с нуля программу для работы микроконтроллера с дисплеем, я хочу использовать уже готовую библиотеку, которую я использовал для Arduino. И не потому что мне "слабо", а потому что я не вижу смысла в изобретении еще одного велосипеда.

О портировании проектов Arduino для “младшего” семейства микроконтроллеров AVR ATtiny пойдет речь в этом посте.

Несколько ссылок:

1) Страница проекта реализующая данную возможность: arduino-tiny
Так же, в вопросе мне помогли разобраться следующие материалы:
2) Programming an ATtiny w/ Arduino 1.0
3) ISP программатор из Arduino. Разберемся и с ATtiny
4) Ошибка «please define PAGEL and BS2 signals in the configuration file for part» при прошивки ATtiny45/85

Из литератуты рекомендую почитать книгу: Андрей Евстифеев "Микроконтроллеры AVR семейства Tiny"

    Предполетная подготовка.
    • Что будем программировать?
    • Проект позволяет задействовать микроконтроллеры ATtiny84 (84/44/24), ATtiny85 (85/45/25), и ATtiny2313 (4313).
    • ATtiny84/44/24 это 14-pin микроконтроллеры с размером флеш-памяти под прошивку 8/4/2 Кбайта соответственно.
    • ATtiny85/45/25 - это то же самое, но на 8-pin. ATtiny2313/4313 - Выделяется из общего ряда являясь по сути ревизией AVR Classic AT90s2313. На борту имеется и I2C и UART, 20-pin, 2/4 Кбайта под прошивку. Вкусная штучка.

    Arduino использует старшее семейство микроконтроллеров ATmega. Портируя программы на ATtiny придется отказаться от некоторых плюшек. Что мы теряем кроме меньшей памяти и меньшего количества ног? Отказаться придется от UART и I2C интерфейсов(ATtiny2313 это по сути не совсем ATtiny). Если вас это не пугает, то идем дальше.

  1. Программатор. Для того чтобы залить прошивку в чип, нужен будет программатор. Здесь я буду использовать сам Arduino в качестве программатора.
  2. Используемое ПО: Slackware64-14.1 + Arduino-1.0.5
    Приступим:
  1. Сначала нужно добавить поддержку ATtiny для Arduino IDE. Заходим по первой ссылке на сайт проекта arduino-tiny На текущий момент я вижу два zip архива доступных для скачивания, для версий Arduino IDE v1.0 и v1.5. Хм. Я пользуюсь последней доступной версией 1.0.5, какой архив следует выбрать? Выбирать надо первое. Версия 1.5 еще только разрабатывается. Итак:
    $ cd sketchbook 
    $ mkdir hardware
    $ cd hardware
    $ wget http://arduino-tiny.googlecode.com/files/arduino-tiny-0100-0018.zip
    $ unzip ./arduino-tiny-0100-0018.zip
    Получаем папку tiny в которой лежит файл README. Открываем его вашим любимым текстовым редактором и внимательно читаем секцию INSTALLATION/УСТАНОВКА
    Если присмотреться, то мы уже дошли до этапа:
    * 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
    

    Если все нормально, то в меню: “Сервис->Плата” увидим список поддерживаемых микроконтроллеров ATtiny:

    Здесь, пожалуй, сразу следует пояснить. oscillator - генератор тактовой частоты. Если вы купили микроконтроллер и еще не успели поменять fuse-биты, то генератор должен быть встроенным и работать на частоте 1MГц. Что будет, если ошибешься с частотой? Работать будет, но или медленнее или быстрее.

    BOD - детектор пониженного питания ака Brown-out Detection. Датчик позволяющий определить пониженный уровень питания и “мягко” выключить чип предотвратив дребезг питания. Дело в том, что выключение питания, процесс не мгновенный, чип доли секунды работает при не достаточном питании. В таком состоянии, программа зашитая в нем, начинает выполняться с произвольных адресов т. е. работать хаотически. Это чревато чем? Если ваша программа пишет в EEPROM, то в этом состоянии она запишет туда кашу.

  2. Программатор. Здесь все просто. Подключите Arduino к компьютеру, запустите Arduino IDE, и запишите программу из примеров: меню -> Файл-> Примеры->ArduinoISP
    . Программатор готов.
  3. Сборка схемы. Для прошивки через ISP интерфейс на каждом микроконтроллере имеются четыре контакта MOSI, MISO, SCK, RESET. ISP-программатор позволяет перепрошить чип уже впаянный в схему. Он так и называется In-System Programming внутрисхемный программатор. В связи с этим, контакты MOSI, MISO, SCK по совместительству имеют функции тех или иных цифровых/аналоговых выводов. Расположение контактов Вашего микроконтроллера можно посмотреть по datasheet на официальном сайте.

    У меня под рукой оказался ATtiny45

    Схема подключения такая

    Я использовал в качестве программатора Arduino на ATmega168. Конденсатор электролитический 10мФ x 16В. Минус на GND, плюс на RESET. Я не уверен, что он нужен на Arduino c ATmega328. Видел схемы без конденсатора, но шить через ATmega328 не пробовал.

  4. Прошивка. В Arduino IDE в меню Сервис - Программатор установите опцию: Arduino as ISP В меню “Плата” укажите тип прошиваемого микроконтроллера.
    Откройте из “Примеров” программу “Blink”. В самом начале, строку:
    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

Добавляем поддержку не родных м/к в среду 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`а

Микроконтроллеры ATtiny в среде разработки Arduino

Микроконтроллеры ATtiny фирмы Atmel не поддерживаются средой Arduino из коробки. По крайней мере, так обстоят дела в Arduino v. 1.0.6. Но, добавить поддержку микроконтроллеров ATtiny в среду Arduino не сложно.

Скачайте файлы поддержки ATtiny для Arduino.  Распакуйте архив Arduino1.zip. Из этого архива перенесите папку attiny в папку «hardware» Arduino IDE.

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

  • ATtiny45 (internal 1 MHz clock)
  • ATtiny45 (internal 8 MHz clock)
  • ATtiny45 (external 20 MHz clock)
  • ATtiny85 (internal 1 MHz clock)
  • ATtiny85 (internal 8 MHz clock)
  • ATtiny85 (external 20 MHz clock)
  • ATtiny44 (internal 1 MHz clock)
  • ATtiny44 (internal 8 MHz clock)
  • ATtiny44 (external 20 MHz clock)
  • ATtiny84 (internal 1 MHz clock)
  • ATtiny84 (internal 8 MHz clock)
  • ATtiny84 (external 20 MHz clock)
  • ATtiny13 (internal 9.6 MHz clock)

Еще одна библиотека поддержки микроконтроллеров ATtiny в Arduino. Из этого архива перенесите папку tiny в папку hardware Arduino. В папке hardware/tiny сделайте копию файла Prospective Boards. txt и переименуйте копию в boards.txt. Теперь список поддерживаемых Arduino устройств пополнится следующими:

  • ATtiny84 @ 16 MHz (external crystal; 4.3 V BOD)
  • ATtiny84 @ 8 MHz (internal oscillator; BOD disabled)
  • ATtiny84 @ 1 MHz (internal oscillator; BOD disabled)
  • ATtiny44 @ 8 MHz (internal oscillator; BOD disabled)
  • ATtiny44 @ 1 MHz (internal oscillator; BOD disabled)
  • ATtiny24 @ 16 MHz (external crystal; BOD disabled)
  • ATtiny85 @ 16 MHz (external crystal; 4.3 V BOD)
  • ATtiny85 @ 16 MHz (internal PLL; 4.3 V BOD)
  • ATtiny85 @ 8 MHz (internal oscillator; BOD disabled)
  • ATtiny85 @ 1 MHz (internal oscillator; BOD disabled)
  • ATtiny45 @ 8 MHz
  • ATtiny45 @ 1 MHz
  • ATtiny85 @ 128 KHz (watchdog oscillator; 1.8 V BOD)
  • ATtiny25 @ 8 MHz
  • ATtiny25 @ 1 MHz
  • ATtiny4313 @ 8 MHz
  • ATtiny4313 @ 1 MHz
  • ATtiny2313 @ 8 MHz
  • ATtiny2313 @ 1 MHz
  • Optiboot ATtiny85 @ 8 MHz (internal osc)

Так же, библиотеки поддержки не стандартных для 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 ISP программатор для ATtiny, Минимальная Arduino

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 за 1$ / Хабр

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

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

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

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

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

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

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

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

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

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

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

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

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

Arduino IDE

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

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

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

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

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

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

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

Итого

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

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

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

Установка поддержки микроконтроллеров ATtiny в IDE Arduino. Инструкция

 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 - электрическая дрель

Многофункциональный электрический инструмент способн. ..

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

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

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


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

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

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


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

Запрограммируйте attiny2313 с помощью Arduino

Это вторая часть настройки 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 МГц, а в примере выше светодиод будет мигать с правильной скоростью

Программирование 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.
На самом деле у вас есть больше возможностей:

TinyKno
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
См. памятку

Запрограммируйте свой attiny2313 с помощью Arduino - получите микросхемы

Это вторая часть настройки 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, вы увидите, что светодиодная вспышка включается и выключается

Релизы

· SpenceKonde / ATTinyCore · GitHub

В этом выпуске представлена ​​долгожданная и часто запрашиваемая поддержка загрузчика 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).

Наконец, у нас ОЧЕНЬ БОЛЬШОЙ список мелких (и не очень) исправлений:

  • Сервопривод почти наверняка сломался в некоторых частях и теперь должен работать над ними.Пожалуйста, сообщайте и о возникающих проблемах с сервоприводом - поломка возможна, и я не очень хорошо настроен для ее тестирования.
  • Сервопривод
  • теперь частично взаимодействует с ФАПЧ, когда ФАПЧ используется для увеличения скорости Таймера 1 (хотя это не дает никаких преимуществ, когда он используется для Сервопривода).
  • Возможность использовать ФАПЧ для Таймера1 на частях с ФАПЧ (x61 и x5) теперь действительно работает.
  • noTone () теперь очищает себя.
  • Загрузчики были переработаны для исправления перевернутой светодиодной вспышки.
  • Наконец-то исправлена ​​давняя ошибка в светодиодной вспышке загрузчика optiboot ATtiny861.
  • Небольшое количество отсутствующих загрузчиков больше не отсутствует.
  • Нотация PIN_Pxn, которую я продвигал для обозначения контактов по портам и битам, теперь работает. Ранее я добавил определения PIN_xn, чтобы сделать то же самое ... а затем Arduino добавил константы PIN_An, которые относятся к номеру цифрового вывода указанного аналогового вывода.
  • pulseIn () теперь правильно учитывает параметр тайм-аута (ранее ошибка в процедуре сборки, которая была или присутствует во всех версиях Arduino, в которые я не использовал это исправление и всегда была), вызывала отсчет тайм-аута. На 16/11 секунды быстрее, чем предполагалось до начала измерения пульса.
  • Добавлен
  • pulseInLong ().
  • digitalRead () больше не отключает ШИМ. (это отличается от официального основного поведения, но это глупое поведение - "чтение" не должно изменять то, что он читает)
  • Улучшена обработка регистров со странными названиями в ATtiny2313 (по сравнению с гораздо более распространенным ATtiny2313A)
  • Удален бесполезный код, который все еще скомпилировался и занимал место в нескольких местах ядра.
  • Крупная уборка в wiring.c и некоторых других библиотеках.

Для ATTinyCore впереди еще больше - предстоит давно назревшая миграция четырех частей, которые в настоящее время используют ядро ​​tinymodern, на основное ядро, есть ряд оптимизаций для уменьшения использования флэш-памяти в работе, а также функции «быстрого цифрового ввода / вывода». Скоро появятся библиотеки USB для поддержки плат micronucleus, действующих как клавиатуры, мыши и последовательные порты, а также набор новых двоичных файлов загрузчика micronucleus с поддержкой всех условий входа, которые кажутся полезными, включая их комбинации.

В будущем вы можете ожидать поддержку загрузчика micronucleus для всех частей, у которых его нет, а также оборудования из моего магазина Tindie для его использования! Попробуйте, посмотрите, что я сломал в процессе, и сообщите мне о них, чтобы я мог разблокировать их в 1.4.1 🙂

Это версия для установки Board Manager.

Начало работы с новыми чипами ATtiny - Программирование ATtiny серии 0 и 1 серии Microchip с помощью Arduino IDE

Несколько лет назад 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.

Необходимые компоненты

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

  1. Attiny412
  2. Arduino Uno или nano
  3. Adafruit 8-контактный SOIC
  4. Резистор 4,7 кОм
  5. Конденсатор 1уф
  6. Макет
  7. Провода перемычки

Ни одно из новых устройств ATtiny не доступно в DIP-корпусах, поэтому для их подключения на макетной плате вам понадобится своего рода коммутационная плата, поэтому для этого используется 8-контактный SOIC Adafruit.Для микроконтроллеров с большим количеством контактов вы можете проверить их 14- и 20-контактную плату SOIC или эту 24-контактную плату VQFN на Amazon. Все эти компоненты можно купить в большинстве интернет-магазинов электронных компонентов.

Когда все компоненты установлены, мы можем начать с установки megaTinyCore в Arduino IDE.

Установка MegaTinyCore

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

MegaTinyCore можно установить в IDE Arduino двумя способами;

  1. Установка через Arduino Board Manager
  2. Ручная установка

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

1. Установка через Arduino Board Manager

Менеджер плат Arduino был разработан, чтобы упростить установку новых плат и надстроек для пользователей. Чтобы установить megaTinyCore с помощью этого метода, выполните шаги, перечисленные ниже;

  1. Откройте окно настроек в среде Arduino IDE.Перейдите в File> Preferences or Arduino> Preferences , если работаете с macOS
  2. .
  3. В окне настроек найдите текстовое поле « Additional Board Manager URLs » и введите http://drazzy.com/package_drazzy.com_index.json в поле, как показано ниже, и нажмите кнопку OK. Добавить ссылку на дополнительный список URL-адресов платы
  4. Затем откройте менеджер плат Arduino. Перейдите в Инструменты > Платы> Диспетчер плат
  5. Когда откроется менеджер доски, введите megaTinyCore в строку поиска и прокрутите, вы увидите «megaTinyCore by Spence Konde», нажмите «Установить», как показано ниже.
  6. Также найдите пакет «Официальные платы Arduino megaAVR» и установите его самую последнюю версию.

После того, как все это выполнено успешно, вы должны увидеть все платы Attiny, перечисленные в разделе плат (инструменты -> Платы ) в Arduino IDE. Если это так, значит, установка платы прошла успешно.

2. Ручная установка

Метод диспетчера плат Arduino обеспечивает некоторый уровень автоматизации, в то время как ручная установка, с другой стороны, позволяет установить последнюю версию ядра с исправлениями, которые еще могут быть недоступны в версии ядра с диспетчером плат.Однако, чтобы использовать ручную установку, необходимо, чтобы y или использовали менеджер плат для установки последней версии официального пакета платы Arduino megaAVR для работы ручной установки.

Ручная установка рекомендуется, если вы хотите внести свой вклад в разработку ядра или если для вашей сборки важны последние исправления, которых нет в выпущенной версии.

Чтобы установить вручную, выполните следующие действия;

  1. Убедитесь, что вы установили последнюю версию пакета официальной платы Arduino megaAVR .
  2. Загрузите пакет MegaTinyCore.zip (либо «выпущенную» версию, либо путем загрузки .zip основного репозитория) на свой компьютер.
  3. Распакуйте и поместите файл в папку «hardware» внутри папки скетчей (где хранятся ваши скетчи Arduino). Если папка оборудования не существует, создайте новую папку и назовите ее «оборудование».
  4. Перезапустите IDE Arduino

Для автоматических обновлений, вместо загрузки zip-файла, вы можете загрузить клиент GitHub и синхронизировать это репо с аппаратной подпапкой папки вашего альбома для рисования.

После завершения шагов установки вы должны увидеть все платы Attiny , перечисленные в разделе плат (инструменты -> Платы) Arduino IDE, если процесс установки прошел успешно.

После этого следующим шагом будет установка программатора UPDI , после чего вы будете готовы загрузить код в любой из микроконтроллеров Microchip новой серии attiny.

Сделайте программатор UPDI

Как упоминалось во введении, нам нужно будет сделать программатор 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;

  1. Закройте все экземпляры Arduino IDE, чтобы избежать ошибок.
  2. Загрузите и извлеките скетч программиста UPDI
  3. Откройте папку jtag2updi после распаковки загрузки
  4. Откройте скетч jtag2updi.ino и загрузите его на плату Arduino, которую вы хотите использовать, например, Arduino Nano .Когда вы откроете код, файл .ino будет казаться пустым, и это нормально, поскольку весь код содержится в других файлах в той же папке, что и .ino, но нужен пустой .ino, чтобы их можно было скомпилировать от IDE.

После успешной загрузки вы готовы использовать программатор 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, эта новая серия микроконтроллеров поставляется с большим объемом флэш-памяти, стоит намного дешевле и более эффективна по сравнению с предыдущим набором. выбор крошечного недорогого микроконтроллера с низким энергопотреблением для вашего проекта.

Ссылки:

Generic ATtiny2313 - последняя версия документации PlatformIO

Платформа

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, для создания всех видов творческого кодирования, интерактивных объектов, пространств или физического опыта

arduino: attiny [площадка Boxtec]

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:

Übersicht ATtiny Mikrokontroller

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.

Передачи для Arduino IDE

IDE Arduino ab 1.6.3

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)».

Arduino IDE kleiner 1.6,3

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.

Windows и Linux

  1. Beende die Arduino IDE wenn sie gestartet ist

  2. Finde Deinen Sketchbook Ordner und erstelle darin einen Ordner namens hardware .(Unter Menu Datei Einstellungen)

Для крошечного:

  1. Entpacke nun das Archiv für tiny in den neu erstellten Ordner hardware .

  2. Datei «Prospective Boards.txt» в Boards.txt umbenennen

  3. Ну для 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:

  1. Lade nun das Archiv für attiny herunter.
  2. 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.

Verwendbare Funktionen auf dem ATtiny

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)

ATtiny с программой Arduino IDE

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.

ATtiny с ArduinoISP-программа

Verbindung ATtiny с Arduino ISP
Конденсатор zur Verzögerung

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 !

Для ATtiny X4 (24, 44, 84):
Пин Arduino Пин ATtiny
MOSI D11 7
MISO D12 8
SCK D13 9
Сброс D10 4

Для ATtiny X5 (25, 45, 85):
Контакт Arduino Контакт ATtiny
MOSI D11 5
MISO D12 6
SCK D13 7
Сброс D10 1

Wähle den folgenden Программист унтер Инструменты | Программист > Arduino как ISP .

ATtiny mit USB ISP programmieren

Verbindung ATtiny с USB-провайдером

Verwende die obengenannten Anschlussbelegungen um die MOSI, MISO, SCK und Reset-Leitungen mit Deinem Programmierer zu verbinden.

Wähle den eingesetzten Программист унтер Инструменты | Программист .

Библиотеки Spezielle для ATtiny

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 МГц

Последовательная отладка ATtiny

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);
} 

Hinweise & Tipps

Taktfrequenz einstellen / Загрузчик brennen

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).

Tunen / Kalibrieren des internen Oszillators

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 определяемых битов, которые используются для чтения, или для чтения, или для создания файлов.

Verwendung des Tiny Tuner

Начните создание крошечных тюнеров, хранящих архив с библиотекой 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.

Hinweis zum Betrieb mehrere Arduino IDE Versionen parallel

Венн 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.

Fehler beim Загрузить на чип ATtiny
avrdude: укажите сигналы PAGEL и BS2 в файле конфигурации для части ATtiny84

Diese Meldung erscheint immer zweimal auch bei erfolgreichen Uploads. Wenn es die einzige Fehlermeldung ist kann sie getrost ignoriert werden.

avrdude: stk500_getsync (): не синхронизируется: resp = 0x15

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)

Назначение контактов для Arduino

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)

Feedback / Korrekturen / Fragen

Wir sind für jede Anregung, Korrektur, Frage und / oder Rückmeldung dankbar.

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

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