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

Схемы на attiny2313: портал и журнал для разработчиков электроники

Схемы, устройства и проекты на микроконтроллерах AVR

Главная→Рубрики Схемы на AVR 1 2 3 4 5 >>

Схемы, устройства и проекты на микроконтроллерах ATtiny и ATmega (семейство AVR). Для каждого проекта приведен текст программы на языке С (Си) с комментариями, что позволяет начинающим радиолюбителям на конкретных примерах научиться программированию данных микроконтроллеров

Опубликовано автором admin-new22 октября, 2022

В идеальном случае батарея должна иметь внутреннее сопротивление равное нулю. Но ничто в этом мире не совершенно, в том числе и батареи, а электроды батареи не являются на 100% проводниками, что создает небольшое сопротивление внутри батареи, которое называют ее внутренним … Читать далее →

Рубрика: Схемы на AVR | Метки: ATtiny85, avr, LM358, MOSFET, OLED дисплей, операционный усилитель, печатная плата | Добавить комментарий

Опубликовано

02. 09.2021 автором admin-new2 сентября, 2021

Цифровое измерение расстояний в настоящее время находит широкое применение в системах контроля движения транспортных средств, медицине, устройствах для слабовидящих и т.д. Наиболее дешевым способом измерения расстояний является использование для этой цели ультразвуковых датчиков, среди которых наиболее распространен датчик HC-SR04. В … Читать далее →

Рубрика: Схемы на AVR | Метки: ATtiny85, avr, HC-SR04, OLED дисплей, печатная плата, регулятор напряжения, ультразвуковой датчик | Комментарии (4)

Опубликовано автором admin-new10 февраля, 2021

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

Они … Читать далее →

Рубрика: Схемы на AVR | Метки: atmega16, atmega32, atmega8, ATtiny85, avr | Добавить комментарий

Опубликовано автором admin-new10 августа, 2021

Микроконтроллер ATtiny85 является удобной и сравнительно мощной альтернативой старшим моделям микроконтроллеров семейства AVR. Его применение особенно оправданно в тех случаях, когда вы стремитесь к минимизации размеров вашего устройства. Микросхема ATtiny85 содержит 8 контактов – 6 контактов ввода/вывода (включая Reset) и … Читать далее →

Рубрика: Схемы на AVR | Метки: arduino uno, ATtiny85, avr, программатор | Комментарии (5)

Опубликовано автором admin-new30 августа, 2021

ATtiny – это серия самых маленьких микроконтроллеров из семейства AVR. Эти микроконтроллеры могут использовать большинство библиотек, доступных для платформы Arduino. ATtiny85 – это 8-пиновый 8-битный микроконтроллер семейства AVR. Его исключительно малый размер и низкое энергопотребление делают его чрезвычайно удобным для … Читать далее →

Рубрика: Схемы на AVR | Метки: arduino uno, ATtiny85, avr, программатор | Комментарии (9)

Опубликовано автором admin-new2 января, 2021

В этой статье мы рассмотрим создание портативного счетчика шагов (шагомера) на основе микроконтроллера AVR ATtiny85, акселерометра и гироскопа MPU6050, и OLED дисплея. Питание на шагомер будет подавать от простой батарейки на 3V, что позволяет сделать его достаточно компактным и удобным … Читать далее →

Рубрика: Схемы на AVR | Метки: arduino, ATtiny85, avr, MPU6050, OLED дисплей, SSD1306, акселерометр, печатная плата | Добавить комментарий

Опубликовано автором admin-new7 сентября, 2022

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

Рубрика: Схемы на AVR | Метки: atmega16, atmega32, avr, gps, ЖК дисплей | Комментарии (

13)

Опубликовано автором admin-new25 июля, 2022

Как показывают многочисленные исследования в современном мире люди более склонны доверять машинам нежели другим людям. Сейчас, когда в мире активно развиваются такие технологии как искусственный интеллект, машинное обучение, чат-боты, синергия (совместная деятельность) между людьми и роботами с каждым годом все … Читать далее →

Рубрика: Схемы на AVR | Метки: atmega32, avr, датчик отпечатков пальцев, ЖК дисплей, система реального времени | Комментарии (12)

Опубликовано автором admin-new30 ноября, 2020

Двигатели постоянного тока относятся к числу наиболее часто используемых двигателей. Их можно встретить где угодно – начиная от простейших конструкций до продвинутой робототехники. В этой статье мы рассмотрим подключение двигателя постоянного тока к микроконтроллеру ATmega16 (семейство AVR). Но сначала немного … Читать далее →

Рубрика: Схемы на AVR | Метки: atmega16, avr, l293d, двигатель постоянного тока, драйвер мотора | Комментарии (4)

Опубликовано автором admin-new1 декабря, 2020

Принцип действия датчиков Холла основан на так называемом «эффекте Холла», открытым Эдвином Холлом (Edwin Hall) в 1869 году. Этот эффект гласит: «эффект Холла основан на явлении возникновения поперечной разности потенциалов (называемой также холловским напряжением) при помещении проводника с постоянным током … Читать далее →

Рубрика: Схемы на AVR | Метки: atmega16, avr, датчик холла, светодиод | Добавить комментарий

Схема.

Вольтметр на микроконтроллере ATtiny2313

      Принцип работы вольтметра основан на методе преобразования измеряемого напряжения в частоту с помощью однократного интегрирования. Это позволяет, по сравнению с микроконтроллерами, имеющими встроенные десятиразрядные АЦП, получить большую разрешающую способность в широком интервале измеряемого напряжения. Подсчет частоты, переключение пределов и вывод результатов измерения на светодиодный индикатор осуществляет микроконтроллер. Он работает по программе, коды которой приведены в таблице.

:020000020000FC
:100000002FC0189518955AC11895E9C1ADC018951B
:100010001895189518951895189518951895189578
:06002000189518951895D3
:10006000F8944FED4DBF41E948B944274BBF4FEFDE
:1000700047BB4FEF48BB4FE341BB40E242BB4EEOC2
:1000800041BD9927442740936900409367004DBDC7
:100090004CBD40936A0042E049BF44E043BF40E0AA
:1000A00040936B0040E040936C0040E24093680056
:1000B00040EC4093700049EF4093710044EA409354
:1000C000720040EB4093730049E94093740042E9A9

:1000D0004093750042E84093760048EF40937700E4
:1000E00040E84093780040E94093790048E8409325
:1000F0007A0043E840937B0046EC40937C0041EA61
:1001000040937D0046E840937E004EE840937F0098
:10011000789440E84093610040EC4093620049E9E4
:100120004093630049EF409364004FEF40936900B0
:10013000409169004423E1F76BD102D00000FDCF6C
:1001400090FD089500916800002309F00895F89447
:100150001FB69160002708BF0AE809BF02E00EBD84
:1001600095981FBE78940895A8951FB60F931F9376
:100170002F933F934F935F93AF93BF93209168006A
:10018000222319F02A9520936800209169002223E8
:1001900019F02A952093690020916A0088942E33E3
:1001A00038F4239520936A002FEF209360000DC050
:1001B00088942A3738F4239520936A0022272093C5
:1001C000600003C0222720936A0004E011E0BB27EF
:1001D000A1E622B3207F212B22BB3D9140916700F5
:1001E000342B38BB54E04FEF4A9544230000000005
:1001F000D9F75A955523B9F7110F0A95002349F7F6
:100200002FEF28BB22B3207F22BBBF91AF915F911C
:100210004F913F912F911F910F911FBE18951FB6BF
:1002200088249924AA24BB240091650010916600BB
:10023000202F312F8894084E134020FOB394202FA4
:10024000312FF9CF8894022F132F0446104020F04D
:10025000A394202F312FF9CF8894022F132F0A4017
:10026000104020F09394202F312FF9CF8894022F43
:10027000132F802EBB27A1E6FF27E0E7E80D0081C2
:100280000D93E0E7E90D00810D93E0E7EA0D0081B1
:100290000D93E0E7EB0D00818894003C11F491FD93
:1002A0000FEF0C9392FB26F000270093670004C029
:1002B00000916000009367001FBE08951FB68F92E3
:1002C0009F92AF92BF920F93lF932F933F934F93Al
:1002D0005F93AF93BF93EF93FF9300270EBD0DBDC8
:1002E0000CBD02E009BF959A0CE00093680004B5CC
:1002F00015B591FB4EF12FE037E28894200B310BBE
:10030000F8F09B7F20916B0027FF0EC0402F512FEC
:100310002F778894420B504018F0042F152F09C0F6
:1003200088940027112705C08894020F2227121FE6
:1003 300038F0009365001093660071DF77D03EC0FF
:100340008894949A92603AC024ED33E08894200B0C
:10035000310B20F094989D7F9B7F30C02FE037E2D7
:100360008894200B310B08F19B7F949A9260209126
:100370006C0027FF0EC0402F512F2F778894420B1F
:10038000504018F0042F152F09C08894002711271A
:1003900005C08894020F2227121F38F000936500D1
:1003A000109366003CDF42D009C0889494600FE04F
:1003B00017E2009365001093660031DF9E7FFF9186
:1003C000EF91BF91AF915F914F913F912F911F910D
:1003D0000F91BF90AF909F908F901FBE18951FB642
:1003E0000F9300270EBD0DBD0CBD0093650000935B
:1003F000660002E009BF0CE000936800959A0A9538
:100400000EDF9E7F0CE0009368000F911FBE1895D1
:100410004F93AF93BF934FEFBB27AlE64D934D93FF
:100420004D934C93BF91AF914F91089591FB36F04E
:10043000009164000F770093640005C00091630091
:080440000F770093630008959B
:00000001FF

      Схема устройства показана на рис. 1 Весь интервал измеряемого напряжения 0…99,99 В разбит на два участка — 0…9,999 и 10,00…99,99 В, которые переключаются автоматически Входное сопротивление на первом участке составляет 470 кОм, на втором — около 100 кОм, абсолютная погрешность измерения на первом участке составляет ±3 мВ. Напряжение питания вольтметра — 15…20 В, потребляемый ток — 60 мА. Период повторения измерений — 100 мс, максимальное время одного цикла преобразования при входном напряжении 9,999 В — 10 мс. При превышении измеряемым напряжением 99,99 В на индикаторе отображается число «9999», мигающее с частотой 2 Гц.

      Измерительная часть устройства состоит из интегратора, собранного на элементах DA1, R3, R4, С2, VT1, делителя напряжения на элементах R2, R5, VT2, компаратора напряжения DA3 и работает следующим образом. В момент запуска преобразования с линии порта PD5 (вывод 9) микроконтроллера DD1 на затвор транзистора VT1 поступает низкий логический уровень и он закрывается. В тот же момент программа записывает число 0x02 в управляющий регистр TCCR1B микроконтроллера DD1, что разрешает работу счетчика TCNT1 от импульсов с тактовой частотой контроллера, деленной на восемь, что составляет 1 МГц. Элементы DA1, R3, R4 образуют источник стабильного тока, от которого заряжается конденсатор С2. Компаратор DA3 сравнивает линейно нарастающее напряжение на этом конденсаторе с измеряемым (входным), поступающим на его неинвертирующий вход. Стабилитрон VD1 ограничивает напряжение на этом входе компаратора, защищая его от перегрузки.

      Как только нарастающее напряжение превысит измеряемое, на выходе компаратора DA3 установится низкий логический уровень. Спад сигнала на входе ISP (вывод 11) контроллера DD1 приведет к записи в регистр ICR1 содержимого счетного регистра TCNT1, запрос на прерывание по событию «захват» и вызов подпрограммы обработки прерывания. Если измеренное значение напряжения превысит 9,999 В, подачей высокого уровня на затвор транзистора VT2 с линии порта PD4 микроконтроллера DD1 будет включен резистивный делитель напряжения R2R5 Для исключения непрерывного переключения участков измерения на их границе программой предусмотрена зона гистерезиса шириной в 199 мВ.

    На точность измерения напряжения влияют, главным образом, такие факторы, как нелинейность стабилизатора тока на стабилизаторе DA1, задержка переключения и напряжение смещения нуля компаратора DA3, сопротивление сток—исток открытого транзистора VT1, ТКЕ конденсатора С2. На втором участке на погрешность влияет точность сопротивлений резисторов R2 и R5. Меньшее влияние оказывают температурный и временной дрейфы частоты кварцевого резонатора ZQ1. Все они заметно ухудшают точность измерения в интервале от 0 до 100 мВ. Нестабильности кварцевого резонатора ZQ1, стабилизатора DA1 и ТКЕ конденсатора С2 носят случайный характер поэтому программной компенсации не поддаются. Но погрешности, вносимые компаратором и полевым транзистором VT1, систематические, поэтому их можно скомпенсировать программным путем Для этого после каждого цикла измерения программа прибавляет к полученному значению константу, вычисляемую в процессе налаживания.

      В работе прибора возможна ситуация, при которой прерывание по «захвату» может не наступить. Например, если вход вольтметра соединен с общим проводом или измеряемое напряжение равно нулю, а смещение нуля компаратора DA3 таково, что на его выходе постоянно присутствует низкий логический уровень, то спада сигнала на входе ISP микроконтроллера DD1 не будет и возникнет прерывание по переполнению таймера TCNT1 вместо прерывания по событию «захват». В такой ситуации подпрограмма обработки прерывания по переполнению таймера TCNT1 присвоит измеренному значению нулевое значение.

      Конденсатор С7 установлен для подавления выброса напряжения при переключении компаратора DA3, что приводит к ложному возникновению прерывания по событию «захват» В этот момент счетный регистр TCNT1 пуст и на индикатор выводится значение «0,000». Однако подобный эффект наблюдался у компараторов только одной фирмы-производителя, и, скорее всего, установка конденсатора С7 не потребуется.
      Большинство деталей, за исключением индикаторов HG1, HG2, смонтированы на основной печатной плате из односторонне фольгированного стеклотекстолита толщиной 1,5 мм, чертеж которой показан на рис. 2, а вид смонтированной платы — на рис. 3 Светодиодные индикаторы монтируют на дополнительной монтажной плате и соединяют с основной изолированными проводами.

      Применены постоянные резисторы С2-23, Р1 -4, подстроечный — проволочный многооборотный СП5-2. Резисторы R2, R5 необходимо подобрать с допуском не более 0,5 %, причем резистор R2 можно составить из двух, соединенных последовательно Кроме того, сопротивления резисторов R2 и R5 могут немного отличаться от указанных на схеме, главное, чтобы выполнялось соотношение R2 R5=9 Оксидные конденсаторы — импортные конденсатор С2 — металлопленочный на напряжение 100 В, также импортный, от его ТКЕ зависит температурная стабильность вольтметра, поэтому применение керамических конденсаторов недопустимо. Отличные результаты дает применение конденсаторов серий К73-16, К73-17, однако они имеют большие габариты, что потребует доработки печатной платы. Конденсаторы С9, С10 — КД-2, С1, С4, С6—С8 — керамические для поверхностного монтажа типоразмера 0805.

      Микроконтроллер DD1 ATtiny2313-20РI можно заменить на AT90S2313 без каких-либо изменений в программе. При питании вольтметра напряжением, большим 15В. стабилизатор КР142ЕН5А необходимо заменить на L7805CV, который допускает работу при входном напряжении до 35 В. Кварцевый резонатор ZQ1 — РК374 или аналогичный импортный, его частота может лежать в диапазоне 7,5…8,5 МГц, точное значение 8 МГц не принципиально. Индикаторы HG1, HG2 — сдвоенные красного свечения с общим анодом, если применить аналогичные Е20362 зеленого свечения, необходимо уменьшить сопротивление резисторов R6—R13 до 100 Ом. Полевые транзисторы VT1, VT2 — любые n-канальные переключательные с изолированным затвором, рассчитанные на управляющие сигналы с ТТЛ уровнями и с сопротивлением канала открытого транзистора не более нескольких Ом. Транзисторы КТ3102А можно заменить на любые из этой серии либо заменить на транзисторы серии КТ503, подобрав экземпляры с коэффициентом передачи тока базы не менее 100. Стабилитрон VD1 — любой малогабаритный с напряжением стабилизации 12… 13 В и током утечки не более 10 мкА.

      Налаживание вольтметра заключается в установке резистором R3 тока зарядки конденсатора С2. Напряжение питания вольтметра может быть в интервале 15…20 В и не стабилизированным, что не влияет на точность измерения во время налаживания и последующей эксплуатации. На вход от внешнего источника подают стабилизированное напряжение в интервале 9…9,8 В, контролируемое образцовым вольтметром В качестве такого вольтметра желательно использовать модели которые могут измерять напряжение до 10 В с точностью в 1 мВ. Резистором R3 уравнивают показания налаживаемого и образцового вольтметров. Затем напряжение на входе уменьшают, добиваясь индикации минимального измеряемого напряжения. Здесь возможны два варианта: при нулевом напряжении на входе налаживаемый вольтметр будет показывать 4…50 мВ или же он покажет «0,000» раньше, чем напряжение на входе уменьшится до нуля. По этим результатам вычисляют константу. И в первом и во втором случаях она равна разности показаний. Но в первом случае ее необходимо вычитать из показаний вольтметра, а во втором — прибавлять к ним.

      Под константу в программе выделен 1 байт Старший разряд отводится под знак, поэтому максимальное число, на которое можно изменить показания вольтметра, равно 127. Если константу необходимо вычесть, в старший разряд байта записывают 1, если прибавить — 0. Предположим, вольтметр вместо нуля показывает 0,017 В. В двоичном коде число 17 выглядит как 00010001. Поскольку это число необходимо вычитать из показаний, в старший разряд запишем 1 и получим поправку 10010001 или 91 в шестнадцатеричной форме счисления. Эту константу следует записать в файл ATtiny2313.asm, а именно в строке 221 заменить значение 0x00 на 0x91

      Для компенсации показаний вольтметра при работе с делителем, когда измеряемое напряжение лежит в интервале 10,00…99,99 В, исходную константу, в нашем примере 17, необходимо разделить на 10 и округлить до целого значения (до 2), т. е. до 00000010. Добавив знак в старший разряд, получим 10000010, т. е 82 в шестнадцатеричной форме исчисления. Эту константу записывают в файле ATtiny2313. asm, заменив в строке 223 число 0x00 на 0x82 После внесения изменений в файл ATtiny2313.asm его необходимо заново откомпилировать и получившимся файлом ATtiny2313.hex перепрограммировать микроконтроллер В завершение настройки, подавая напряжение от внешнего источника в интервале 9…9,8 В, повторной подстройкой резистором R3 добиваются показаний вольтметра, идентичных эталонному вольтметру.
      При программировании микроконтроллера устанавливают его конфигурацию: SPMEN=1, DWEN=1, EESAVE=1, SPIEN=0, WDTON=1, BODLEVEL0…2=111, RSTDISBL=1, CKDIV8=1, CKOUT=1, SUT0,1 = 11. CKSEL0…3=1111, где 0 означает, что разряд запрограммирован, а 1 — нет.

Прилагаемые файлы:   vmeter3.zip

С. БЕЛЯЕВ, г. Тамбов
«Радио» №2 2010г.

Похожие статьи:
USB программатор микроконтроллеров AVR — AVR910
Частотомер на микроконтроллере
Миниатюрный вольтметр на микроконтроллере
Лабораторный блок питания на микроконтроллере
Преобразователь USB-COM-LPT на микроконтроллере
Бегущие огни на микроконтроллере АТ89С4051
Часы с термометром и барометром на микроконтроллере ATmega8
Автомат световых эффектов на микроконтроллере
Универсальный таймер на PIC-контроллере
Музыкальный звонок на микроконтроллере

Post Views: 7 321

Принципиальная схема USB-RS232 с использованием Atmel ATtiny2313 или ATmega8

Схематическая схема

13 июня 2022 г.

админ

Принципиальная схема

Интерфейс универсальной последовательной шины (USB) стал чрезвычайно популярным благодаря своей простоте для приложений конечного пользователя (подключи и работай без перезагрузки). Однако для разработчиков внедрение USB в конечные системы оказалось более сложным по сравнению, например, с РС232. Кроме того, необходимы драйверы устройств для поддержки программного обеспечения на стороне ПК. Из-за этого связь на основе RS232 по-прежнему очень популярна среди производителей конечных систем. Этот интерфейс хорошо зарекомендовал себя и хорошо поддерживается операционной системой, но недавно физический порт RS232 был удален из стандартного интерфейса ПК, уступив место портам USB. Внедрение USB во внешние устройства может осуществляться двумя способами:

  1. С помощью микроконтроллера с аппаратно реализованным интерфейсом USB. Необходимо знать, как работает USB и соответствующим образом записывать прошивку в микроконтроллер. Дополнительно необходимо создать драйвер на стороне компьютера, если операционная система не включает стандартные классы USB. Основным недостатком является отсутствие таких микроконтроллеров и их высокая цена по сравнению с простыми микроконтроллерами «RS232».
  2. Второй вариант — использовать какой-нибудь универсальный преобразователь между USB и другим интерфейсом. Этот другой интерфейс обычно представляет собой RS232, 8-битную шину данных или шину TWI. В этом случае нет необходимости в специальной прошивке, даже не нужно знать, как работает USB, и не требуется написание драйвера, так как производитель конвертера предложит один драйвер для всего решения. Недостатком является более высокая цена всей системы и большие габариты готового продукта. Решение, представленное в этом документе, представляет собой реализацию USB в недорогом микроконтроллере посредством эмуляции протокола USB в прошивке микроконтроллера. Главной задачей для этой конструкции было получение достаточной скорости. Шина USB достаточно быстрая: LowSpeed ​​— 1,5 Мбит/с, FullSpeed ​​— 12 Мбит/с, HighSpeed ​​— 480 Мбит/с. Микроконтроллеры AVR полностью соответствуют жестким требованиям к скорости низкоскоростного USB. Однако это решение не рекомендуется для более высоких скоростей USB.

Подробную информацию о физической связи USB можно найти на веб-сайте www.usb.org. Эта документация очень сложна и трудна для начинающих. Очень хорошее и простое объяснение для начинающих можно найти в документе «USB в двух словах. Осмысление стандарта USB», написанного Крейгом Пикоком [2]. В этом примечании по применению объяснение ограничивается пониманием микропрограммы устройства. Физический интерфейс USB состоит из 4 проводов: 2 для питания внешнего устройства (VCC и GND) и 2 сигнальных провода (DATA+ и DATA-). Силовые провода дают примерно 5 вольт и макс. 500 мА. AVR может получать питание от Vcc и GND.

Сигнальные провода с именами DATA+ и DATA- обеспечивают связь между хостом (компьютером) и устройством. Сигналы на этих проводах двунаправленные. Уровни напряжения различаются: когда DATA+ находится на высоком уровне, DATA- находится на низком уровне, но в некоторых случаях DATA+ и DATA- находятся на одном уровне, например EOP (конец пакета). Следовательно, в реализации USB, управляемой микропрограммой, необходимо иметь возможность воспринимать или управлять обоими этими сигналами. В соответствии со стандартом USB сигнальные провода должны иметь высокий уровень в диапазоне 3,0–3,6 В, а напряжение Vcc, поддерживаемое хостом USB, составляет 4,4–5,25 В.

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

Схема микроконтроллера, подключенного к шине USB, показана на рис. 8. Эта схема была создана специально для преобразователя USB в RS232. Также были реализованы специальные функции, такие как прямое управление контактами и чтение/запись EEPROM.

Линии данных USB, DATA- и DATA+, подключены к контактам PB0 и PB1 на AVR. Это соединение нельзя изменить, потому что микропрограмма использует тонкость AVR для быстрого приема сигнала: битовый сигнал, захваченный из линий данных, сдвигается вправо от LSB (PB0) для переноса, а затем в регистр приема, который собирает биты из линии данных. PB1 используется как входной сигнал, потому что на 8-контактном ATtiny2313. Этот вывод может использоваться как внешнее прерывание INT0. Дополнительное подключение к INT0 не требуется — 8-контактная версия AVR имеет наименьшее доступное количество контактов.

На других AVR внешнее соединение DATA+ с контактом INT0 необходимо, чтобы гарантировать отсутствие изменений прошивки между различными микроконтроллерами AVR. Для правильного подключения USB-устройства и передачи сигналов AVR, работающий как низкоскоростное USB-устройство, должен иметь порт 1. 5k? подтягивающий резистор на DATA-. Напряжение Vcc, подаваемое хостом USB, может варьироваться от 4,4 В до 5,25 В. Это питание должно быть отрегулировано до 3,0–3,6 В перед подключением 1,5 кОм? подтягивающий резистор и питание АРН.

Размер регулятора напряжения зависит от мощности нагрузки целевой системы. Регулятор напряжения должен быть регулятором с малым падением напряжения. В схеме на рис. 8 используется стабилизатор LE35 с номинальным выходным напряжением 3,5 В. Но можно использовать любое подобное решение, пока сохраняются требуемые свойства. В некоторых случаях можно использовать даже очень простой регулятор на основе стабилитрона. Остальные компоненты обеспечивают функции только для корректной работы микроконтроллера: кристалл в качестве источника тактового сигнала и конденсаторы для фильтрации питания.

Этого небольшого количества компонентов достаточно для получения функционального устройства USB, которое может обмениваться данными с компьютером через интерфейс USB. Это очень простое и недорогое решение. Некоторые дополнительные компоненты могут быть добавлены для расширения функций устройства. Для приема ИК-сигнала можно использовать инфракрасный датчик TSOP1738. Преобразователь уровня MAX232 TTL в RS232 должен быть добавлен, чтобы сделать преобразователь USB в RS232 . Для управления светодиодами или дисплеями их можно подключать к контактам ввода-вывода напрямую или через резисторы.

Ресурсы:

  1. www.usb.org
  2. www.atmel.com
  3. www.cesko.host.sk

Волшебный круг с ATtiny2313

Волшебный круг с ATtiny2313 Путь: AVR-RU => Приложения => Магический круг Diese Seite на немецком языке:
Применение однокристальных микроконтроллеров
AVR AT90S, ATtiny, ATmega и ATxmega
Магический круг с ATtiny2313 и светодиодами
Щелкните здесь, чтобы загрузить заархивированную версию этой страницы (1,37 МБ)
Применение контроллера с 13 светодиодами с интенсивностью ШИМ, желательно в подарок или на витрину.
  1. Свойства
  2. Оборудование
  3. Крепление
  4. Программное обеспечение
Включение и выключение светодиодов очень просто, каждый может запрограммировать это с помощью CBI и Инструкции SBI на ассемблере (или на любом другом языке).

В этом случае включение работает с 256 ступенями возрастания интенсивности, выключение с одинаковым количеством ступеней с уменьшением интенсивности. Назовите это мягким включением и выключением. Двойная скорость в этом случае означает уменьшение количества этапов до 128, очень высокая скорость означает 64 этапа. Чтобы не надоело всегда одна и та же скорость, вы можете немного смешать эти скорости, чтобы никто не спать.

Регулировка интенсивности осуществляется четырьмя каналами ШИМ в ATtiny2313, где четыре выходных контакта PWM OCR0A, OCR0B, OCR1A и OCR1B двух таймер/счетчики TC0 и TC1 переключаются. Каждый выходной контакт управляет между двумя и четыре светодиодных катода. Это приводит выходные контакты к их электрическим ограничениям. а активное низкое напряжение составляет 0,88 В (при активном включении четырех светодиодов). Поскольку каждый выходной контакт анода должен управлять только одним светодиодом, их активный высокий уровень напряжение на 0,3 В ниже рабочего напряжения.

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

К началу страницы Свойства Оборудование Крепление Программное обеспечение

2.1 Деталь контроллера

Вот и вся скучная схема. Каждый светодиод управляется резистором (в данном случае при рабочем напряжении 3,3 В с сопротивлением 33 Ом. В среднем ток светодиода составляет 7,2 мА (между 5,7 и 90,2 мА) имеет был измерен. Напряжение светодиода при этом токе составляет примерно 2,0 В. (со стандартными светодиодами 5 мм).

Прилагается интерфейс ISP6, который позволяет программировать устройство в система. К сожалению, мой древний AVR-ISP-MkII не работает на 3,3 В. рабочее напряжение. Либо он неисправен, либо напряжение программирования слишком низкое. Другой программатор работал нормально. Если вы столкнулись с подобными проблемами, отключите 33 Ом тремя перемычками во время программирования.

2.2 Блок питания

Блок питания был построен на трансформаторе мощностью 2 ВА с 2 * 7,5 В.

В качестве регулятора использован LM317, регулируемый 10-ступенчатым потенциометр от 1 кОм до выходного напряжения 3,3 В. Конечно, вместо этого вы можете использовать стабилизатор на 3,3 В, если у вас есть один.

Если используется источник питания 5 В, резисторы, управляющие светодиоды должны быть увеличены до 180 или 220 Ом.

LM317 вырабатывает максимум 600 мА тепла, поэтому либо вы может не использовать или использовать только небольшой радиатор. При повышенных токах светодиодов теплоотвода 20°C/Вт достаточно.

Это напряжения с потреблением 130 мА.

Все конденсаторы рассчитаны на 35 В, поскольку трансформатор производит очень высокое напряжение, когда нагрузка не подключена (компенсация внутреннего сопротивления 22,7 Ом на катушку). Без под нагрузкой катушки 7,5 В выдают более 16 В после исправление. Особенно танталовые конденсаторы этого не выдерживают перенапряжение.

Программное обеспечение для расчета напряжения питания может быть найденный здесь

К началу страницы Свойства Оборудование Крепление Программное обеспечение

3.1 Часть контроллера

Монтаж контроллерной части осуществляется на макетной плате 40*40 мм. Соединения катода и анода светодиода находятся на штырях для пайки. 1 мм. Если вы хотите иметь вилку вместо этого, используйте Вместо этого 18- или 20-контактный разъем IDC.

Вот так выглядит плата после припайки светодиодов.

3.2 Монтаж блока питания

Компоненты блока питания помещаются на макетную плату размером 50*60 мм. Особого внимания требует сторона 230/110 В: крепежные винты не должны касаться плавких вставок.

Так выглядит блок питания. Типовая табличка трансформатор наоборот, видимо поэтому он было так дешево.

3.3 Установка в коробку

Вся электроника умещается в небольшом корпусе размером 120 x 60 x 40 мм. пластиковый бокс, который оснащен небольшим фирменная табличка (в формате Open-Office-Graphic), и четыре резиновые ножки и, наконец, поставляется с руководством пользователя в PDF или в формате Open-Office-Writer на получатель.
К началу страницы Свойства Оборудование Крепление Программное обеспечение

4.1 Структура программного обеспечения

Во время инициализации все три порта A, B и D, которые используются для привода светодиоды записываются единицами. Направление порты выходных контактов OC0A, OC0B, OC1A и OC1B установлены, все контакты анодного выхода очищены (все светодиоды выключенный). Указатель Z устанавливается в начало таблица последовательности. Оба таймера запускаются с предкаллером из 8, и все выходы OC настроены на переключение (0 на начало цикла ШИМ, переключить при достижении сравнить стоимость).

После инициализации программа работает с прерываниями. Для этого прерывание CompareA таймера/счетчика TC0 используется, который срабатывает после каждого полного ШИМ фаза. Затем процедура обслуживания прерывания устанавливает сравнить значения всех четырех каналов ШИМ со значением в реестре rPwm. Тогда этот регистр либо увеличивается (флаг bFall = 0) или уменьшается (флаг bFall = 1). Если флаг bFast на одно увеличение и уменьшение на один дополнительный шаг, если флаг bVeryFast один, выполняются два дополнительных шага.

Если регистр rPwm переполняется (bFall=0) и если флаг bUpOnly установлен, rPwm перезапускается с нуля. Если bUpOnly=0, тогда устанавливается bFall.

Если счетчик rPwm достигает нуля (bUpOnly=0 и bFall=1) или при переполнении (bUpOnly=1) флаг bСтарт будет установлен. Этот флаг обрабатывается вне процедура обслуживания прерывания: следующие три светодиодных анода комбинации считываются из таблицы и записываются к трем портам направления. Все светодиоды, которые должны быть в следующем периоде имеют установленный бит направления и портпин становится высоким.

Этапы обработки описаны в следующей главе.

4.2 Этапы обработки

Все этапы обработки занесены в таблицу. Этот обычно содержит четыре байта данных:
  1. Первый байт: Флаги: Флаги могут быть нормальными (0), только вверх (бит 0 = 1), двойная скорость (бит 1 = 1) или четырехкратная скорость (бит 1 и 2 = 1).
  2. Второй байт: Биты направления для порта D (с бит 6 всегда установлен).
  3. Третий байт: Биты направления для порта B (с биты 2, 3 и 4 всегда установлены).
  4. Четвертый байт: биты направления для порта A.
Если байт флага имеет следующие значения, процесс контролируется и читается только один следующий байт:
  • 0xFF: конец таблицы, перезагрузка с начала,
  • 0xFE: повторите следующие записи во внешнем петля, количество повторений закодировано в второй байт, начальный адрес копируется в X регистры,
  • 0xFD: повторите следующие записи во внутреннем петля, количество повторений закодировано в второй байт, начальный адрес этой последовательности записывается в регистры Y,
  • 0xFC: конец внешнего цикла повторения, если дальше требуется повтор адрес восстанавливается из X, если после n повторений выполнение продолжается после текущего адреса.
  • 0xFB: Конец внутреннего цикла повторения, если дальше требуется повторение адрес восстанавливается из Y, если нет, выполнение продолжается на следующем адрес.
Для облегчения построения таблицы процессов файл Constants.inc определяет бит комбинации, которые можно использовать для записи данных в таблицу. Например, значения для ни одного светодиода и для всех светодиодов. являются:
экв X0=1843200 ; 00.1C.20.00
.equ Xall=67075840 ; 03.FF.7F.00

 
С
.set сХ = Х1
.db Байт1(сХ),Байт2(сХ),Байт3(сХ),Байт4(сХ)
.set сХ = Х2
.db Байт1(сХ),Байт2(сХ),Байт3(сХ),Байт4(сХ)

 
светодиоды один и два включены.
.установить сХ = X1_2
.db Байт1(сХ),Байт2(сХ),Байт3(сХ),Байт4(сХ)

 
Это включает оба светодиода.

Просто добавлены флаги bUpOnly, bFast и bVeryFast к этой константе, например. очень быстрое включение/выключение светодиода 2:

.set cX = cVeryFast+X2
.db Байт1(сХ),Байт2(сХ),Байт3(сХ),Байт4(сХ)

 
Используя контроль повторения до 256 повторений можно закодировать без необходимости копировать последовательность n раз. Это повторяет последовательность светодиодов 1, светодиодов 2 и Светодиод 3 четыре раза.
.db cRepeat1,4 ; Начните внешнее повторение, количество = 4
.set сХ = Х1
.db Байт1(сХ),Байт2(сХ),Байт3(сХ),Байт4(сХ)
.set сХ = Х2
.db Байт1(сХ),Байт2(сХ),Байт3(сХ),Байт4(сХ)
.установить сХ = Х3
.db Байт1(сХ),Байт2(сХ),Байт3(сХ),Байт4(сХ)
.db cNext1,0 ; Повторить внешний цикл три раза

 
С помощью cRepeat1 и cRepeat2 вложенные повторения могут быть построен.

При необходимости разворот Tables.ods в формате Open-Office позволяет проектировать и рассчитывать комбинации. Лист Bit_Tab это позволяет. Только

  • добавить имя константы в столбец A,
  • запишите 1 во всех ячейках от L1 до L13 для каждого Светодиод, который должен гореть, и
  • скопируйте результат определения в столбец S и вставьте его в файл const.inc,
  • добавить константу в таблицу процессов,
  • собрать magic_circle_v1.asm.
Убедитесь, что измененная таблица всегда заканчивается на 0xFF,0xFF, чтобы перезапустить выполнение.

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

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