Сердце на attiny13

Электронный «шар судьбы» на ATtiny13

Привет. Недавно пересматривал один из моих любимых фильмов, а именно «Трасса 60» с Эми Смарт в главной роли. Там у главного героя была такая вещица, под названием «шар судьбы», который отвечал ему на разные вопросы. Ну и после просмотра у меня появилась мысль, а почему бы не сделать что-то подобное на микроконтроллере, тем более недавно разблокировал 4 штуки ATtiny13 которые, когда-то заблокировал по незнанию, что такое фьюзы и с чем его едят. Ещё один аргумент ATtiny13 — цена, очень дешёвый микроконтроллер.

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

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

Код для ATtiny13 написан в Arduino IDE, но в силу большого потребления ресурсов этой IDE, которые к стати итак сильно ограничены в ATtiny13(а именно 1024 байта под код), памяти мне не хватило, и тут мне пригодились мои начальные знания регистров микроконтроллера и мизерный опыт работы с ними, вот что в итоге получилось:

Как это работает? Дело в том, что мы в строчках randomSeed(analogRead(rand_gen)); задаём некое значение которое поступает в микроконтроллер из вне, так как порт микроконтроллера ни к чему не подключен, то есть «висит в воздухе», то на нём присутствует некий белый шум. Для микроконтроллера он выглядит примерно так:

Если микроконтроллер будет выводить не очень ожидаемый ответ, то можно переназначить пины, то есть поменять местами, порты которые заданы при помощи директивы #define led_Yes 0 и #define led_No 1 или же ещё простой способ — банально поменять местами светодиоды. В строчке #define wait 5000 задаётся тайм аут перехода в спящий режим в миллисекундах, то есть, сколько времени будет светить светодиод.

Давай посмотрим потребление микроконтроллера в спящем режиме в даташите:

Как видишь ток всего 0.2 мкА, при таком токе аккумулятор сам по себе быстрее «сядет», чем микроконтроллер его разрядит хотя бы на 1 процент.

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

Схема очень простая:

Всего 6 компонентов не считая литиевой батарейки CR2025. Резисторы R1 и R3 добавил чисто для приличия как говорится, без них схема будет работать не хуже чем с ними, правда резистор R1 немного уменьшает ток светодиодов, но нужен, если напряжение питания схемы превышало бы 3 вольта.

Интересно, на сколько нажатий хватит батарейки CR2025, емкость которой к стати примерно 150 мА/ч?

При единичном нажатии на кнопку светодиод горит 5 сек, то есть 60 сек / 5 = 12 нажатий на минуту * 60 минут = 720 непрерывных нажатий в час, за час схема будет потреблять ток 1.5 мА(измерил мультиметром потребление когда горит красный светодиод), при емкости в 150 мА/ч получится 150/1.5 мА/ч что схема проработает 100 часов, так как за час можно совершить максимум 720 нажатий то 720 * 100 = 72 000.

Из грубого подсчёта выходит, что до полного истощения литиевой батарейки CR2025 нужно совершить 72 тысячи нажатий, и это притом если нажимать ещё кнопку непрерывно, на это уйдёт 100 часов, что есть чуть больше 4-х суток.

Фьюзы стандартные, а именно те, которые зашиты в микроконтроллере с завода, если ATtiny13 только что из магазина, то ничего там с фьюзами изменять не нужно. Добавляю на всякий случай скрин из калькулятора фьюзов:

UPD по совету одного человека, я добавил в функцию system_sleep() отключение аналогового компаратора для ещё большей экономии заряда батарейки. Файлы в низу статьи перезалито.

Сердце на attiny13

Доброго времени суток достопочтенные коты со стажем и без.
Столкнулся я вот с какой проблемой что, возникла идея сделать любимой кошечке подарок в виде сердечка(небольшого кулончика).
Пройдя по просторам инета в сопровождении дядюшки Гугла, было найдено множество конструкций,
но все они не понравились алгоритмами работы. Единственное что заинтересовало так вот эта тема( viewtopic.php?f=25&t=13130&hilit=%D1%81%D0%B5%D1%80%D0%B4%D1%86%D0%B5+%D1%81%D0%B2%D0%B5%D1%82%D0%BE%D0%B4%D0%B8%D0%BE%D0%B4%D1%8B )
В сообщении №3 и №9, Схема по сути таже, только управлять светодиодами буду через n-канальные полевики дабы не насиловать МК, но там только описан алгоритм работы сходный с тем что мне надо.

Вообщем хочу сделать микроконтроллерное сердце с как бы имитацией сердцебиения.
И чтобы его частота зависела от степени его нагрева, диапазон температур от 20 до36 градусов.
МК – ATtinny13a, питание от 1-2элемента CR2032.

Застопорился на том что работать с АЦП на AVR не научился еще.
Собственно вопрос на данный момент самый насущный, как считать со входа АЦП значения уровня напряжения и как управлять частотой загорания СД от него.

P.S. Пользуюсь CodeVision AVR.

Вернуться наверх
Реклама
zero648
Вымогатель припоя

Карма: 5
Рейтинг сообщений: 74
Зарегистрирован: Пн июн 18, 2012 12:01:04
Сообщений: 650
Откуда: Челябинская область, Копейск
Рейтинг сообщения: 0

Вернуться наверх
Реклама

JLCPCB, всего $2 за прототип печатной платы! Цвет – любой!

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/quote

MaxGoblin
Открыл глаза

Зарегистрирован: Сб окт 29, 2011 21:46:14
Сообщений: 41
Рейтинг сообщения: 0

С таким интерфейсом как у этого датчика еще не пробовал работать не работал.

К своему стыду я только недавно начал осваивать МК.

P.S. А какое у него энергопотребление и пределы питающего напряжения?

Вернуться наверх
Реклама

Сборка печатных плат от $88 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Shapa
Встал на лапы

Карма: 1
Рейтинг сообщений: 8
Зарегистрирован: Пт июн 20, 2008 09:38:05
Сообщений: 127
Откуда: Харьков
Рейтинг сообщения: 0

MaxGoblin Ваша идея мне кажется очень милой. Поэтому я хочу вам помочь.
Предпологаю, что ваш опыт в работе с МК не велик. С вашего позволения попробую написать несколько основных требований к “кулону”:
1) сверхмалое потребление в отключенном режиме
2) маленькие габариты
3) простота

Что мы имеем: ATtiny13A, leds, резисторы, конденсаторы, батарейки и терморезистор
Детали просты, и невелики пункты 2 и 3 выполнены. Вот с 1 – проблема. Контроллер в актвином режиме на 9.6 мгц, будет птреблять пару милиампер, что высосет CR2032 за 220 мА / 2 мА = 100 часов

4 суток – никак не кошерно. Зачем нам эти 9.6 МГц? Тут и 128 Килогерц хватит. Смотрим даташит, на 118 странице нам обещают 0,2 мА при 2 вольтах и 1 мегагерце. Дней 30 проживём, уже лучше, практически месяц в режмиме “крутим процессор и всё”.

Как будет работать: Запускаемся, настраиваем АЦП, настраиваем порты. Настариваем прерывание от АЦП. Т.е. АЦП работает непрерывно в цикличиском режиме, переодически выдавая нам результат. Как только наш результат, станет выше отпределённого значения (или ниже) мы делаем вывод, что резистор нагрели, значит кулон в руках – включаемся. Выключаемся с оответственно по снижению температуры.
Это самый простой способ продления жизни.
Такое устройство будет работать, но плоховастенько. Первая причина тому – батарейка, разряжаясь она будет менять напряжение на делителе, соответственно ответ от АЦП будет плавать. Вижу 2 варианта решения:
1) подключаем напряжение питания как опорное и компенсация получается автоматически
2) Используем внутренние опорное (1.1 вольта) для замеров питающего напряжения и соответственно корректируем полученное значение
Как лучше – эксперементировать надо.

В идеале сделать бы так:
подключаем нижнее плечо резистивного делителя к одной из ног проца (выход). Запускаем в МК WDT, настраивая его на самый самый минимум. WDT будет процессор, запускаем замер от АЦП, сравнимаем с предидущими отсчётами, если вдим что темпераура возрастает (т.е. не больше, или меньше какой-то константы, а именно динамику смотрим) то включаем индикацию, и мигаем пока температура не снизится, ии не выйдет какой-то таймаут (к примеру 10 секунд).
Итого получаем, потребление в ждущем режиме – микроамперы, в активном режиме – пренебрегаем током процессора, считаем только ток светодиодов.

Вот кусочек кода, для работы с АЦП (написан для winAVR)

volatile unsigned char ADCdata = 0; // глобальня переменная – резльтат от АЦП

ISR(ADC_vect)
<
ADCdata = ADCH;
ADCSRA |= 0x40;
ADMUX = 0x63;
>

void main()<
.
ADMUX = 0x63;
ADCSRA = 0xCF;
sei();
while(1)
<
temp = ADCdata; // пример
>
>

Вернуться наверх
Реклама

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

MaxGoblin
Открыл глаза

Зарегистрирован: Сб окт 29, 2011 21:46:14
Сообщений: 41
Рейтинг сообщения: 0

Мне видится немного другой алгоритм работы отличный от предложенного вами(хоть и ваш тоже очень достоин).

Как бы есть шкала температуры скажем например такая: 15, 18, 21, 24, 27, 30, 33, 36 градусов.(можно конечно поградусно разбить от 15 до 36, но по моему это громоздко слишком получится).
Каждому значению температуры соответствует своя частота вспышек(например по шкале от 0,2Гц до 4 Гц), соответственно чем выше температура тем чаще биение происходит и наоборот.
По частоте можно и 32.768кГц как за тактовую принять.

И если температура меньше самого нижнего порога то МК в спячку входит.
Вот как я это вижу.

Светодиодами я планирую управлять следующим образом: загорается одна цепочка СД светится 15мс и гаснет; через 5-7мс загорается вторая цепочка СД, также светится 15см гаснет; пауза.
Как бы имитируя работу настоящего сердца

Вот как раз и планирую с помощью АЦП увеличивать и уменьшать величину этой паузы от 5с до 0,3с.

P.S. Назначение из вашего примера функции( ISR(ADC_vect) ) не могу понять.

Вернуться наверх
Реклама
Реклама

Правильное подключение чувствительных высокочастотных антенн и разъемов. Поиск подходов к коммутации и межблочным соединениям принятых в 5G. Использование материалов и корпусов для оптимальной работы СВЧ- и КВЧ-устройств и антенн.

Shapa
Встал на лапы

Карма: 1
Рейтинг сообщений: 8
Зарегистрирован: Пт июн 20, 2008 09:38:05
Сообщений: 127
Откуда: Харьков
Рейтинг сообщения: 0

Да, вы правы. Принять её можно какой-угодно. Но вот получить такую частоту от встроенного генератора не получится. а 128 КГц это 1 МГц поделённый на 8.

а кто его разбудить? прерывание от АЦП, даже если триггер делителя АЦП будет настроен на 128. Это всё равно 1 КГц тактований. Это слишком много для устройства с батарейным питанием.


Программирование Arduino даёт не только огромный простор для фантазии и возможностей, но, как и любой фреймворк , одновременно навязывает свой стиль и ограничивает возможности.
Поэтому, если чувствуется, что Arduino становится тесноват — можно не только перейти на 32-битные контроллеры (например, STM32), но и попробовать более низкоуровневое программирование контроллеров.

Уходя ближе «к железу» — программировать придётся на более близком к железу уровне — и если это не ассемблер, то уж язык программирования Си — точно.
Пример подобного программирования уже приводился в статье Arduino/CraftDuino и WinAVR — программируем на чистом С .
У такого стандартного программирования микроконтроллеров есть существенное преимущество перед использованием Arduino-вских скетчей.
Однако, за низкоуровневый полный контроль и возможность использовать все ресурсы микроконтроллера, приходится расплачиваться долгим и внимательным изучением документации (datasheet-а) на микроконтроллер.
Т.е., если у вас ещё не было опыта работы с конкретным микроконтроллером — то вместо быстренького набрасывания скетча для решения своей задачи — вам придётся потратить дополнительное время на изучение мат. части.

Разумеется, не всегда это может быть оправдано и если задачу нужно и можно быстро решить при помощи Arduino — то почему бы и нет?
Однако, если решение задачи на Arduino невозможно, то придётся потратить время на получение ценных опыта и знаний, которые помогут открыть все возможности, которые под силу микроконтроллеру.

Для примера, возьмём меленький, простой и дешёвый контроллер ATtiny13.

ATtiny13

8-битный AVR микроконтроллер с 1 КБ программируемой Flash памяти

— RISC архитектура
— 120 команд, (большинство выполняется за один такт)
— 32 8-битных регистра общего применения
— 1 КБ программируемой Flash памяти программы
— 64 байта EEPROM памяти данных, (до 100 000 циклов записи/стирания)
— 64 байта SRAM памяти (статическое ОЗУ)
— Один 8-разрядный таймер/счётчик с отдельным предделителем и два ШИМ канала
— 4-канальный 10-битный АЦП со встроенным ИОН
— Программируемый сторожевой таймер (watchdog) со встроенным генератором
— Встроенный аналоговый компаратор
— Внутрисистемное программирование через SPI порт
— Внешние и внутренние источники прерывания
Корпусное исполнение:
— 8-выводные PDIP и SOIC корпуса: 6 программируемых линий ввода-вывода

Диапазон напряжения питания, частота:
1.8 – 5.5В (для ATtiny13V) — до 10МГц
2.7 – 5.5В (для ATtiny13) — до 20МГц

Выводы микроконтроллера ATtiny13:

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

Как видим, микросхема микроконтроллера — маленькая — всего 8 ножек.
Чтобы заставить её работать — нужно просто воткнуть её в макетную плату, подтянуть RESET (первый пин — на схеме обозначается — PB5) к шине питания через 10-килоомный резистор и подать питание — например, 5V снятые с пинов питания контроллера Arduino / CraftDuino.

Разумеется, желательно, ещё повесить конденсатор в 0.1 мкФ между шинами питания.

Подключение ATtiny13 через SPI к CraftDuino

В статье Делаем ISP-программатор из Arduino , уже подробно расписано как нужно подключить микроконтроллер ATtiny13 к контроллеру Arduino или CraftDuino, чтобы его можно было программировать через выводы микросхемы FT232RL используя режим bit-bang (режим управления отдельными выводам микросхемы). Поэтому сразу переходим к софтовой части.

Atmel Studio

Раз решили программировать «по-взрослому», то и среда разработки нужна «взрослая».
Идём на сайт Atmel -a, и скачиваем свежую версию Atmel Studio .

Atmel Studio — (наследница AVR Studio) — это бесплатная среда разработки для микроконтроллеров Atmel.
Сама IDE должна быть знакома, т.к. используется оболочка от Microsoft Visual Studio, однако следует обратить внимание, что в качестве компилятора используется GCC.

После установки, на рабочем столе появится ярлык с симпатичной красной божьей коровкой. Запускаем IDE и привычным образом, быстренько создаём проект.
File -> New -> Project.
Выбираем С/С++ и GCC C Executable Project, пишем имя проекта, например, blink 🙂
Затем, среда предложит выбрать тип используемого микроконтроллера — выбираем ATtiny13.
Всё — шаблонный файл уже создан и можно начинать программировать:

Предлагаемый шаблон программы — напоминает что-то знакомое :

Соответствие функций Arduino на Си

Описание работы портов микроконтроллера и используемых для насткройки и работы регистров, очень подробно приводится в документации на микроконтроллер — ATtiny13 datasheet .

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

Так как процедура установки бита встречается чрезвычайно часто — для неё даже есть удобный макрос

, который рекомендуется к использованию.

Для простоты понимания Си-шных методов работы, сопоставим им функции Arduino.

Базовые функции управления портами (см. datasheet стр. 48):

В принципе, хотя у ATtiny13 всего 1 килобайт флеша на котором сильно не разгуляешься, но даже для этой крохи частично реализован Arduino-вский фреймворк — Core13 .
В нём есть реализации для:

Подробнее про использование Core13 можно прочитать здесь: Прошивка и программирование ATtiny13 при помощи Arduino .
Но даже если использовать Arduino IDE не собираетесь — взглянуть на код всё равно стоит, чтобы проверить как работает и что скрывается за реализацией функций Arduino:

Реализация функций digitalWrite() и digitalRead() из Core13 (core13_022_arduino_1_6)

Даже здесь используется много проверок, что разумеется даёт «защиту от дурака», но и является причиной, почему при использовании Arduino-вских функций производительность кода будет ниже.

Частота работы микроконтроллера

По-умолчанию, микроконтроллер ATtiny13 работает на частоте 1.2 МГц — определяется фьюз-битами (так называются специальные конфигурационные биты, находящиеся в специальных ячейках памяти и отвечающие за параметры конфигурации всего МК).
Младший фьюз-байт lfuse = 0x6A
Старший фьюз-байт hfuse = 0xFF

Посмотреть, что означают эти параметры можно в удобном калькуляторе фьюзов для AVR — AVR Fuse Calculator .
В калькуляторе, можно увидеть, что меняя значение младшего фьюз-байта с 0x6A на 0x7A — мы получим работу микроконтроллера на частоте 9.6 МГц за счёт отключения делителя тактового сигнала на 8 (CKDIV8).
9.6 МГц / 8 = 1.2 МГц.

Посмотреть текущие значения фьзов можно при помощи avrdude, командой:

— получим два файла — low_fuse_val.hex и high_fuse_val.hex с шестнацетиричным значением соответствующих фьюзов.

Blink для ATtiny13

Теперь, зная частоту работы контроллера и базовые методы работы с портами, можем написать микроконтроллерный Hello World — а именно — Arduino-вский — Blink:

Выбираем тип сборки — Release и жмём F7 для сборки проекта (Build -> Build Solution).

Чтобы проверить работу программы — подключаем к третьей ножке (PB4) светодиод с токоограничительным резистором:

Прошивка МК ATtiny13

Остаётся прошить наш микроконтроллер.
Можно взять готовый hex-файл из папки проекта и используя avrdude, прошить МК командой:

А можно, для удобства прошивки, соответствующим образом настроить Atmel Studio.

Настройка Atmel Studio для прошивки МК ATtiny13 через avrdude

Настроить Atmel Studio для прошивки МК ATtiny13 через avrdude, очень просто .

Идём в меню
Tools -> External Tools

И добавляем нашу тулзу — avrdude:

Title:
Deploy ATtiny13

Arguments:
-C C:ArduBootavrdude.conf -c ftbb -P ft0 -B 9600 -p attiny13 -U flash:w:$(TargetDir)$(TargetName).hex:i

Чтобы видеть лог процесса прошивки — нужно поставить галочку рядом с пунктом «Use Output window».

Вот и всё.
Теперь, чтобы прошить МК нужно зайти в меню Tools и выбрать наш пункт «Deploy ATtiny13».

Прошивка микросхемы ATtiny13

Превращаем Arduino UNO в программатор.

Пробовал сделать программатор в других версиях программы Arduino ID, результат действий.

В версии Arduino_ID_v1.0.4 ArduinoISP отсутствует.
Нужно загрузить библиотеку ArduinoISP.

Файл –>> примеры –>> ArduinoISP
Инструменты –>> Плата –>> Arduino UNO
Инструменты –>> Порт: “ваш порт”
Инструменты –>> Программатор: “AVRISP mkll”

Версия ArduinoISP version 04m3, 23 July 2011 Randall Bohn

Ошибка при загрузке программы: avrdude: stk500_getsync(): not in sync: resp=0x00
Отключил всё от выходов и входов Arduino UNO, ошибка пропала, программа загрузилась хорошо.

Файл –>> образцы –>> ArduinoISP
Инструменты –>> Плата –>> “Arduino/Genuino UNO”
Инструменты –>> Порт: “ваш порт”
Инструменты –>> Программатор: “AVRISP mkll”

Версия ArduinoISP version 04m3, 23 July 2011 Randall Bohn

Загрузка прошла без ошибок.

Файл –>> примеры –>> ArduinoISP
Инструменты –>> Плата –>> “Arduino/Genuino UNO”
Инструменты –>> Порт: “ваш порт”
Инструменты –>> Программатор: “AVRISP mkll”

Загрузка прошла без ошибок.

Файл –>> примеры –>> ArduinoISP
Инструменты –>> Плата –>> “Arduino/Genuino UNO”
Инструменты –>> Порт: “ваш порт”
Инструменты –>> Программатор: “AVRISP mkll”

Выскочила красная надпись:
Archiving built core (caching) in: C:DOCUME

1Temp
Но это не ошибка, а информационное сообщение “Сохранение скомпилированного ядра (кэширование) в. (здесь директория)

Файл –>> примеры –>> ArduinoISP
Инструменты –>> Плата –>> “Arduino/Genuino UNO”
Инструменты –>> Порт: “ваш порт”
Инструменты –>> Программатор: “AVRISP mkll”

Загрузка прошла без ошибок.

Пробуем прошить ATtiny13

Микросхему ATtiny13 подключаем вот по такой схеме к Arduino UNO

Программа Arduino_ID_v1.8.9
Программатор Arduino UNO

Файл –>> Настройки –>> Дополнительные ссылки для менеджера плат:
Вставляем в поле ссылку ниже.
https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.jso n
Нажать кнопку “ОК”

Инструменты –>> Плата –>> Менеджер плат –>>
И в самом низу листа выбрал:

DIY ATtiny by James Sleeman, http://spat4cs.gogo.co.nz/ версия 2018.9.9
Платы в данном пакете:
ATtiny4, ATtiny5, ATtiny9, ATtiny10, ATtiny13, ATtiny24, ATtiny44, ATtiny84, ATtiny25, ATtiny45, ATtiny85, and variants thereof

Платы загрузились с интернета в папку:
C:Documents and SettingsпользовательLocal SettingsApplication DataArduino15

Если что, то папку с платами ATtiny13 можно распаковать туда же, без установки, все платы будут работать так-же, архив лежит ниже по ссылке.
Разные версии cores13, для прошивки микросхемы ATtiny13 и не только.

Настройки для ATtiny13:

Инструменты –>> Плата: ATtiny13
Инструменты –>> Processor Version: “ATtiny13a”
Инструменты –>> Порт: “ваш порт”
Инструменты –>> Программатор: “Arduino as ISP”

Загрузил пробный скетч:

Такой скетч тоже работает:

Загрузка прошла сразу и без ошибок.

Что же среда делает при нажатии на кнопку «Записать загрузчик»?

Arduino IDE в данном случае просто выставляет нужные фьюзы микроконтроллера.
К примеру, мне нужно, чтобы ATtiny13 работал на частоте в 4.8 мГц, я выбираю нужную мне частоту и только один раз жму кнопку «Записать загрузчик» — всё. Теперь микроконтроллер будет всегда работать на заданной частоте, если будет нужно изменить частоту опять — проделываем описанную выше процедуру.

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

Прошиваем ATtiny13 с помощью программатора USBASP

Подключаем ATtiny13 к программатору вот по такой схеме.

Настройки для прошивки ATtiny13 программатором USBASP в программе Arduino ID v1.8.9

Инструменты –>> Плата: ATtiny13
Инструменты –>> Порт: “COM3”
Инструменты –>> Программатор: “USBasp”

Все версии программы Arduino ID успешно прошивают ATtiny13, при установке нужных библиотек в программу Arduino ID,
в нашем случае для ATtiny13.
Однако нужно помнить, что должны быть установлены свежие драйверы для программатора USBASP
А если программатор новый(только пришёл с али), то нужно его ещё прошить новой прошивкой для корректной работы.
Прошивка находится в архиве, имя usbasp.atmega8.2011-05-28.hex
Если хотите знать как обновить прошивку USBasp, пишите в комментариях, добавлю по мере возможности.

Не забываем ещё про перемычку в программаторе USBasp.
Перемычка JP1: питание программируемой микросхемы.
Перемычка JP3: Обязательно поставить, с этой перемычкой работают частоты – 9.6/4.3/1.2/

скриншот настроек в программе Arduino ID.

Без всего этого удачных прошивок может и не быть.

Прошиваем ATtiny13 с помощью программы SinaProg v2.1.1.Rus

Программатор USBASP.
Перемычка JP3: Обязательно поставить.
Скриншот настроек программы.
Фьюзы ни какие не трогаем, всё по умолчанию
Прекрасно зашиваются файлы *.hex

Прошиваем ATtiny13 с помощью программы AVRDude Prog v3.3

Программатор USBASP.
Перемычка JP3: Обязательно поставить.
Скриншот настроек программы.
Фьюзы ни какие не трогаем, всё по умолчанию
Прекрасно зашиваются файлы *.hex

Ну и фото, где какие перемычки находятся.

Осталось за малым, изучить по возможности код программирования 🙂

ATTiny13 – небольшой размер – хороший потенциал.

ATTiny13 небольшой микроконтроллер (8 ног), наверное, самый дешевый в серии AVR. Выпускается в двух вариантах – обычном (ATTiny13) и с пониженным питанием (ATTiny13V). За пониженное питание приходится платить понижением тактовой частоты микроконтроллера (более медленная работа).

Общие характеристики:

  • 120 инструкций оптимизированных для программирования на языках высокого уровня;
  • 32 регистра общего назначения;
  • почти каждая инструкция выполняется за 1 такт генератора, за счет чего быстродействие достигает 20 MIPS (20 миллионов операций за секунду);
  • 1килобайт флеш-памяти для программ (самопрограмируется);
  • 64байт EEPROM (энергонезависимая память);
  • 64байт SRAM (оперативная память).

Что мы имеем из периферии?

  • один 8 битных таймера/счетчика;
  • два ШИМ канала;
  • 4 канальный 10ти битный АЦП;
  • аналоговый компаратор;
  • SPI последовательный интерфейс;
  • Watchdog таймер, внешние прерывания на всех ножках.

Особые плюшки:

  • внутрисхемная отладка по одному проводу debugWIRE;
  • программирование по последовательному SPI интерфейсу;
  • различные источники прерывания как внешние, так и внутренние, 3 режима «Сна», детектор понижения питания, встроенный задающий генератор.

Питание, частота:

1.8 – 5.5В (для ATTiny13V) до 10МГц
2.7 – 5.5В (для ATTiny13) до 20МГц

В рабочем режиме потребляет 240мкА при питании 1.8В и частоте задающего генератора 1МГц. В режиме энергосбережения Power-down кушает меньше 0.1мкА при 1.8В

Программирование:

Для микроконтроллера наиболее удобен режим программирования по последовательному SPI интерфейсу. Для реализации этого режима необходимо подключить микроконтроллер к программатору по SPI интерфейсу (MOSI, MISO, SCK, RESET, GRD), запитать микроконтроллер номинальным напряжением. Микроконтроллер может программироваться прямо в рабочей схеме (внутрисхемное программирование) но при этом должно соблюдаться условие – линиям SPI интерфейса при программировании не должно ничего мешать (большие емкости, маленькие сопротивления относительно общего провода и т.д.). Более подробно почитать про внутрисхемное программирование и программаторы >

ATTiny13 был обновлен (буковка А в конце). В результате обновления ATTiny13 перешел на новую технологию Atmel picoPower, а значит уменьшилось потребление энергии как в штатном режиме, так и в режимах энергосбережения, убрано разделение микроконтроллера на обычное и низковольтное питание (теперь все микроконтроллер можно запитать от 1.8 до 5.5В, при этом лишь необходимо соблюдать ограничения по частоте от 4МГц (для 1.8В) до 20Мгц).

ATTiny13А уже не редкость в продаже, кроме того, его цена немного меньше предшественника. В виду совместимости ATTiny13А и ATTiny13 устройства будут собираться на ATTiny13, а прошивки должны работать и на новых микроконтроллерах.

Заключение:

ATTiny13 маленький, но быстрый микроконтроллер. Наверное, самый дешевый из серии AVR. Широко доступен в продаже. Наличие в ATTiny13 АЦП позволяет использовать его для обработки аналоговых выносных датчиков и передачи цифрового сигнала в основной контроллер (как пример – применение ATTiny13+датчик температуры обойдется дешевле и функциональнее чем DS18B20). Маленький планарный корпус позволяет делать устройства небольшого размера. Из недостатков стоит отметить скромную функциональность, малое количество памяти и небольшое число ножек. Вывод: ATTiny13 просто незаменим для обработки сигналов с датчиков, для применения в компактных устройствах и устройствах не требующих сложных вычислений и большой функциональности.

Даташит для ATTiny13 берем здесь:

[Загрузка не найдена]

Datasheet ATTiny13A, Errata, Application Notes смотрим на официальной страничке.

ATTiny13 – небольшой размер – хороший потенциал. : 13 комментариев

«…по SPI интерфейсу (…, GRD)»
На сколько понимаю, там должно быть (…, GND)»

Мигающее Сердечко На Attiny2313

Название: Мигающее Сердечко На Attiny2313

Длительность: 7 сек

Размер: 157.23 KB

Битрейт: 192 Kbps

157.23 KB и длительностью 7 сек в формате mp3.

Attiny85 Led Ladder Game

Animowane Serduszko Led Animated Led Heart

Text Scroller With Attiny2313 In System Text Select

Бегущий Огонь На Attiny2313

Сердце Для Любимой На Atmega8

Бегущий Поворотник На Attiny2313 С Регулировкой Длительности И Постоянным Питанием

Recycled Green 4X4X4 Led Cube W Attiny2313

Avr Atmega88 Led Heart Светодиодное Сердце

Led Шоу 1 Attiny2313

Attiny 1 Electronic Puzzle Smaller Is Better

Attiny 2313 Rgb Pwm By Duch

Часы Из Старого Жесткого Диска

Led Cube 7X7X7 Final

Mini Led Cube 3X3X3 Attiny2313

Bluetooth Car Attiny2313 Controlled With Android Phone

Atmel Attiny 85 Blink

Led Сердце На Attiny13

Оригами Из Бумаги Валентинка Коробочка С Запиской

A Movie About Kintore

Новый Бот Для Фермы Arizona Rp Бот Фермера 2019 Gta Samp 0 3 7

120 Roblox New Bypassed Audios 2020 457 Rare Unleaked Oc Fresh Mano Working Loud Crash

Мигающее Сердечко На Attiny2313

2007 Yamaha Ttr 230 Walk Around And Cold Start

Детская История Про Винтика И Машинки Хот Вилс Задержали Плохих Ребят Мультик 2019

The 100 Eliza Taylor Interview Sdcc 2017

Cameramen Ganga Tho Rambabu Full Movie Hd Pawan Kalyan Tamanna Tvnxt

Sho Me G 800 Signature Как Настроить Эту Сигнатуру Чтобы Не Из Крайностей А Чтобы Работало

Восточная Фантазия Школа Танца Шехерезада Хореограф Ирина Жаммаль Иксаль 25 12 2017

Крипипаста Кровавый Художник И Кукловод Перевод

Fnaf Song Alternative Metal Cover

Badik Ft Bonushka Оби Чашма Нарезон New Trek 2020

Rift Rivals 2017 Day1 Usg Vs Msk

Gameplay Alien Quest Eve V0 12 Demo

Динозавры В Star Stable Online Лайфхак В Стар Стейбл Обновление 4 Марта 2020

Brawl Stars Music Retropolis Battle Theme 1

Роботы Мак Обзор

Привет Афган Сборник Армейских Песен Под Гитару

Kiss Me Fred De F Remix

Мемы И Видео Из Тик Тока Про Стандофф 2 Tik Tok Standoff 2

Она Меня Целует

Марафон Большое Интервью С Сотрудником Полиции

Андрей Левицкий Зов Армады Глава 8 14 Серия S T A L K E R Цикл Я Сталкер Аудиокнига

Фредди Вторгается В Нашу Реальность Разбор Тизер Трейлера Fnaf Ar Simon

Jeon Jungkook Ff Human Mate Werewolf Au Ep 02

Мюзикл Бал Снегурочки Финал 26 12 2014

Неожиданный Приезд Сестры Гача Лайф

Mount Blade 2 Bannerlord The Rise Of Hotept Pt 2 Going Hunting

Лучшая Русская Музыка 2018 Best Russian Music 2018 Музыкальный Микс 1

Самосвал С Насосом От Аппарели

Мерлия Саммерс Покоряет Волны Барби Русалочка Barbie Россия 3

Special Guest Tim Black Weed Legal In Oregon And D C Wild Bill Vs Star Trek Dpp 49

Замена Прокладки Гбц И Проверка Вмт

Песни В Реальной Жизни Баня Троллит Бота

Поймай Удачу Отборочный Тур 1 Тв Сюжет От Телеканала Пилот

Искупитель 3 Подвиг Искупления Алексей Коломийцев

Shazam Top 50 Самые Популярные Хиты

Цыганская Песня Дружба 2019

Михаил Задорнов Первый Раз В Вокруг Смеха Два 9 Х Вагона Концерт Всегда Готов Эфир 02 05 09

Meganeko Nothing Happened Supersoniker Remix

Hayati New Arabic Remix Car Song

Отбитые Челленджи 2

Top Memes On Greenscreen 19 Топ Лучших Мемов На Зеленом Фоне Для Видео 19

Читайте также:  Термоконтроль для пк своими руками
Рейтинг
( Пока оценок нет )
Загрузка ...
Adblock
detector