Светодинамическая установка на мк attiny2313

Цветодинамическая установка на микроконтроллере

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

Схема микроконтроллерного блока обработки музыкального сигнала представлена на рис. 1. Сигнал размахом от 100 мВ до 3 В подают на него, включая штекер ХР1 в гнездо для головных телефонов или громкоговорителя музыкального центра или проигрывателя.

Наличие гнезда XS1 позволяет подключать устройство “на проход”, включая сюда штекер, вынутый из гнезда источника сигнала. После усиления или ограничения до размаха около 3,5 В ступенью на ОУ DA1 сигнал поступает на формирователь импульсов, собранный на транзисторе VT1, и далее на вход РВ2 микроконтроллера DD1.

Программа микроконтроллера подсчитывает входные импульсы за определённые интервалы времени и в зависимости от их частоты повторения устанавливает высокие логические уровни на соответствующих выходах микроконтроллера: 100…300 Гц — РВ1 (красный), 300…700 Гц — PB0 (жёлтый), 700…1500 Гц — РВ4 (зелёный), 1500…

10000 Гц — РВЗ (синий). В скобках указаны цвета свечения светодиодов, которыми управляет каждый выход.

Рис. 1                                   

 
Напряжение питания Uпит=7…12 В подают на контакты 1 (+) и 2 (-) винтовой колодки ХТ1. До 5 В, необходимых для питания микроконтроллера и ОУ, его понижает интегральный стабилизатор DA2. Контакты 3—6 колодки ХТ1 соединяют со входами блоков светодиодов соответствующего цвета свечения. Резисторы R9—R12 ограничивают ток нагрузки выходов микроконтроллера.

SEM0016M-45

Блок собран на базе микроконтроллерного модуля SEM0016M-45 [1], представляющего собой макетную плату размерами 36×20 мм с установленными на заводе микроконтроллером ATtiny45-20SU (DD1 согласно рис. 1), блокировочным конденсатором С7 и разъёмом программирования ХР2.

На свободном поле платы модуля по сетке с шагом 2,54 мм расположены 79 контактных площадок с металлизированными отверстиями. На них и смонтированы остальные детали блока, за исключением узла предварительного усилителя музыкального сигнала на ОУ DA1.1, собранного на небольшой печатной плате, изображённой на рис. 2.

Она закреплена на плате модуля термоклеем.

Рис. 2. Узел предварительного усилителя

 ХР1 — стандартный аудиоштекер диаметром 3,5 мм, XS1 — гнездо СКХЗ-3.5-02А под такой штекер. Шестиконтактная колодка с винтовыми зажимами ХТ1 составлена из двух трёхконтактных типа DG308-2.54-03P-14-00. Собранный блок показан на рис. 3.
  

Установленный в модуле SEM0016M-45 микроконтроллер программируют с помощью программатора, подключаемого к разъёму ХР2. При этом во избежание сбоев резистор R7 следует на время программирования отпаять от вывода 7 микроконтроллера, а закончив эту процедуру, припаять обратно.

Рис. 3. Собранный блок

Четыре блока светодиодов (красных, жёлтых, зелёных, синих) собраны по одной и той же схеме, изображённой на рис. 4. Они различаются лишь типами светодиодов EL1 —EL9 и номиналами резисторов R2—R28, сведения о которых приведены в таблице.

Рис. 4

На контакты 1 и 2 колодки ХТ1 подают напряжение питания — такое же, как на описанный выше блок управления, а на вход (контакт 3) — сигнал с соответствующего контакта колодки ХТ1 микроконтроллерного блока. Интегральный стабилизатор DA1 понижает его до 5 В.

Резисторы R2—R28 выбраны так, что ток через любой из трёх кристаллов каждого светодиода не превышает допустимых для него 20 мА.

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

Чертёж одинаковой для всех блоков светодиодов печатной платы показан на рис. 5. Изготовлены эти платы из материала ОАФ1.5 [2] — фольгированного с одной стороны листового диэлектрика толщиной 70 мкм, приклеенного другой стороной к алюминиевой подложке толщиной 1,5 мм.

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

Кроме того, при необходимости её свободную от деталей сторону можно прижать к более эффективному теплоотводу, не делая индивидуального теплоотвода для каждой детали.

 

Рис. 5

 Технология изготовления печатной платы из “фольгированного алюминия” практически не отличается от применяемой для обычных стеклотекстолитовых плат.

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

Лишь при вытравливании меди необходимо защищать открытую поверхность алюминиевой подложки и её торцы от соприкосновения с травильным раствором. Для этого их нужно окрасить кислотостойкой краской или покрыть липкой лентой. 

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

Радио №5, 2013г  А. ЛАПТЕВ, г. Зыряновск, Казахстан
 

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

 
ЛИТЕРАТУРА
1. Модуль SEM0016M-45
2. Фольгированный алюминий ОАФ1.5 
 

СКАЧАТЬ

Прошивку и исходник

Печатные платы в фотмате lay6

Источник: http://radio-hobby.org/modules/news/article.php?storyid=1362

Схема бегущих огней на светодиодах и ATtiny2313

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

С её помощью можно создавать различные световые эффекты: от стандартного поочерёдного свечения до красочного плавного нарастания и затухания огня.

Один из вариантов того, как сделать своими руками бегущий огонь на светодиодах под управлением МК ATtiny2313, рассмотрим на конкретном примере.

Сердце бегущих огней

То, что AVR микроконтроллеры Atmel обладают высокими эксплуатационными характеристиками – всем известный факт. Их многофункциональность и лёгкость программирования позволяет реализовывать самые необыкновенные электронные устройства. Но начинать знакомство с микроконтроллерной техникой лучше со сборки простых схем, в которых порты ввода/вывода имеют одинаковое назначение.

Одной из таких схем являются бегущие огни с выбором программ на ATtiny2313. В данном микроконтроллере есть всё необходимое для реализации подобных проектов. При этом он не перегружен дополнительными функциями, за которые пришлось бы переплачивать. Выпускается ATtiny2313 в корпусе PDIP и SOIC и имеет следующие технические характеристики:

  • 32 8-битных рабочих регистра общего назначения;
  • 120 операций, выполняемых за 1 тактовый цикл;
  • 2 кБ внутрисистемной flash-памяти, выдерживающей 10 тыс. циклов запись/стирание;
  • 128 байт внутрисистемной EEPROM, выдерживающей 100 тыс. циклов запись/стирание;
  • 128 байт встроенной оперативной памяти;
  • 8-битный и 16-битный счётчик/таймер;
  • 4 ШИМ канала;
  • встроенный генератор;
  • универсальный последовательный интерфейс и прочие полезные функции.

Энергетические параметры зависят от модификации:

  • ATtiny2313 – 2,7-5,5В и до 300 мкА в активном режиме на частоте 1 МГц;
  • ATtiny2313А (4313) – 1,8-5,5В и до 190 мкА в активном режиме на частоте 1 МГц.

В ждущем режиме энергопотребление снижается на два порядка и не превышает 1 мкА. Кроме этого данное семейство микроконтроллеров обладает целым рядом специальных свойств. С полным перечнем возможностей ATtiny2313 можно ознакомиться на официальной страничке производителя www.atmel.com.

Схема и принцип её работы

В центре принципиальной электрической схемы расположен МК ATtiny2313, к 13-ти выводам которого подключены светодиоды.

В частности, для управления свечением полностью задействован порт В (PB0-PB7), 3 вывода порта D (PD4-PD6), а также PA0 и PA1, которые остались свободными из-за применённого внутреннего генератора. Первый вывод PA2 (Reset) не принимает активного участия в схеме и через резистор R1 соединён с цепью питания МК.

Плюс питания 5В подаётся на 20-й вывод (VCC), а минус – на 10-й вывод (GND). Для исключения помех и сбоев в работе МК по питанию установлен полярный конденсатор С1. С учётом небольшой нагрузочной способности каждого вывода подключать следует светодиоды, рассчитанные на номинальный ток не более 20 мА.

Это могут быть как сверхъяркие led в DIP корпусе с прозрачной линзой, так и smd3528. Всего их в данной схеме бегущих огней 13 шт. В качестве ограничителей тока выступают резисторы R6-R18.

Через цифровые входы PD0-PD3, а также с помощью кнопок SB1-SB3 и переключателя SA1 производится управление работой схемы. Все они подключены через резисторы R2, R3, R6, R7. На программном уровне предусмотрено 11 различных вариаций мигания светодиодов, а также последовательный перебор всех эффектов. Выбор программы задаётся кнопкой SB3.

В пределах каждой программы можно изменять скорость её выполнения (мигания светодиодов). Для этого переключатель SA1 переводят в замкнутое положение (скорость программы) и кнопками увеличения (SB1) и уменьшения (SB2) скорости добиваются желаемого эффекта.

Если SA1 разомкнуть, то кнопки SB1 и SB2 будут регулировать яркость светодиодов (от слабого мерцания до свечения на номинальной мощности).

Печатная плата и детали сборки

Специально для начинающих радиолюбителей предлагаем два варианта сборки бегущих огней: на макетной и на печатной плате. В обоих случаях рекомендуется использовать микросхему в PDIP корпусе, устанавливаемую в DIP-20 панельку.

Все остальные детали также в DIP корпусах. В первом случае достаточно будет макетной платы 50х50 мм с шагом 2,5 мм.

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

Если бегущие огни на светодиодах предполагается активно использовать в дальнейшем (например, в автомобиле, велосипеде), то лучше собрать миниатюрную печатную плату. Для этого понадобится односторонний текстолит размером 55*55 мм, а также радиоэлементы:

  • С1 – 100 мкФ-6,3В;
  • DD1 – ATtiny2313;
  • HL1-HL13 – LED любого цвета диаметром 3 мм;
  • R1 – 10 кОм-0,25 Вт±5%;
  • R2-R18 – 1 кОм-0,25 Вт±5%;
  • SB1-SB3 – тактовая кнопка KLS7-TS6601 (любая аналогичная);
  • SA1 – трёхвыводной движковый переключатель ESP1010.

Для тех, кто имеет опыт изготовления печатных плат, лучше использовать ATtiny2313 форм-фактора SOIC, а также smd резисторы. Это позволит уменьшить размеры устройства примерно в 2 раза. Также можно взять сверхъяркие smd светодиоды и разместить их отдельным блоком.

Прошивка

Для прошивки МК ATtiny2313 следует использовать самодельный программатор, подключаемый к RS-232 компьютера и известный многим PonyProg2000. Перед прошивкой необходимо выставить фьюзы в соответствии с таблицей.

Источник: https://ledjournal.info/shemy/begushhie-ogni-na-svetodiodah.html

Восстановление конфигурации Fuse-битов ATtiny13

Среди радиолюбителей вот уже несколько лет заслуженной популярностью пользуются микроконтроллеры Atmel AVR. Особенностью этих МК является то, что записать «прошивку» в них можно как в параллельном, так и в последовательном режиме.

В радиолюбительской практике наибольшее распространение получили последовательные (SPI — Serial Peripheral Interface) программаторы, имеющие ряд достоинств: их схемы, как правило, проще, чем у параллельных программаторов (в крайнем случае, можно обойтись даже пятью проводниками и двумя резисторами); имеется множество вариантов как самих программаторов, так и управляющих программ под различные ОС; для подключения программатора можно выбрать практически любой порт компьютера — существуют схемы как LPT и СОМ, так и USB-программаторов. К тому же, такой программатор позволяет «прошить» МК, не выпаивая его из устройства (ISP — In System Programmable).

Тем не менее, SPI-режим программирования является, все-таки, урезанным; и некоторые возможности полноценного параллельного программирования в нем не доступны.

Наиболее распространенной проблемой последовательного программирования считается невозможность произвести какие-либо действия с МК, если определенные fuse-ячейки этого МК были изменены относительно значений по умолчанию, — в таком случае чип «объявляет забастовку», и не выходит на связь с компьютером: его уже нельзя ни прочитать, ни «прошить» последовательным программатором.

И он кажется вышедшим из строя, при этом программа PonyProg, например, выдает такое вот сообщение об ошибке: «Device missing or unknown device (-24), хотя в конечной схеме этот МК может работать вполне нормально.

Причиной такой «необщительности» может быть, к примеру, установка в ноль (а ноль в fuse-битах у AVR означает, что данный бит запрограммирован) бита RSTDISBL — что приводит к отключению внешнего входа сброса и превращению его в обычную линию ввода-вывода; а без внешнего сброса МК не сможет войти в SPI-режим программирования, и будет недоступен для ПК.

Еще одна причина, по которой МК становится «невидимым» для SPI-программатора — отсутствие тактирования: fuse-биты, управляющие тактовым генератором (CKSEL0-3), могут быть установлены таким образом, что МК отключит внутренние цепи тактирования и будет требовать внешнего генератора — источника тактовых импульсов; а без тактирования SPI-программирование невозможно.

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

Если же такая неприятность все-таки произошла, и МК перестал устанавливать связь с компьютером, то исправить неправильно выставленные fuse-байты с помощью последовательного программатора уже не удастся.

Тем не менее, вовсе не обязательно делать или приобретать новый параллельный программатор (или, тем более, отладочный комплект) только для того, чтобы «вылечить» пару «коматозных» МК, тем более, если старый SPI- программатор вполне устраивает — для этого удобнее воспользоваться простым устройством, схема которого приведена на сайте www.radiochipi.ru

Прибор предназначен для «лечения» МК ATtiny2313, но может быть переделан и для любой другой модели AVR — как Tiny, так и Меда — для чего прилагается хорошо закомментированный «исходник» микропрограммы, что дает возможность переписать ее применительно к тому МК, которому в данный момент требуется «скорая помощь». Суть работы такого устройства заключается в том, «пациента» в режим параллельного программирования, и эмулировать на его линиях те сигналы «настоящего» программатора, которые отвечают за изменение состояния fuse-ячеек; а затем записать в этот МК значения fuse-ячеек по умолчанию.

https://www.youtube.com/watch?v=ym_P6CKr4nM

Данное устройство выставляет заводские значения для всех fuse-байтов: старшего, младшего и дополнительного; а вдобавок еще и стирает у «пациента» память программ и данных — в результате чего он приобретает состояние «чистой» микросхемы.

В радиолюбительской литера-туре и интернете уже описывались подобные устройства (под названиями Fuse Doctor, AVR Doctor, AVR Reanimator, AVR Айболит и т.п.), но данное обладает несколькими особенностями, делающими работу с ним немного приятнее.

Во-первых, во всех известных автору конструкциях «доктор» и «пациент» подключались друг к другу, практически, «нога к ноге» (за исключением некоторых выводов, которые у «доктора» и «пациента», согласно схеме, не должны соединяться).

То есть, линии РВ0-РВ7 — к линиям РВ0-РВ7, линия PD6 — к линии PD6 и Т.

Д- Что, в случае сборки схемы печатным способом, значительно усложняло монтаж — требовалось множество перемычек, или же двухсторонняя разводка (правда, некоторые авторы предлагали просто устанавливать микросхемы друг на друга, отгибая не соединяемые выводы в сторону и паяя на них резисторы/проводники; но надежность контакта при такой вот «микроконтроллерной камасутре» ставится под сомнение; а к чему приводит отгибание-загибание выводов у микросхем, мы все прекрасно знаем). Здесь же микросхемы расположены как бы «бок об бок», «валетом», что делает разводку печатной платы очень простой.

В авторском варианте, который приведен на рис.2, она во многом повторяет принципиальную схему, и содержит всего три небольшие перемычки. Размер платы — 60×60 мм. Во-вторых, некоторые устройства требовали двух напряжений: 5 В — для питания МК, и 12 В — на линию reset «пациента», для ввода в режим программирования.

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

В-третьих, большинство описанных устройств не допускают «горячей» замены «пациентов» в случае, если нужно «вылечить» несколько МК подряд — после каждого «прошивания» у них нужно отключить питание, заменить «больного», затем включить питание вновь и т.д. Данное устройство устанавливает все выходы в лог.

О после каждого «прошивания», что позволяет «лечить» микросхемы «конвейером» — подключил питание, установил «пациента», нажал на кнопку «старт», посмотрел результат «лечения» по HL1, снял, вставил нового «пациента», нажал, глянул HL1, снял, вставил и т.д. И все это без отключения питания (хоть «палатку» на радиорынке открывай!). Ну и, в-четвертых, часто в подобных устройствах отсутствует верификация записанных fuse- битов и индикация результата «лечения» (по типу «удачно/неудачно»).

В данной конструкции верификация предусмотрена, а для индикации ее результатов служит светодиод HL1, который может иметь три состояния:

  1. Горит непрерывно — программирование «пациента» прошло успешно, прочитанные fuse-байты соответствуют записанным;

    устройство ожидает очередного «пациента»;

  2. Мигает с частотой 2Гц — ошибка в программировании «пациента»: прочитанные fuse-байты не совпадают с записанными; «пациент» не вошел в режим программирования, не установлен или неисправен (в программе предусмотрена проверка на наличие «пациента» — исправный AVR устанавливает лог.1 на линии BSV/RDY (вывод 3 для ATtiny2313) при вхождении в режим параллельного программирования); устройство ожидает очередного

    «пациента»;

  3. Не ГОРИТ — идет процесс программирования и верификации. Программирование исправного «пациента» длится менее секунды, и это состояние светодиода в нормальных условиях не должно быть заметно. Если же светодиод находится в погашенном состоянии относительно долго, то, скорее всего, процесс «прошивания» зациклился из-за того, что неисправный «пациент» завис в режиме записи и не выставляет сигнал готовности BSY/RDY, ожидаемый «доктором».

Как уже было сказано, устройство является достаточно универсальным, и применимо для «лечения» практически любого МК серии AVR.

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

Переходник представляет собой панельку DIP-20, которая вставляется своими «ножками» в панель для «пациента» на плате устройства. Сверху к такой панельке (к контактам для выводов микросхемы) подпаивают (или просто вставляют) проводники в тех местах, в которых подходят линии питания и управления к «пациенту» на плате.

Другими концами эти проводники припаиваются к выводам второй панельки — под тот МК, которому требуется «лечение» — в соответствии с расположением его управляющих линий, которое можно уточнить в фирменном даташите.

Получается своеобразный разъем, штекер (просто панелька DIP-20) которого вставляется в панельку DIP-20 для «пациента» на плате, а уже в его гнездо (еще одна панелька) вставляется новый «пациент». Что же касается программы, то ей может потребоваться коррекция, т.к.

разные модели МК AVR часто требуют различных действий как для входа в режим программирования, так и для изменения fuse-байтов. К тому же и сами fuse-байты (в т.ч. и их количество) у разных моделей МК различны — более подробную информацию можно получить в [Л. 1,2,3], или в фирменной документации.

А чтобы было проще разобраться в исходной программе, я снабдил ее подробными комментариями.

В качестве «доктора» в данном устройстве используется такой же, как и «пациент», микроконтроллер ATtiny2313 — он так же устанавливается на панельке, чтобы после восстановления всех «заболевших» микросхем его можно было бы снять и использовать в других проектах.

Для работы в этом устройстве все fuse- биты «доктора» должны быть такими, какие установлены в нем по умолчанию (с завода); единственное — для более стабильной работы (особенно при нестабильном напряжении питания), в «докторе» можно включить систему BOD, настроив на уровень 2,7 В (установкой fuse-бита BODLEVEL1 в ноль).

Внешний кварц «доктору» не требуется, он работает от встроенного RC-генератора. Микросхему DA1 (78L05) можно заменить отечественным аналогом КР1157ЕН502, либо более мощной 7805 — но она гораздо дороже, а ее мощность для данной схемы не требуется.

Транзистор VT1 здесь работает в ключевом режиме, и может быть любым, структуры NPN — например, КТ315, 2SC1815, 2SC9014, 2SC1749S и др.; но для некоторых моделей придется изменить разводку платы. Предохранительный диод VD1 может быть любым, на ток не менее 150 мА. его задача — защитить схему от случайной переполюсовки питания.

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

И в заключение, хочется рассказать об интересной особенности поведения некоторых экземпляров МК ATtiny2313 при их SPI-программировании с помощью программы PonyProg2000 (возможно, также ведут себя и другие модели МК, в т.ч.

и с другими программами — но автору пока еще не доводилось поэкспериментировать с чем-либо, кроме связки ATtiny2313-PonyProg2000).

Суть проблемы состоит в следующем: иногда, при попытке прочесть или записать МК, программа PonyProg выдает сообщение об ошибке «Device missing or unknown device (-24)» — и это притом, что никакие fuse-биты в данном МК не изменялись — более того, микросхема может быть даже новой, ни разу еще не «прошитой»! «Лечение» при помощи описанного выше устройства никаких результатов не дает — при повторной попытке чтения/записи сообщение об ошибке появляется вновь.

МК кажется вышедшим из строя, причем — ни с того, ни сего. Но если в данном сообщении нажать кнопку «Ignore», тем самым заставив «Пони» проигнорировать отсутствие ответа МК.

и все равно попытаться прочитать/записать микросхему, то этот МК нормально прочитается или «прошьется».

После такой вот принудительной «прошивки» большинство «прикидывающихся мертвыми» МК будут вполне нормально работать, притом без каких- либо сбоев (кроме описанного выше сообщения при попытке установить связь с ПК)!

По видимому, дело здесь в том, что некоторые экземпляры МК не генерирует корректное подтверждение в ответ на запрос программатора, в результате чего PonyProg делает вывод об их неисправности; при этом остальные команды программатора эти МК воспринимают нормально и выполнят корректно.

Вполне возможно, что это является особенностью (а точнее сказать, «болезнью») МК AVR (не просто же так в PonyProg включили такую кнопочку — «Ignore») — у автора данной статьи три из десяти МК вели себя подобным образом, причем чаще начиналось это не сразу, а спустя несколько «прошивок».

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

) такие ‘подорвавшие доверие» МК использовать, все-таки, не желательно.

А вот в игрушках, елочных гирляндах, дверных звонках и других вспомогательных устройствах (вроде описанного выше ©) они вполне проработают много лет — и притом без каких-либо проблем.

Источник: http://www.radiochipi.ru/vosstanovit-fuse-na-attiny2313/

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

Источник: http://radioskot.ru/publ/mk/programmirovanie_attiny2313/9-1-0-49

Переходим от AT90S2313 к Attiny2313

Микроконтроллер AT90S2313 фирмы Atmel снят с производства, поэтому найти его сейчас крайне трудно.На смену ему пришел Attiny2313, который продается на каждом углу.Тем не менее, проекты под AT90S2313 присутствуют в интернетах и старой литературе по AVR.Чтобы переделать прошивку МК под attiny нужно внести некоторые изменения в программу.

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

Список главных изменений, требующих корректировки в программе и схеме устройства под AT90S2313: -Фьюзы(FUSE)!!! — включают в себя еще ряд новых фишек, речь о них пойдет ниже. -Новые значения рабочего напряжения МК. -Изменены названия некоторых регистров. -Изменен порядок работы с прерываниями. -Изменения в работе таймеров. Прежде всего, нам потребуется библиотека под новый МК.

Как правило, во всех более-менее современных компиляторах эта библиотека уже имеется.Подключаем ее в программе в первую очередь:#include или в зависимости от названия библиотеки#include Теперь обо всем поподробнее. Первое нововведение, оно же является наиболее важным + с ним нужно проявлять наибольшую осторожность — фьюзы(они нужны для управления всякими фичами МК).

В AT90S2313 их было всего 2, и трогать их практически не приходилось, так как один из них отвечал за время старта МК, а второй за возможность программировать контроллер.Как видно, функции очень специфические, поэтому используются редко. В новом МК фьюзов стало на 15 больше, спектр их действия расширился, поэтому при работе с Attiny встречи с ними уже не избежать.

В каждом программаторе есть раздел настройки FUSE. В Uniprof это кнопка FUSE вверху:

Нажав на нее, мы увидим табличку с фьюзами и lock-битами:

Я уже писал, что с фьюзами надо быть поосторожнее.Убить МК можно, неправильно выставив фюьзы RSTDISBL и SPIEN.Как раз тот самый, что мы не трогали в At90S2313.Впрочем, говорят, что SPIEN у attiny сбросить через последовательный программатор нельзя, но я не проверял и никому не советую.

RSTDISBL, проще говоря, отвечает за роль 1ой ноги микросхемы и влияет также на возможность программирования. Биты, находящиеся в таблице в колонке low отвечают за задержку перед запуском программы в МК и за использование встроенного тактового генератора.Это, кстати еще одно важное нововведение, у Attiny2313 есть встроенный тактовый генератор(4/8 МГц/128 кГц).

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

Кстати, по умолчанию включено деление тактовой частоты на 8(CKDIV8), в большинстве случаев ненужная опция, если вы ее специально включили, наверное, знаете, что делаете 🙂 Биты из колонки high(помимо RSTDISBL и SPIEN, о которых уже было сказано) отвечают за управление такими штуками, как отладочный провод, собачий таймер(watchdog — перезагружает МК, если не получает от него ответ, за некоторое время), защита от низкого напряжения(не дает включится МК при напряжении ниже заданного), защита EEPROM. Lock-биты управляют защитой от копирования прошивки МК(нужны, наверное, только если вы продаете девайс)).

Удобно рассчитывать фьюзы с помощью этого калькулятора.Только обратите внимание на то, что обозначает поставленная галочка в вашем программаторе.Например, в PonyProg она означает совсем не то, что она означает в Uniprof:

Что касается рабочего напряжения: Для старого контроллера оно составляет 2,7-6,0 вольт. Для Attiny оно ниже: 1,8-5,5. Изменения претерпели названия регистров и некоторых битов.При переходе на новый МК надо изучить программу на наличие обращений к этим регистрам и битам и свериться со следующей таблицей.

Биты поменяли имена, но их адреса и функции остались прежними.

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

В работе таймеров также произведены изменения. В таймере TCNT1 в режиме ШИМ неиспользуемые разряды теперь автоматически сбрасываются в ноль, в результате чего исключается счет до 0хFFFF там, где он не запланирован.

Очистка OCR1xH в режиме ШИМ в Attiny происходит в соответствии с разрядностью режима, а не сбрасыванием 6 значащих знаков. Функция сброс по результату сравнения в новом МК проходит по другому алгоритму, т.е. не по первому совпадению значений, а по последнему. OCR1x = 0x02 с разрешенным предделением на 8(расстановка флагов).

Для AT90S2313:

Для Attiny2313:UART в новой серии микроконтроллеров заменен на USART, поддрживающих передачу данных на удвоенной скорости и работающий, как регистр FIFO(First In, First Out «первым пришёл — первым ушёл»).Включение/отключение FIFO, кстати, управляется конфигурационным битом S8515C.

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

В общем, старался, как мог интерпретировать атмеловские рекомендации и дополнить их своими пояснениями.Надеюсь хоть что-нибудь из этого кому-нибудь пригодится…

Источник: http://we.easyelectronics.ru/blog/AVR/675.html

Воскрешение микроконтроллера ATtiny2313 после “кривой” установки Fuse-битов

Я как-то баловался с fuse-битами на моей тиньке(Attiny2313) и был добаловался. Так как фьюзы я трогал только отвечающие за источник тактирующего сигнала мне повезло. Фьюз биты делятся на несколько групп:

Я как-то баловался с fuse-битами на моей тиньке(Attiny2313) и был добаловался. Так как фьюзы я трогал только отвечающие за источник тактирующего сигнала мне повезло. Фьюз биты делятся на несколько групп:

1. Lock-фьюзы – отвечают за сохранность кода программы находящегося в микроконтроллере, так сказать предостварщает попытки скачать с микроконтроллера управляющую программу.

Я так считаю что даже если скачать программу и попробовать её расшифровать то мало что получится, напрмиер стыкался с такими случаями в PHP.
2. Low-фьюзы – отвечают за источник тактирующих импульсов и задают коэффициент деления импульсов.
3.

High-фьюзы – данные фьюзы лучше не трогать, так как они программируют жизненно важные настройки, напрмиер работу протокола последовательной передачи данных SPI.
4.

Ext-фьюзы – эта группа фьюзов отвечает за настройки позволяющие микроконтроллеру выполнять функцию самоперепрошивки, полезная штука зарубежем с помощью нее часто устраивают так называемые boot loader-ы, у нас пока толковых статей на эту тему я не видел.

В этой статье я расскажу как восстановить работоспособность микроконтроллера семейства AVR на примере ATtiny2313 после неправильной их установки именно второй группы фьюзов – Low-фьюзы.

Неправильная установка фьюзов проявляется полным отсутствием признаком жизни микроконтроллера. Программа для прошивки микроконтроллеров UniProf полностью отказывается определять что за микроконтроллер подключен.

Программаторы микроконтроллеров AVR делятся на два типа: параллельные и последовательные(SPI).
Я пользуюсь последовательным, программатор предложенный Сергеем тоже последовательный.

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

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

За источник тактирующего сигнала отвечает группа Low-фьюзов.
Для “воскрешения” микроконтроллера с неправильно выставленными Low-фьюзами потребуется генератор импульсов. В моем случаи генератор импульсов – это очень большая роскошь, и поэтому в его роли будет выступать микроконтроллер Attiny2313 прошиты следующей управляющей программой:

  1. #include //Библиотека ввода/вывода

  2. #define INIT DDRB|=_BV(PB0)//Назначаем константу как настройку направления работы порта<\p>

  3. #define ON PORTB&=~_BV(PB0)//Назначаем константу как включение порта то есть вывод “1” на PB0<\p>

  4. #define OFF PORTB|=_BV(PB0)//Назначаем константу как включение порта то есть вывод “0” на PB0<\p>

  5. #define nop() __asm__ __volatile__(“nop”)//Дефайним ассемблеровскую функцию паузы

  6. int main(void)//Главная программа

  7. {<\p>

  8. INIT;//Выполняем конфигурацию направления порта на выход

  9. OFF; //Устанавливаем на PB0 значение “0”

  10. while(1)//Вечный цикл

  11. {<\p>

  12. nop(); //Выполняем паузу

  13. ON; //Устанавливаем на PB0 значение “1”

  14. nop(); //Выполняем паузу

  15. OFF; //Устанавливаем на PB0 значение “0”

  16. }<\p>

  17. return(0);<\p>

  18. }

Файл с программой в разделе Шаблоны .

Результат: программа генерирует импульсы частотой fкв./2, 1 так уходит на функцию nop();
Частоту кварца я брал 16МГц, при этом все отлично работало.

Выход порта PB0 необходимо подсоединить к ноге номер 5 нашей дохлой Attiny2313, подключить программатор и запустить программу UniProf. После чего программа должна успешно определить подключенный микроконтроллер.

Далее необходимо установить фьюз-биты в заводскую конфигурацию.

Проект в формате AVR studio с готовым HEX файлом прошивки.

Печатная плата проекта

»

Источник: https://avrlab.com/node/42

Световые эффекты на pic

Источник: http://radio-bes.do.am/publ/ustrojstva_na_mk/svetovye_ehffekty_na_pic/2-1-0-386

Метка: ATtiny2313

Предлагаемое устройство позволяет перейти от релейного принципа управления вентилятором системы охлаждения двига­теля “температура выше нормы — включён, ниже нормы — выключен” к более, по мнению автора, благоприятному для дви­гателя пропорциональному управлению. Теперь с ростом темпе­ратуры охлаждающей жидкости частота вращения ротора венти­лятора линейно увеличивается. Сегодня во многих автомобильных двигателях вентилятор охлаждения имеет электрический привод, но управ­ляют …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/34536

Термостат предназна­чен для работы с отопительной системой на основе отопитель­ного электрокотла. В основе схемы лежит микросхема DS1621.

Микросхема DS1621 это термометр и термо­стат с цифровым вводом/выводом, обес­печивающий точность ±0.5°С.

При использо­вании в качестве термо­метра, данные считы­ваются через I2C/SMBus последова­тельную шину в допол­нительном 9-битном коде с ценой младшего разряда ±0.5°С. Для приложений требу­ющих более высокого разрешения, …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/34335

Когда-то в [Л.1] был описан управляемый генератор прямоугольных колебаний TTL-уровня на микроконтроллере ATTiny2313.

Он мог вырабатывать 31 фиксированную частоту (от 0,1 Hz до 4 MHz), имел очень простую схему и управлялся подачей двоичного кода на управляющие входы.

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

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/32901

Чтобы открыть этот электронный замок, не потребуется запо­минать код и набирать его вручную, нажимая на кнопки. Достаточно вставить в “замочную скважину” замка “ключ” с мик­росхемой энергонезависимой памяти.

Подсмотреть открываю­щий замок код невозможно. Его генерирует и записывает в память “ключа ” сам замок. Кодовые замки обычно работают по хорошо известному принципу. За­мок хранит секретный код.

Пользова­тель …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/29263

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

Схема состоит из распространённого микроконтроллера ATtiny2313, стандартного индикатора и нескольких дискретных элементов. Основные параметры устройства: Напряжение питания: 4,5…

5,5 В Потребляемый ток: меньше 10 мА (без подсветки индикатора) Измеряемые параметры: Скорость. Полный путь. Промежуточный путь. Диапазон измеряемых скоростей: 3 км/ч…60 …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/27584

Источник: http://meandr.org/archives/tag/attiny2313

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}
");let k=document.querySelector(".flat_pm_modal[data-id-modal=\""+a.ID+"\"]");if(-1===d.indexOf("go"+"oglesyndication")?flatPM_setHTML(k,d):jQuery(k).html(b+d),"px"==a.how.popup.px_s)e.bind(h,()=>{e.scrollTop()>a.how.popup.after&&(e.unbind(h),f.unbind(i),j())}),void 0!==a.how.popup.close_window&&"true"==a.how.popup.close_window&&f.bind(i,()=>{e.unbind(h),f.unbind(i),j()});else{let b=setTimeout(()=>{f.unbind(i),j()},1e3*a.how.popup.after);void 0!==a.how.popup.close_window&&"true"==a.how.popup.close_window&&f.bind(i,()=>{clearTimeout(b),f.unbind(i),j()})}f.on("click",".flat_pm_modal .flat_pm_crs",()=>{jQuery.arcticmodal("close")})}if(void 0!==a.how.outgoing){let b,c="0"==a.how.outgoing.indent?"":" style=\"bottom:"+a.how.outgoing.indent+"px\"",e="true"==a.how.outgoing.cross?"":"",f=jQuery(window),g="scroll.out"+a.ID,h=void 0===flatPM_getCookie("flat_out_"+a.ID+"_mb")||"false"!=flatPM_getCookie("flat_out_"+a.ID+"_mb"),i=document.createElement("div"),j=jQuery("body"),k=()=>{void 0!==a.how.outgoing.cookie&&"false"==a.how.outgoing.cookie&&h&&(jQuery(".flat_pm_out[data-id-out=\""+a.ID+"\"]").addClass("show"),j.on("click",".flat_pm_out[data-id-out=\""+a.ID+"\"] .flat_pm_crs",function(){flatPM_setCookie("flat_out_"+a.ID+"_mb",!1)})),(void 0===a.how.outgoing.cookie||"false"!=a.how.outgoing.cookie)&&jQuery(".flat_pm_out[data-id-out=\""+a.ID+"\"]").addClass("show")};switch(a.how.outgoing.whence){case"1":b="top";break;case"2":b="bottom";break;case"3":b="left";break;case"4":b="right";}jQuery("body > *").eq(0).before("
"+e+"
");let m=document.querySelector(".flat_pm_out[data-id-out=\""+a.ID+"\"]");-1===d.indexOf("go"+"oglesyndication")?flatPM_setHTML(m,d):jQuery(m).html(e+d),"px"==a.how.outgoing.px_s?f.bind(g,()=>{f.scrollTop()>a.how.outgoing.after&&(f.unbind(g),k())}):setTimeout(()=>{k()},1e3*a.how.outgoing.after),j.on("click",".flat_pm_out .flat_pm_crs",function(){jQuery(this).parent().removeClass("show").addClass("closed")})}countMode&&(flat_count["block_"+a.ID]={},flat_count["block_"+a.ID].count=1,flat_count["block_"+a.ID].click=0,flat_count["block_"+a.ID].id=a.ID)}catch(a){console.warn(a)}}function flatPM_start(){let a=flat_pm_arr.length;if(0==a)return flat_pm_arr=[],void jQuery(".flat_pm_start, .flat_pm_end").remove();flat_body=flat_body||jQuery("body"),!flat_counter&&countMode&&(flat_counter=!0,flat_body.on("click","[data-flat-id]",function(){let a=jQuery(this),b=a.attr("data-flat-id");flat_count["block_"+b].click++}),flat_body.on("mouseenter","[data-flat-id] iframe",function(){let a=jQuery(this),b=a.closest("[data-flat-id]").attr("data-flat-id");flat_iframe=b}).on("mouseleave","[data-flat-id] iframe",function(){flat_iframe=-1}),jQuery(window).on("beforeunload",()=>{jQuery.isEmptyObject(flat_count)||jQuery.ajax({async:!1,type:"POST",url:ajaxUrlFlatPM,dataType:"json",data:{action:"flat_pm_ajax",data_me:{method:"flat_pm_block_counter",arr:flat_count}}})}).on("blur",()=>{-1!=flat_iframe&&flat_count["block_"+flat_iframe].click++})),flat_userVars.init();for(let b=0;bflat_userVars.textlen||void 0!==a.chapter_sub&&a.chapter_subflat_userVars.titlelen||void 0!==a.title_sub&&a.title_subc&&cc&&c>d&&(b=flatPM_addDays(b,-1)),b>e||cd||c-1!=flat_userVars.referer.indexOf(a))||void 0!==a.referer.referer_disabled&&-1!=a.referer.referer_disabled.findIndex(a=>-1!=flat_userVars.referer.indexOf(a)))&&(c=!0),c||void 0===a.browser||(void 0===a.browser.browser_enabled||-1!=a.browser.browser_enabled.indexOf(flat_userVars.browser))&&(void 0===a.browser.browser_disabled||-1==a.browser.browser_disabled.indexOf(flat_userVars.browser)))){if(c&&void 0!==a.browser&&void 0!==a.browser.browser_enabled&&-1!=a.browser.browser_enabled.indexOf(flat_userVars.browser)&&(c=!1),!c&&(void 0!==a.geo||void 0!==a.role)&&(""==flat_userVars.ccode||""==flat_userVars.country||""==flat_userVars.city||""==flat_userVars.role)){flat_pm_then.push(a),flatPM_setWrap(a),flat_body.hasClass("flat_pm_block_geo_role")||(flat_body.addClass("flat_pm_block_geo_role"),flatPM_ajax("flat_pm_block_geo_role")),c=!0}c||(flatPM_setWrap(a),flatPM_next(a))}}}let b=jQuery(".flatPM_sticky");b.each(function(){let a=jQuery(this),b=a.data("height")||350,c=a.data("top");a.wrap("
");let d=a.parent()[0];flatPM_sticky(this,d,c)}),debugMode||countMode||jQuery("[data-flat-id]:not([data-id-out]):not([data-id-modal])").contents().unwrap(),flat_pm_arr=[],jQuery(".flat_pm_start, .flat_pm_end").remove()}
     Как производится программирование микроконтроллеров ATtiny2313? Итак, имеем микроконтроллер ATtiny2313, LPT порт (обязательно железный – никакие USB-2-LPT не работают), несколько проводков (длина не более 10см) и конечно же паяльник. Желательно иметь разъём DB-25M (папа), с ним будет удобней подключать микроконтроллер, но можно обойтись и без него. Припаиваем проводки к выводам 1, 10, 17, 18, 19, 20 микроконтроллера. Получаем нечто вроде того, что на фото:

   Далее, если есть разъём DB-25M, то припаиваем проводки к нему в соответствии с таблицей. Если нет, то просто втыкаем проводки в разъём на компьютере (не забывая про таблицу!!!).

   Я делал без разъёма (в наличии были только мамы…), и вот что получилось:

   Правда у меня LPT порт вынесен на стол с помощью кабеля длиной 1,5 метра. Но при этом кабель должен быть экранированный, иначе будут наводки, помехи и ничего не получится. Схема этого устройства программирования микроконтроллера вот такая:

   Если быть совсем честным, то желательно собрать “правильный” программатор. И потом будет проще и порт целее. Я пользую STK200/300. Далее используем программу PonyProg2000. После запуска программы она “заржет….” как настоящий пони. Чтобы этого больше не слышать в появившемся окне ставим галочку “Disable sound”. Жмём “ОК”. Выскакивает окошко которое говорит, что нужно откалибровать программу. Компы бывают же разные и медленные и шустрые. Жмём “ОК”. Выскакивает ещё одно окошко – это нам говорит, что нужно настроить интерфейс (какой программатор и куда подключен.). Итак заходим в меню: Setup -> Calibration. В появившемся окне:

   Жмём “YES”. Проходит пара секунд и программа говорит “Calibration OK”. Далее заходим в меню: Setup -> Interface Setup. В появившемся окошке настраиваем как у показано на рисунке.

   Теперь заходим в меню: Command -> Program Options. В появившемся окошке настраиваем как показано на рисунке.

   Всё готово к программированию!… Итак, последовательность действий:

1. Выбираем из списка “AVR micro”2. Из другого списка выбираем “ATtiny2313″3. Загружаем файл прошивки (File -> Open Device File), выбираем нужный файл, например “rm-1_full.hex”.4. Жмём кнопочку “Launch program cycle”. Когда программирование завершится прога скажет “Program successful”5. Ну и напоследок надо запрограммировать так называемые Фьюзы (fuses). Для этого жмём кнопочку “Security and Configuration Bits”. В появившемся окне жмём “Read”, потом выставляем галочки и жмём “Write”.

   ВНИМАНИЕ! Если Вы не знаете, что означает тот или иной конфигурационный бит, то не трогайте его. Вот теперь у нас готовый к работе контроллер ATtiny2313! На форуме можно скачать программу PonyProg2000 и оригинал статьи с дополнительными рисунками. Материал для сайта Радиосхемы предоставил Ansel73.

   Форум по микроконтроллерам

1 схема
 Предлагаю вам для повторения принципиальную схему световых эффектов, сделанных на основе популярного микроконтроллера Pic12f629. Схема представляет 15 различных световых эффектов, включая эффект имитирующий полицейский проблесковый сигнал. Для увеличения – клик на картинку.

   Эта схема очень проста в сборке и не требует налаживания. При нажатии кнопки “Старт” включается автоматический режим воспроизведения.

   Автоматический режим воспроизведения – это когда воспроизводятся все световые эффекты поочередно. Для остановки воспроизведения эффектов еще раз нажмите кнопку “Старт”.

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

   Чтобы переключить эффект нажмите кнопку “Назад” – для перехода к предыдущему световому эффекту, “Вперед” – для перехода к следующему.

   Устройство собранно на печатной плате, рисунок и прошивка для контроллера в архиве. На плате собран и простой стабилизатор 5В, для питания контроллера (на схеме он не показан). Корпус – пластмассовая небольшая коробочка. Сами светодиоды выбираем любых типов и цветов, подходящих по напряжению и току. Их располагаем в любом виде – тут уже подключите свою фантазию. А если нужно сделать на основании этого девайса эффекты для дискотеки – просто усиливаем выходы микроконтроллера мощными полевыми транзисторами типа IRF. Автор конструкции: Пелех.М2 часть

В данной статье предлагается 2 схемы светодиодных эффектов на микроконтроллерах PIC и AVR.

1) PIC12F629

Существует 4 функции:

* Chaser MODE  * Brake MODE  * Chaser / Brake MODE

* OFF

Режимы переключаются при последовательном нажатии на кнопку.

2)  Attiny2313

Светодиодная гирлянда на микроконтроллере ATtiny231320PI

Данный проект светодиодной гирлянды на микроконтроллере хорошо подходит для начинающих. Схема отличается своей простотой и содержит минимум элементов.

Данное устройство управляет 13 светодиодами, подключенными к портам микроконтроллера. В качестве микроконтроллера используется МК фирмы ATtiny231320PI. Благодаря использованию внутреннего генератора, выводы 4 и 5 задействованы как дополнительные порты микроконтроллера PA0,PA1.

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

Программы эффектов включают в себя и бегущий одинарный огонь, и нарастание огня, и бегущую тень и многое другое.

Устройство имеет возможность регулировки скорости смены комбинаций при выполнении программы, которая осуществляется нажатием на кнопки: SB2 – увеличение скорости и SB3 – уменьшение скорости при условии, что переключатель SA1 находиться в положении “Скорость программы”.

Также имеется возможность регулировать частоту горения светодиода (от стабилизированного свечения до легкого мерцания), которая осуществляется нажатием на кнопки: SB2 – уменьшение (до мерцания) и SB3- увеличение при условии, что переключатель SA1 находиться в положении “Частота  мерцания”.

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

В устройстве выбрано при программировании тактовая частота 8 МГц от внутреннего генератора (фузы CKSEL3..0 – 0100).Хотя возможно использование частоты в 4 МГц(фузы CKSEL3..0 – 0010) с соответствующими изменениями временных интервалов работы схемы.

Тип светодиодов, указанный на схеме использовался в опытном образце, для  схемы подойдут любые светодиоды с напряжением питания 2-3 вольта, резисторами R1-R17 можно регулировать яркость свечения светодиодов.

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

 Источник

Автор проекта: Антон Гаркуша (gam-raingers[собака]mail.ru)

Источник: http://radioskot.ru/publ/mk/svetovye_ehffekty_na_pic/9-1-0-500