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

Часы на микроконтроллере attiny2313: ATtiny2313. 1.0 2.0 —

Содержание

Часы за два дня на attiny2313 и ds1307 / Хабр

Мотив
Начну с того, что каждый человек живёт во времени, которое, к огромному сожалению, не возможно остановить. И раз мы живём в этом мире, то давайте следить за временем и не упускать ни минуты, тратя её впустую. Для этого я и сделал это чудесное устройство, по имени часы.


Начнём!

На улице встало солнце, я нарисовал плату и почесал на ксерокс, дабы напечатать плату

Дальше те, кто знают как изготавливаются платы поймут, что я перевёл рисунок утюгом на текстолит, протравил, залудил и т.д., а те, кто не в курсе — почитайте в интернете про изготовление плат методом ЛУТ — (Лазерно-утюжная технология).
результат я заснять забыл, но думаю, что качество будет видно и на готовой плате:

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

  • AtTiny2313 — 8ми битный микроконтроллер
  • ds1307 — микросхема-счётчик с неплохой точностью
  • часовой кварц на 32. 768кГц
  • 2 резистора на 10 КОм
  • 7 резисторов на 10 Ом
  • 1 резистор на 5.2 КОм
  • 4 резистора на 1 КОм
  • 4 транзистора КТ315 (их современные братья)
  • буззер на 5 вольт
  • 2 тактовые кнопки (угловой монтаж)
  • 4 индикатора (10011-BSR) общий анод
  • тантал на 47 микрофарад
  • и гнездо питания и угловым креплением (диаметр отверстия — 5.1мм, диаметр центр. контакта — 1.5мм)

И пускай вас не смущает длина этого списка, ведь мы собираем устройство на долгие года, и оно должно быть собрано на должном уровне!
Кто желает посмотреть на плату с другой стороны, вот фото:

Программа

Как и все устройства, часы нуждаются в программе. В данном случае программа написана на языке BASIC в BASCOM AVR. Этот язык очень удобный для программирования, так как код понятный, эффективный и занимает не много места на микроконтроллере. Писать программу с ноля я не стал, а взял исходник одной статьи сайта паяльник.
Кто интересуется — найдёт, я же просто оставлю доработанный мною код тут:
$regfile = "attiny2313.dat"
$crystal = 8000000

Dim Count As Byte
Dim Number(4) As Integer
Dim Pointmem As Byte
Dim Point As Bit
Dim Mine As Byte
Dim Hour As Byte
Dim Seco As Byte
Config Porta.1 = Output
Porta.1 = 1
Waitms 10
Porta.1 = 0
Waitms 70
Porta.1 = 1
Waitms 10
Porta.1 = 0
Config Portb = Output
Config Porta.0 = Output
Config Portd.2 = Output
Config Portd.3 = Output
Config Portd.6 = Output
Config Sda = Portd.5
Config Scl = Portd.4
Config Pind.0 = Input
Portd.0 = 1
Config Pind.1 = Input
Portd.1 = 1
Config Timer1 = Timer , Prescale = 64
On Timer1 Awake:
Config Timer0 = Timer , Prescale = 64
On Ovf0 Refresh
Dig1 Alias Porta.0 : Dig2 Alias Portd.2 : Dig3 Alias Portd.3 : Dig4 Alias Portd.6
Enable Interrupts
Enable Ovf0
Enable Timer1
Start Timer1

Hour = 0
Mine = 0

If Pind.1 = 0 And Pind.0 = 0 Then
Porta.1 = 1
Waitms 100
Porta.1 = 0
Hour = 0
Mine = 0
Seco = 1

Seco = Makebcd(seco)
I2cstart
I2cwbyte &HD0
I2cwbyte 0
I2cwbyte Seco
I2cstop

Mine = Makebcd(mine)
I2cstart
I2cwbyte &HD0
I2cwbyte 1
I2cwbyte Mine
I2cstop

Hour = Makebcd(hour)
I2cstart
I2cwbyte &HD0
I2cwbyte 2
I2cwbyte Hour
I2cstop
Waitms 1000
Porta.
1 = 1 Waitms 10 Porta.1 = 0 End If Do I2cstart I2cwbyte &HD0 I2cwbyte &H00 I2cstart I2cwbyte &HD1 I2crbyte Seco , Ack I2crbyte Mine , Ack I2crbyte Hour , Nack I2cstop Seco = Makedec(seco) Mine = Makedec(mine) Hour = Makedec(hour) If Seco = 80 Then Seco = 10 Seco = Makebcd(seco) I2cstart I2cwbyte &HD0 I2cwbyte 0 I2cwbyte Seco I2cstop End If If Hour > 9 Then Number(1) = Hour / 10 Number(1) = Abs(number(1)) Else Number(1) = 20 End If Number(2) = Hour Mod 10 If Mine > 9 Then Number(3) = Mine / 10 Number(3) = Abs(number(3)) Else Number(3) = 0 End If Number(4) = Mine Mod 10 If Pind.1 = 0 Then Porta.1 = 1 Waitms 10 Porta.1 = 0 If Mine = 59 Then Mine = 0 Else Incr Mine End If Mine = Makebcd(mine) I2cstart I2cwbyte &HD0 I2cwbyte 1 I2cwbyte Mine I2cstop Else If Pind.0 = 0 Then Porta.1 = 1 Waitms 10 Porta.1 = 0 If Hour = 23 Then Hour = 0 Else Incr Hour End If Hour = Makebcd(hour) I2cstart I2cwbyte &HD0 I2cwbyte 2 I2cwbyte Hour I2cstop End If End If Waitms 250 Loop Awake: If Point = 1 Then Porta.
1 = 1 Waitus 10 Porta.1 = 0 End If Toggle Point Return Refresh: Reset Dig1 : Reset Dig2 : Reset Dig3 : Reset Dig4 Incr Count : If Count > 4 Then Count = 1 If Count = 2 And Point = 1 Then Pointmem = Number(2) + 10 Portb = Lookup(pointmem , Digits) Else Portb = Lookup(number(count) , Digits) End If Select Case Count Case 1 : Set Dig1 Case 2 : Set Dig2 Case 3 : Set Dig3 Case 4 : Set Dig4 End Select Return Digits: Data &B00101000 , &B01111011 , &B00110100 , &B00110010 , &B01100011 Data &B10100010 , &B10100000 , &B00101011 , &B00100000 , &B00100010 Data &B00001000 , &B01011011 , &B00010100 , &B00010010 , &B01000011 Data &B10000010 , &B10000000 , &B00001011 , &B00000000 , &B00000010 Data &B11111111

Прошиваем почти 2 килобайта кода в мк и наблюдаем как только-что ожившее устройство начало служить человеку.
Чесно сказать, я испытываю невероятное удовольствие от того, что могу создать нечто такое, что для многих далёкое и не понятное)
Так выглядит устройство без корпуса, корпус буду делать после написания статьи:

И так, часы готовы, а как они работают? Это я демонстрирую в первой половине этого видео (не прошу подписки или чего-то ещё, просто материал)

Заключение

Таким образом, за 2 дня я сделал устройство, которое покажет мне, сколько мне осталось заниматься одним делом и переходить к другому, когда пора идти, или начать что-то важное.
Ну а на этом всё, спасибо тем, кто дочитал до конца, успехов вам в ваших проектах, и как говорится: «треска вам, 47, и до встречи на других частотах! QRZ..»

Автор: TehnoPingvin

Источник

ATtiny2313 8-битный микроконтроллер AVR — вывод, характеристики, техническое описание, работа, приложения

ATtiny2313 — это высокопроизводительный, но маломощный микроконтроллер на основе архитектуры Microchip 8-бит AVR RISC, который имеет 20 контактов, из которых 18 контактов могут использоваться в качестве контактов ввода / вывода.

ATtiny2313 Конфигурация контактов

Номер контакта

Имя контакта

Описание

1

СБРОС / dW / PA2

Порт A BIt 2 или RESET используется в основном для программирования или dW

2

PD0 / RXD

Двунаправленный контакт ввода / вывода порта D, бит 0 или получение данных UART

3

PD1 / TXD

Двунаправленный контакт ввода / вывода порта D, бит 1 или передача данных через UART

4

PA1 / XTAL2

Порт A BIt 1 или Crystal Out

5

PA0 / XTAL1

Порт A Бит 0 или Кристалл В

6

PD2 / CKOUT / XCK / INT0

Двунаправленный вывод ввода / вывода порта D, бит 2 или внешнее прерывание 0, или выход системных часов, или часы USART для синхронной передачи

7

PD3 / INT1

Контакт двунаправленного ввода-вывода порта D, бит 3 или внешнее прерывание 1

8

PD4 / T0

Двунаправленный вывод ввода / вывода порта D Бит 4 или таймер 0 Выход / счетчик

9

PD5 / OC0B / T1

Двунаправленный вывод ввода / вывода порта D Бит 5 или выходное сравнение совпадают по выходу или таймеру 1, выход / счетчик

10

ЗЕМЛЯ

Контакт заземления MCU

11

PD6 / ICP

Контакт двунаправленного ввода-вывода порта D, бит 6 или входной захват

12

PB0 / AIN0 / PCINT0

Двунаправленный вывод ввода / вывода порта B Бит 0 или аналоговый компаратор 0 или изменение вывода Источник прерывания

13

PB1 / AIN1 / PCINT1

Двунаправленный вывод ввода / вывода порта B Бит 1 или аналоговый компаратор 1 или изменение вывода Источник прерывания

14

PB2 / OC0A / PCIN2

Двунаправленный вывод ввода / вывода порта B Бит 2 или совпадение вывода сравнения A на выходе или изменение вывода Источник прерывания

15

PB3 / OC1A / PCINT3

Двунаправленный вывод ввода / вывода порта B Бит 3 или совпадение вывода сравнения A на выходе или изменение вывода Источник прерывания

16

PB4 / OC1B / PCINT4

Двунаправленный вывод ввода / вывода порта B Бит 4 или сравнение выходного сигнала совпадают с выходом или изменением вывода Источник прерывания

17

PB5 / MOSI / DI / SDA / PCINT5

Двунаправленный вывод ввода / вывода порта B, бит 5 или SPI MOSI, также используется в программировании или I2C SDA или источнике прерывания изменения вывода

18

PB6 / MISO / DO / PCINT6

Двунаправленный вывод ввода / вывода порта B, бит 5 или SPI MISO, также используется в источнике прерывания программирования или смене вывода или трехпроводном универсальном интерфейсе. Вывод данных

19

PB7 / UCSK / SCL / PCINT7

Двунаправленный вывод ввода / вывода порта B Бит 7 или трехпроводной режим Универсальный последовательный интерфейс или I2C SCL или источник прерывания изменения вывода или SCK для программирования

20

VCC

Положительный вывод MCU (+ 5 В)

Характеристики и характеристики микроконтроллера ATtiny2313

ATtiny2313 — упрощенные функции и спецификации

ЦП

8-битный AVR

Количество контактов

20

Рабочее напряжение (В)

1.8-5,5 В

Количество контактов ввода / вывода

18

Модуль АЦП

Нет

Модуль таймера

8 бит (1), 16 бит (1)

Компараторы

1

Модуль ЦАП

Нет

Периферийные устройства связи

1-UART, 2-SPI, 1-I2C

Внешний осциллятор

Есть

Внутренний осциллятор

8 МГц

Программная память (КБ)

2 КБ

Скорость процессора (MIPS)

20 MIPS

байтов RAM

128

Данные EEPROM

128 байтов

Примечание. Полную техническую информацию можно найти в листе данных ATtiny2313 по ссылке внизу этой страницы.

Продукт, альтернативный ATtiny2313

Альтернативные продукты для микроконтроллера ATtiny2313 перечислены ниже —

  1. ATtiny2313A (точная альтернатива с новой версией)
  2. ATtiny417
  3. ATtiny28L
  4. ATtiny48
  5. ATmega88PA
  6. ATmega8A
  7. ATmega8515
  8. ATmega8535
  9. ATmega645A
  10. ATmega6490

Знакомство с ATtiny2313

ATtiny2313 — это высокопроизводительный, но маломощный микроконтроллер на основе архитектуры Microchip 8-бит AVR RISC, который имеет 20 контактов, из которых 18 контактов могут использоваться в качестве контактов ввода / вывода.

Он имеет мощную архитектуру инструкций, которая обеспечивает скорость обработки 1 MIPS на МГц при балансировке энергопотребления при одновременной обработке высокоскоростной производительности. Скорость может достигать 20 MIPS при использовании максимальной частоты 20 МГц. ATtiny2313 также поставляется с функцией отладки на кристалле debugWIRE, внутрисистемным программируемым портом SPI, режимами ожидания с низким энергопотреблением, отключением питания и режимами ожидания. В нем также используется программируемая схема обнаружения пониженного напряжения.

Имеет широкий диапазон рабочего напряжения, от 1 до 1.От 8 В до 5,5 В. Таким образом, его можно использовать для операций на логическом уровне 1,8 В, 3,3 или 5,0 В. Однако работа в диапазоне 0–4 МГц поддерживается входным напряжением 1,8 В для ATtiny2313V. Для частоты до 10 МГц минимальное напряжение требуется 2,7 В для ATtiny2313, а для операций 20 МГц требуется минимальное напряжение 4,5–5,5 В.

На изображении ниже показана подробная схема контактов ATtiny2313.

Подробные характеристики ATtiny2313

ATtiny2313 — подробные характеристики

ЦП

8-битный AVR RISC

Архитектура

8

Размер памяти программ (Кбайт)

2

RAM (байты)

128

EEPROM / HEF

128

Количество выводов

20

Макс. Частота процессора (МГц)

20

Выбор периферийных контактов (PPS)

Внутренний осциллятор

4 МГц

№ компараторов

1

№Операционного усилителя

0

Кол-во каналов АЦП

0

Максимальное разрешение АЦП (бит)

АЦП с вычислением

0

Количество преобразователей ЦАП

0

Максимальное разрешение ЦАП

Внутреннее опорное напряжение

Обнаружение нулевого пересечения

№8-битных таймеров

1

Количество 16-битных таймеров

1

Таймер измерения сигнала

0

Аппаратный таймер ограничения

0

№Выходов ШИМ

4

Максимальное разрешение ШИМ

1024

Угловой таймер

0

Математический ускоритель

№Модуля UART

1

№ модуля SPI

2

№ модуля I2C

1

№ USB-модуля

0

Оконный сторожевой таймер (WWDT)

CRC / сканирование

Генератор с числовым программным управлением

Кап. Сенсорные каналы

4

Сегментный ЖК-дисплей

0

Минимальная рабочая температура (* C)

-40

Максимальная рабочая температура (* C)

85

Минимальное рабочее напряжение (В)

1.8 / (от 2,7 до 10 МГц) / (от 4,5 до 20 МГц)

Максимальное рабочее напряжение (В)

5,5

Возможность высокого напряжения

Программирование микроконтроллера AVR Микроконтроллеры

PIC могут быть запрограммированы с помощью различного программного обеспечения, доступного на рынке.Есть люди, которые до сих пор используют язык ассемблера для программирования микроконтроллеров AVR. Приведенные ниже сведения относятся к наиболее продвинутому и распространенному программному обеспечению и компилятору, которые были разработаны самой Atmel (теперь Microchip).

Для программирования микроконтроллера AVR нам понадобится IDE (интегрированная среда разработки), в которой происходит программирование. Компилятор, в котором наша программа преобразуется в читаемую форму MCU, называемую HEX-файлами.

IDE: Atmel Studio 7

Компилятор: AVR и ARM Toolchains

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

Чтобы сделать дамп или загрузить наш код в AVR, нам понадобится устройство под названием ATAtmel-ICE. Программатор / отладчик ATATmel — ICE — это простой внутрисхемный отладчик, который управляется ПК с программным обеспечением Atmel Studio на платформе Windows.Программатор / отладчик ATAtmel-ICE является неотъемлемой частью набора инструментов разработчика. Базовая схема программирования ATtiny2313 показана ниже.

Помимо этого официального программатора, пользователи также используют USB ASP AVR Programming Device для недорогих программных решений.

В дополнение к этому нам также понадобится другое оборудование, такое как плата Perf или макет, паяльная станция, микросхемы AVR, кварцевые генераторы, конденсаторы и т. Д.

Компоненты, связанные с АРН

USB ASP AVR программатор, плата для разработки AVR, кварцевые генераторы, конденсаторы, адаптер 12 В, регулятор напряжения 7805.

2D Модель

Размеры ATtiny2313 показаны ниже —

Учебное пособие по

AVR — Предохранители

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

Комментариев? Предложения? Напишите на форум!

Вы знаете о флэш-памяти, eeprom и RAM как о частях микросхемы. Я не упомянул, что есть также 3 байта постоянного (под постоянным я имею в виду, что они остаются после отключения питания, но вы можете менять их столько раз, сколько захотите) хранилища, называемого предохранителями. Предохранители определяют, как будет работать чип, есть ли у него загрузчик, с какой скоростью и напряжением он любит работать и т. Д.Обратите внимание, что, несмотря на то, что они называются «предохранителями», они могут быть повторно настроены и не имеют ничего общего с защитой от перегрузки (как предохранители в доме).

Предохранители задокументированы в технических паспортах, но лучший способ проверить предохранители — это посмотреть на калькулятор предохранителей, такой как вычислитель предохранителей avr из проекта palmavr

.

Щелкните эту ссылку в новом окне и выберите ATtiny2313 для расчета предохранителей

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

Первый вариант — как тактовая частота микросхемы. Каждый процессор использует часы, часы отслеживают время для чипа, как правило, одна инструкция ассемблерного кода запускается за каждый тактовый цикл. Один на вашем ПК имеет часы, которые работают с тактовой частотой 1 ГГц или выше. Этот маленький чип работает намного медленнее. Если вы посмотрите на меню, вы увидите огромный список опций, но, внимательно присмотревшись, вы увидите, что есть две группы: Clock Source , Clock Startup

Источник тактовой частоты может быть одним из следующих:
Внешняя тактовая частота, Внутренняя тактовая частота 8 МГц, Внутренняя тактовая частота 4 МГц, Внутренняя тактовая частота 128 кГц, Внешний кристалл (0.4-0,9 МГц), внешний кристалл (0,9–3,0 МГц), внешний кристалл (3,0–8,0 МГц)
или Внешний кристалл (8,0 МГц +)

Clock Startup может быть одним из следующих:
14CK + 0 мс, 14CK + 4 мс, 14CK + 65 мс
.

Внешние часы означает, что сигнал прямоугольной формы подается на вывод CLOCK-IN . Это довольно редко, если у вас нет микросхемы, генерирующей часы. Не используйте это, если вы не уверены, что имеете в виду
Internal Clock означает, что внутри микросхемы есть небольшой осциллятор, он не очень точный, но подходит для большинства проектов, у которых нет проблем с точной синхронизацией.Часы меняются в зависимости от температуры и напряжения источника питания. Вы можете выбрать частоту 8 МГц, 4 МГц или 128 кГц. Тактовая частота 128 кГц предназначена для приложений с очень низким энергопотреблением, когда очень медленная работа чипа помогает экономить электроэнергию. Наличие внутреннего генератора означает, что нам не нужно подключать кристалл, и мы можем использовать контакты часов для наших собственных гнусных целей.
Внешний кристалл
Если вам нужна особая тактовая частота, например, 3,58 МГц или 12 МГц, или высокоточные часы, которые не будут дрейфовать с температурой, вам понадобится внешний кристалл или генератор.

Кристаллы

выглядят примерно так: Керамические генераторы выглядят так:

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

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

По умолчанию микросхемы, которые поставляются с завода, имеют внутреннюю тактовую частоту 8 МГц с запуском 14CK + 65 мс.

Следующая опция — это Clock Out на PortD2 , что в основном означает, что независимо от входного тактового сигнала (внутреннего, внешнего, кварцевого и т. Д.) Прямоугольная волна той же частоты будет появляться на выводе D2 . Это полезно, если вы отлаживаете тактовую частоту или хотите использовать часы для управления другим чипом.

По умолчанию на чипах, которые идут с завода, это отключено.

Этот предохранитель заставляет чип делить тактовую частоту на 8. Итак, если источник тактовой частоты установлен на Internal 8MHz и у вас установлен этот предохранитель, тогда вы действительно будете работать на 1 МГц.

По умолчанию на чипах, которые поступают с завода, эта функция включена.

Этот предохранитель превращает вывод Reset в обычный вывод вместо специального вывода. Если вы включите этот предохранитель, вы больше не сможете программировать чип с помощью ISP .Я бы посоветовал вам никогда не устанавливать этот предохранитель, если вы действительно не хотите.

По умолчанию у микросхем, которые идут с завода, это отключено (то есть сброс включен)

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

Например, attiny2313 может работать так же быстро на частоте 20 МГц, но только при напряжении питания от 4,5 до 5,5 В. Если напряжение ниже этого, он может работать нестабильно, стирая или перезаписывая RAM и EEPROM. Также может запускаться случайный фрагмент флеш-программы. Чтобы этого не произошло, установите напряжение пониженного напряжения на 4,3 В, затем, если напряжение упадет, микросхема отключится до тех пор, пока напряжение не вернется.Затем он будет сброшен и начнется заново.

Если микросхема предназначена для работы при 5 В, установите пониженное напряжение на 4,3 В. Если микросхема может работать до 3,3 В, вы можете установить снижение напряжения на 1,8 В. Если микросхема является микросхемой, «совместимой с низким напряжением», такой как attiny2313V (которая может работать до 1,8 В, если она работает на частоте 4 МГц или меньше), вы можете установить снижение напряжения на 1,8 В. Вы можете прочитать классы скорости и напряжения на первой странице таблицы данных.

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

текст

Xtal работа контроллеров ATtiny

Xtal работа контроллеров ATtiny Дорожка: Главная => Обзор AVR => Приложения => ATtiny с кристаллами Diese Seite на немецком языке:
Применение однокристальных контроллеров
AVR AT90S, ATtiny, ATmega и ATxmega
Для синхронизации ATtiny с кристаллом
Простая задача: вместо этого нужно тактировать ATtiny с помощью внешнего кристалла. использования неточного внутреннего RC-генератора в качестве источника синхронизации.И из этот источник синхронизации должен быть точным прямоугольником с желаемой частотой. сгенерировано. Простая задача, но есть много препятствий и вещей, которые вы можете сделать неправильно или не работают должным образом. Вот несколько советов, как это сделать.

И это был бы такой кристаллический делитель без микроконтроллера. Предназначен для деления кристалла 15 МГц на 68:

  • Кварцевый генератор, состоящий из двух вентилей И-НЕ, генерирует часы сигнал.
  • Считается в 8-битном счетчике.
  • При достижении 68, которое обнаруживается логическим элементом И-НЕ, триггер D-типа запускается, инвертированный выход которого привязан к входу данных. Положительный выход передает желаемый сигнал с точной 110,294 кГц.
  • С небольшой задержкой, комбинацией RC и другим логическим элементом NAND, счетчик очищается до поступления следующего сигнала счета.
Всего необходимо три 14-контактных ИС и 42 контакта. обработано.

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

1 Генератор прямоугольников, управляемый xtal

Вам нужно иметь точный поворот прямоугольника? Просто сделайте это:
  1. Для синхронизации ATtiny с внешним кристаллом.
  2. Используйте внутренний таймер / счетчик в режиме CTC (сброс таймера при сравнении) и разделите часы на целое число.
  3. Запишите этот делитель минус 1 в регистры сравнения таймера, с 8-битным таймером для сравнения A, с 16-битным таймером для сравнения A или в ICR (регистр захвата ввода).
  4. Настройте выходные контакты OCnA и / или OCnB для включения режима сравнения совпадений.
  5. Настройте выходные контакты OCnA и / или OCnB как выходы, установив их биты направления данных.
  6. Запустите таймер, записав биты предварительного делителя в TCCR0B.
Больше ничего делать не нужно, никаких прерываний или какого-либо дополнительного кода. выполняется, поэтому переведите контроллер в спящий режим или войдите в неопределенный цикл. Таймер / счетчик берет на себя управление и генерирует красивую и точную прямоугольник качели.

Таким образом, из одного монокристалла можно получить разные частоты. А также очень гибкий: просто измените разделитель. С помощью электронной таблицы OpenOffice здесь доступны все разные кристаллы В коммерческом отношении могут быть рассмотрены:

  • введите частоту, которая будет сгенерирована в ячейку D3,
  • , если вы хотите установить предварительный делитель частоты не на 1, а на более высокое значение просто введите настройки бита предварительного делителя частоты CLKPS ,
  • считывает значение предварительного делителя таймера / счетчика и делитель CTC для каждого xtal из столбцов B и C (для 8-битного TC) соответственно. из столбцов G и H (для 16-битного TC), если это «-«, кристалл не может быть для этого использован,
  • частота, которая действительно генерируется, может быть считана из столбцов D соотв. Я,
  • разница между реально генерируемой частотой и желаемой можно прочитать из столбца E соотв. J в процентах по сравнению с желаемым (нет +/-, только абсолютная разница) или в столбцах F соотв. K в Гц.
Клетки со знаком «-» отмечают невозможные комбинации.

Если ячейка E6 соотв.J6 равно 0,00, тогда может быть сгенерирована точная желаемая частота. хотя бы с одним кристаллом. Какие из них (и те, у которых меньше всего разница, если ни одна из них не равна нулю) видно по зеленому цвету различия в столбцах E соотв. J. Кристаллы с разницей менее 0,1% желаемая частота отображается на желтом фоне.

Убедитесь, что вы вычли единицу из значения делителя CTC, прежде чем записывать это в регистр сравнения таймера / счетчика.

2 Аппаратное обеспечение

Это полное железо. Два керамических конденсатора по 18 пФ в любом случае необходимо следить за тем, чтобы кристалл раскачивался.

Выходной сигнал доступен на PB0 (OC0A) и, если это необходимо и запрограммировано, на PB1 (OC0B). Оба выхода могут быть обратно фазированными или могут быть фазированы на другой угол.

На практике, с подключенным кристаллом 15 МГц, кристалл работал только запускается ниже рабочего напряжения 4 В. Выше этого кристалла запускается на несколько тактов, но затем перестал работать. Это не изменилось, если Я разделил напряжение на выходе XTAL2 на два резистора перед подачей питания на xtal.Если осциллятор работает, например, 2,7 В, увеличение рабочего напряжение выше 4 В (до 5,5 В) не прекращало колебания. Так что это простая проблема с запуском. Если вы используете рабочее напряжение 5 В, убедитесь, что ATtiny имеет напряжение 3,3 В или ниже, например с резистором, стабилитрон и электролитический конденсатор. Или приготовьте специальный раствор чтобы убедиться, что колебание осциллятора стабильно, перед увеличением рабочего Напряжение.

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

Дополнительная подсказка для использования подстроечного конденсатора для изменения кристалла частота немного. Это работает только на входе XTAL1. Не ждите большой эффект, можно достичь только нескольких Гц и менее 1 кГц.Увеличение значения конденсатора приводят к увеличению частот, по крайней мере, с моими 15 МГц кристалл. Внимание: слишком большой колпачок может остановить раскачивание кристалла.

3 Замена предохранителей

По умолчанию ATtiny работает со своим внутренним RC-генератором, деленным на 8. Чтобы включить внешний кристалл, необходимо заменить предохранители следующим образом:
  1. CLKDIV8 должен быть выключен, оставьте этот предохранитель включенным только в том случае, если вы действительно хотите разделить частоту кристалла на 8.
  2. CLKSEL необходимо заменить на внешний низкоскоростной . кристалл (e.грамм. с 32,768 кГц) или на внешний кристалл осциллятор . Несмотря на то, что Studio 4.19 не предлагает внешний кристалл он работает, чтобы установить предохранитель на внешний кварцевый генератор хотя там только кристалл прикреплен. Пункты меню в Studio 4.19 сбивает с толку, потому что позволяет только низкоскоростной кристалл.
Следует соблюдать особую осторожность, если вы используете кристалл 32,768 кГц. До Эта замена предохранителя обеспечивает выполнение следующих отдельных шагов:
  1. Уменьшите частоту ISP ниже 8 кГц.Если у вашего программиста нет такого варианта, откажитесь от этого на столь раннем этапе.
  2. Отключить предохранитель CLKDIV8 .
  3. Выберите низкоскоростной внешний кварцевый вариант с длительным запуском процедура.
Дополнительная проблема заключается в том, что Studio отказывается программировать флэш-память или EEPROM. с частотами ISP ниже 5 кГц. Поскольку клоны STK500 не предлагают Частота интернет-провайдера от 5 до 8 кГц вы не сможете запрограммировать ATtiny. Клоны AVRISP-MKII предлагают частоту 6 кГц, и это нормально.

Если вы забудете очистить предохранитель CLKDIV8, ваш ATtiny будет недоступен больше, потому что Studio отказывается программировать флэш-память или память EEPROM с помощью тактовая частота менее 5 кГц. В этом случае только параллельное программирование высокого напряжения может использоваться для оживления чипа (что возможно с STK500).

Если вам нужны не прямоугольники, а чистая синусоида, вам придется отфильтровать эти прямоугольники с сетью фильтров RC.

Такие RC-фильтры, здесь одноступенчатые, глушат или подавляют более высокие частоты. Их амплитуда падает тем быстрее, чем выше частота.Здесь R = 100 кОм и RC-фильтр C = 3 мкФ в действии. Первая гармоника прямоугольника на 3 Гц уже немного затухает, результат виден на верно.

Это еще не похоже на синус, но это тоже не прямоугольник.

Если мы инвестируем второй R и второй C того же размера, мы получаем форма волны, которая уже ближе к синусоиде.

Еще больше синусоиды: 3-ступенчатый RC-фильтр в действии. Зеленая кривая на конец фильтра очень похож на синусоидальную волну.

Обратите внимание, что на каждом этапе мы теряем некоторую амплитуду. Здесь он падает от 0,79 В pp до 0,32 В pp , приблизительно с коэффициентом 2.

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

Если вам нужна более высокая амплитуда, выберите конденсатор или резистор меньшего размера. Это конденсатор емкостью 1 мкФ, в три раза меньше.

Тем, кто хочет играть с разнообразными параметрами (количество этапов, резисторы и конденсаторы и др. ) могу сделать это с моим Lazarus-Pascal программное обеспечение, которое я скомпилировал для Win64 как исполняемый здесь (упаковано). Если вам нужен Исходный код Lazarus, а затем сообщите мне.

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

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

Поля ввода понимают сокращения для кратных, например как k или K , или M , а также m , u для µ, n или p .

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

Если вы нажмете на отображаемое изображение, вы можете сохранить изображение как файл PNG- или BMP-графики.

Обратите внимание, что если вы выберете определенные небольшие комбинации RC для низкочастотный вход, программное обеспечение моделирования обнаруживает числовые переполнения. Выберите несколько более высоких R и / или C в тот случай.

5 Программное обеспечение и загрузки

Программное обеспечение ассемблера можно скачать с здесь.Список задокументирован ниже.

Дополнительно можно загрузить следующие документы OpenOffice:

Исходный код:
 
;
; *********************************
; * Осциллятор Xtal с ATtiny25 *
; * (C) 2019, автор: DG4FAC *
; *********************************
;
.nolist
.include "tn25def.inc"; Определить устройство ATtiny25
.список
;
; **********************************
; АППАРАТНОЕ ОБЕСПЕЧЕНИЕ
; **********************************
;
; Устройство: ATtiny25, Корпус: 8-контактный PDIP_SOIC
;
; _________
; 1 / | 8
; СБРОС o-- | СБРОС VCC | --o +5 В
; XTAL1 o-- | PB3 PB2 | --o
; XTAL2 o-- | PB4 PB1 | --o Osc out 2
; 0 V o-- | GND PB0 | --o Osc out 1
; 4 | __________ | 5
;
;
; **********************************
; А Д Й У С Т А Б Л Е К О Н С Т
; **********************************
;
. equ clock = 15000000; 15 МГц, ваша xtal частота
.equ fOut = 100; Ваша желаемая частота
.equ cClkPresc = 1; Ваше значение предделителя часов
.equ cUseOC0B = 1; Используйте OC0B как обратный выход
;
; **********************************
; Ф И Х Е Д К О Н С Т А Н Т С
; **********************************
;
; Получите значение предварительного делителя из часов и частоты
.if (часы / fOut / cClkPresc / 2) <= 256
  .equ cPresc = 1
  .equ cCsPresc = 1
  .еще
  .if (часы / fOut / cClkPresc / 2/8) <= 256
    .equ cPresc = 8
    .equ cCsPresc = 2
    .еще
    .if (часы / fOut / cClkPresc / 2/64) <= 256
      .equ cPresc = 64
      .equ cCsPresc = 3
      .еще
      .if (часы / fOut / cClkPresc / 2/256) <= 256
        .equ cPresc = 256
        .equ cCsPresc = 4
        .еще
        .if (часы / fOut / cClkPresc / 2/1024)> 256
          .error "Слишком низкая желаемая частота!"
          .еще
          .equ cPresc = 1024
          .equ cCsPresc = 5
          .endif
        .endif
      .endif
    .endif
  . endif
;
; Вывести делитель и сравнить значение
.equ divider = (((((часы + fout / 2) / fOut + cClkPresc / 2) / cClkPresc + cPresc / 2) / cPresc) +1) / 2
.equ cCtc = делитель - 1; Значение CTC
;
; **********************************
; Р Е Г И С Т Е Р С
; **********************************
;
.def rmp = R16; Многоцелевой регистр
;
; **********************************
; М А И Н П Р О Г Р А М И Н И Т
; **********************************
;
.cseg
.org 000000
;
Основной:
  sbi DDRB, DDB0; Выход направления PB0
  cbi PORTB, PORTB0; Очистить выход OC0A
  ldi rmp, cCtc; Записать значение CTC
  out OCR0A, rmp; для сравнения регистра A
  .if cUseOC0B == 1
    sbi DDRB, DDB1; Выход направления PB1
    sbi PORTB, PORTB1; Установить выход OC0B
    out OCR0B, rmp; и B
    ldi rmp, (1 << WGM01) | (1 << COM0A0) | (1 << COM0B0); Режим CTC, переключение OC0A и OC0B
    .еще
    ldi rmp, (1 << WGM01) | (1 << COM0A0); Режим CTC, переключить OC0A
    .endif
  out TCCR0A, rmp; в порту управления TC0 A
  ldi rmp, cCsPresc; Настройка предделителя
  выход TCCR0B, об / мин; в порту управления TC0 B
  ldi rmp, 1 << SE; Включение сна, режим ожидания
  выход MCUCR, об / мин
Петля:
  спать ; Идти спать
  rjmp loop
;
; Конец исходного кода
 
 
Это симуляция с указанными выше настройками программного обеспечения.

© 2019 Автор: http://www.avr-asm-tutorial.net

Atmel AT90S2313 ATTINY2313 Приложения - Проекты электроники Схемы

Еще лучший ЖК-измеритель на основе Atmel AVR ATTINY861 Довольно хороший ЖК-измеритель на основе AVR ATtiny2313 AT90S2313 Определение LC с помощью генератора резонансной развертки ATtiny23023 ATtiny23023 AT90S-23 AT90S1200A Еще немного... Electronics Projects, Atmel AT90S2313 ATTINY2313 Applications «Проект AVR, проекты микроконтроллеров, схемы pwm,» Дата 2019/08/01

Еще лучший измеритель LC на основе Atmel AVR ATTINY861

Довольно хороший измеритель LC на основе AVR ATtiny2313 AT90S2313

Определение LC с помощью измерения резонансной частоты ATtiny2313 AT90S2313

MAX038 Генератор развертки функций с маркерами ATtiny2313 AT90S1200A

Немного более серьезный измеритель частоты-счетчик Генератор частот ATTiny2313

AT2000 AT2000 9-000 AT2000 9-000 Цифровой измеритель частоты AT2000 AT2000 AT2139 в миллиомметре ATtiny2313 AT90S2313

Цифровой индикатор напряженности РЧ поля ATtiny2313 AT90S2313

Зонд напряженности РЧ поля AT90S1200A

LTD - Недорогое устройство телеметрии; Сканирующий вольтметр ATMega8 с выходом кода Морзе ATMega8

Монитор сигналов

с ЖК-дисплеем ATtiny2313 AT90S2313

Интерфейс терминала

с беспроводным соединителем минимальной массы ATtiny2313 AT90S2313

Сканирующий вольтметр

с беспроводным соединителем минимальной массы ATMega8

9902 ЖК-дисплей с беспроводным ответвителем минимальной массы ATtiny2313 AT90S2313

Крошечные настраиваемые контурные антенны для беспроводного ответвителя минимальной массы

Цифровая беспроводная связь для настольного устройства ATtiny12

RS-232 для канала передачи данных беспроводного прибора ATtiny2313 AT90S2313

Частотомер с беспроводным каналом передачи данных ATtiny2313 AT90S2313

FM-передатчик с кварцевой опорной системой ФАПЧ Управление частотой с использованием LMX1601 ATtiny2313 AT90S2313

1750-метровый низкополосный источник радиочастотной модуляции с амплитудно-модуляцией ATtiny2313 AT90S2313

Двухрежимный AM-приемник прямого преобразования для 1 81. 818 кГц Lowfer ATtiny2313 AT90S2313

AttoBasic Byte-Wide интерпретатор для ATtiny2313 и AT90S2313

AttoBasic AT90S8515-ATMEGA8515 и ATmega163

Программа мониторинга микропрограмм AVR Контроллеры AVR CapART с памятью AVR 9000 на микросхеме 9000 Контроллеры AVR 9000 с памятью AVR 9000 Контроллеры памяти AVR 9000 на микросхеме U000

DS: инструмент для тестирования и разработки интерфейса DS ATtiny2313 AT90S2313

DS: Часы-календарь-будильник с интерпретатором на основе EEPROM и интерфейсом DS ATtiny12

DS: 3-канальный 8-битный ЦАП EEPROM с интерфейсом DS ATtiny12

ATtiny12 Fuse Restorer AT90S1200A

Драйвер EEPROM для контроллеров 24LC64 128 и 256 AVR

8-канальный PWM PWM-код Контроллеры AVR

Последовательный программатор AVR AT90S1200A ATtiny2313 AT90S2313

AVR 8- и 20-контактный адаптер программирования

Адаптер Lazyted ISP

для контроллеров ISP

Lazyted ISP Синхронный демодулятор контура с кодовой синхронизацией ATtiny2313 или AT90S2 313 ATtiny12

Аналоговый мультиплексор на полупроводниковых конденсаторах для микроконтроллеров Контроллеры AVR или другие с трехсторонними I-контактами

Экспериментальный синхронный демодулятор 1 кГц ATtiny2313 AT90S2313

Таймеры полива сада Вентили и счетчики; нет микроконтроллера

Дверной звонок Privacy Sentry ATtiny12

Модификация будильника с кодом Морзе с ATtiny2313-AT90S2313

Источник: cappels. org ATTINY2313 AT90S2313 Альтернативная ссылка на приложения:

СПИСОК ССЫЛКИ ДЛЯ ЗАГРУЗКИ ФАЙЛОВ (в формате TXT): LINKS-1238.zip

Программирование битов предохранителей AVR - настройки генератора

Думаю, многие из вас были сбиты с толку при программировании предохранителей AVR. Я получаю много вопросов новичков, например: «Я программировал Atmega8, но он не работает». Тогда мой стандартный ответ: «Вы трогали биты конфигурации?», И если да, то я почти на 90% уверен, что он сделал это неправильно.Большинство из них ошибочно понимают, что запрограммированный бит предохранителя в конфигурации следует оставлять неотмеченным и наоборот. Давайте посмотрим на широко используемое программное обеспечение для программирования - PonyProg.

Первое, что вы делаете перед программированием микросхемы, это установка битов конфигурации (Atmega8 на картинке):

В первую очередь следует обратить внимание на источники тактовой частоты. Источниками синхронизации Atmega8 управляют четыре бита: CKSEL0, CKSEL1, CKSEL2, CKSEL3.

Как вы, возможно, уже знаете, Atmega8 может иметь 4 разных источника синхронизации:

  • Внешний кристалл или резонатор;
  • Внешний низкочастотный кристалл;
  • Внешний RC-генератор или откалиброванный внутренний RC-генератор;
  • Внешний источник синхронизации.

В таблице вы видите соответствующие настройки CKSEL0..3

Как вы могли заметить, для большинства из них осталось несколько настроек.

Внешний кристалл или резонатор

Внешний кристалл или резонатор

может быть установлен от 1010 до 1111 (обратите внимание, что запрограммирован «0», а «1» означает незапрограммированный). Эти диапазоны оставлены для выбора времени запуска микроконтроллера для стабилизации характеристик генератора перед первой командой.

Если вы подключаете внешний кварцевый генератор или резонатор к XTAL1 и XTAL2

Появляется еще один бит предохранителя CKOPT. Этот бит выбирает два разных режима усилителя генератора. Если CKOPT запрограммирован (не отмечен), тогда осциллятор колеблется с полным выходом rail-to-rail. Это удобно, когда среда зашумлена или использует XTAL2 для управления другим микроконтроллером или буфером. Но с другой стороны, для этого требуется больше мощности. Если CKOPT не запрограммирован (отмечен), то раскачка меньше, и энергопотребление уменьшается. Обычно, если резонатор имеет частоту до 8 МГц, оставьте CKOPT (отмечено = не запрограммировано) и запрограммировано (не отмечено флажком) выше 8 МГц.В таблице вы видите выбираемые режимы кварцевого генератора:

битов CKSEL0, SUT0 и SUT1, в этом случае, используются для выбора времени запуска микроконтроллера - сколько тактов нужно ждать перед выполнением первой команды. Эти настройки необходимы для обеспечения стабильности керамических резонаторов и кристаллов.

Примечание 1. Это быстрое время запуска - не подходит для кристаллов;

Примечание 2. Наиболее часто используется с керамическими резонаторами для обеспечения стабильного запуска.Это нормально для использования с кристаллами, но устройство не работает на максимальной частоте.

Итак, если вы хотите стабильного запуска системы, лучше оставить CKSEL0, SUT0 и SUT1 запрограммированными (не отмеченными флажками), что означает время запуска около 65 мс.

Генератор низкой частоты

Для CKSEL0, CKSEL1, CKSEL2, CKSEL3 установлен только один бит - 1001 (не отмечено, отмечено, отмечено, не отмечено) для низкочастотного генератора. Низкочастотный кристалл - это типичный тактовый кристалл с частотой 32768 кГц.Основными опциями для этого режима являются установка времени запуска кристалла с помощью предохранителей SUT0 и SUT1.

Примечание 1. Менее стабильный запуск.

Внешний RC-генератор

Частота в этом режиме рассчитывается по формуле f = 1 / (3RC), в то время как C должно быть не менее 22 пФ. Если CKOPT запрограммирован (не отмечен), тогда включен внутренний конденсатор 36 пФ между XTAL1 и GND, тогда нужен только резистор.

..

И снова таблица режимов работы:

И время запуска:

Примечание 1. не используйте эту настройку, когда частота близка к максимальной.

Калиброванный внутренний RC-генератор

Калиброванный внутренний RC-генератор довольно часто используется, поскольку не требует каких-либо внешних компонентов и может обеспечивать фиксированные тактовые частоты 1, 2, 4 и 8 МГц. Этот режим выбирается путем программирования битов предохранителей в диапазоне от 0001 до 0100. Оставьте бит CKOPT незапрограммированным для этого режима (отмечен).

Режимы работы:

Примечание 1. по умолчанию этот параметр выбран для всех Atmega8 и таблицы параметров запуска:

Примечание 1. по умолчанию эта опция выбрана для всех Atmega8

О калибровке внутреннего RC-генератора читайте в техническом описании устройства.

Внешние часы

Внешние часы - это основная ошибка, которую делают новички при запуске своих проектов. Чтобы включить внешний источник синхронизации, вы должны оставить биты CKSEL0, CKSEL1, CKSEL2, CKSEL3 незапрограммированными - это означает, что они отмечены. Люди делают ошибки, проверяя их и думая, что они включают внешние кристаллические резонаторы, а затем задаются вопросом, почему это не работает.

И снова есть таблица запуска внешнего источника синхронизации, управляемая SUT0 и SUT1:

Если вы снимите флажок CKOPT, вы включите конденсатор между XTAL1 и GND.

Примеры правильного программирования источников синхронизации Atmega8

  • Кристалл 8 МГц с медленно нарастающей мощностью:
  • 2 МГц керамический резонатор с быстрым увеличением мощности:
  • Стабильная частота резонатора 32768 кГц при запуске:
  • Внешний RC-генератор 4 МГц с внутренним C, позволяющим быстро нарастать мощность:
  • Если вы хотите получить максимальную отдачу от Atmega: выберите быстрорастущую мощность 16 МГц:

Вы можете найти всю эту информацию в таблицах данных. Но как всегда - люди забывают их читать.

Если есть какие-либо вопросы или проблемы, не стесняйтесь спрашивать.

Самый простой светодиодный будильник с AVR

Самый простой светодиодный будильник с AVR

Введение:
Это, наверное, самый простой из возможных цифровых светодиодных будильников. Цель заключалась в том, чтобы получить как можно больше функциональности в простейшем оборудовании, похожем на одно из Самые простые цифровые часы с AVR.Помимо времени и 3 типов режимов будильника, это устройство также может отображать дату и день недели. Имеет дату с исправлением високосных лет и автоматически переключается на летнее время и обратно. Яркость светодиодного дисплея регулируется.
Описание:
В основе этого будильника лежит микроконтроллер Atmel AVR ATtiny2313A (ATTiny2313, ATTiny2313V). Программа для загрузки и установки битов конфигурации доступна ниже.Он имеет 4-значный светодиодный дисплей. Катоды светодиодных дисплеев подключаются к порту B, анодов к битам 0, 1, 4 и 6 порта D. Использование сверхяркого дисплея позволяет отказаться от обычного транзисторы усиления тока. Дисплей управляется мультиплексом. Он состоит из четырех одноразрядных семисегментных светодиодных дисплеев. с общим анодом, например LD-S056UPG-C (14 мм чистый зеленый). Вторая и четвертая цифры на дисплее перевернуты, так что вторая точка образуют верхнюю точку двоеточия, а точка с четвертой цифрой образует индикатор тревоги.Вращение отображаемых чисел осуществляется аппаратно. (Обратные отрезки a-d, b-e, c-f). Таким образом, порт PB0, например, подключен ко всем сегментам, расположенным вверху. Часы нуждаются в питании около 5В. ATTiny2313 работает до 2,7 В, ATtiny2313A и ATTiny2313V до 1,8 В. При таком низком напряжении дисплей может не работать, но он может пригодиться при добавлении резервного аккумулятора. Потребление при 5 В составляет от 15 до 30 мА, в зависимости от количества горящих сегментов (большая часть потребляемой мощности приходится на светодиодный дисплей). Точность часов контролируется кристаллом 4 МГц. Регулировка C1 и C2 позволяет точно настроить скорость бега (меньшее значение - более быстрый бег). Конденсатор C3 следует разместить как можно ближе к микроконтроллеру IO1.
Управление:
Управление часами осуществляется с помощью 2-х кнопок: «Режим» и «+» . Кнопка «Mode» позволяет переключаться между 3 режимами отображения и 4 ступенями настройки будильника:
• Отображение времени, дня недели и даты.
• Отображение времени и даты
• Отображение только времени
• Установить будильник - часы
• Установить будильник - десятки минут
• Установить будильник - раз в минуту
• Режим будильника - выключен (0) / одиночный (1) / рабочие дни (5) / каждый день (7)
Кнопка «+» позволяет установить будильник в режиме настройки будильника. В режиме времени / дня / даты устанавливает яркость светодиодного дисплея (1/32, 1/16, 1/8, 1/4, 1/2, полная). Индикатор будильника горит, когда будильник включен.Мигает, когда вы находитесь в режиме настройки будильника.
Настройка:
Длительное нажатие «Mode» позволяет вам установить время и дату. Затем вы можете установить: часы, десятки минут, минут, десятки секунд, день недели, день, месяц, год и включить / выключить автоматическое время. Вы проходите через шаги, используя «Режим» . Используйте "+" для установки значения. Автоматическая установка времени (Au) позволяет включить или отключить автоматический переход на летнее время (DST) и обратно.«Au1» = включено, «Au0» = отключено.

Программа для загрузки:
исходный код на Ассемблере (ASM)
скомпилирован в HEX-файле (2028 B)
Как записать программу в AVR описано здесь .

Могу послать вам запрограммированный микроконтроллер. Для дополнительной информации щелкните здесь.

Схема простейшего светодиодного будильника с AVR ATtiny2313A / ATtiny2313V / ATtiny2313.


Установка битов конфигурации.


Часы с включенным будильником


Часы с отключенным будильником


Дата


День недели


Отображать


Видео - тестирование простейшего светодиодного будильника с AVR (здесь индикатор будильника - отдельный светодиод).

Добавлен: 30. 9. 2014
дом

Микроконтроллер Atmel Attiny13a

, запрограммированный с использованием Arduino Ide

Мне показалось, что работать со студией atmel немного сложно.Atmel studio - это тяжелое программное обеспечение, оно занимает слишком много времени на компиляцию, занимает большую часть системной оперативной памяти, библиотеки не очень хорошо объяснены, и, прежде всего, сообщество помощи невелико. Поэтому я решил запрограммировать микроконтроллеры серии atmel attiny с помощью arduino ide. Arduino ide напрямую не поддерживает микроконтроллеры серии atmel attiny. Чтобы создать серию attiny, запрограммированную на arduino ide. Мы должны установить некоторые плагины в системные файлы arduino ide. В этом посте я объясню, как установить плагины серии attiny для arduino ide и какие изменения нам нужно внести в системные файлы arduino, чтобы сделать серию attiny распознаваемой arduino ide.После установки совместимости серии я объясню небольшой проект, который я сделал с использованием микроконтроллера atmel attiny13a. Я запрограммировал микроконтроллер attiny13a на arduino ide с помощью внешнего программатора usbasp. Я также запрограммировал и микроконтроллер attiny13a с автономным Arduino как icsp.

Для установки подключаемого модуля arduino ide для микроконтроллера atmel attiny13a. Загрузите файл, указанный ниже.


Извлеките.rar файл. Вы получите папку с именем attiny13. Найдите каталог установки файлов Arduino. Найдите папку Hardware в каталоге установки arduino. Обычно это C: \ Program Files (x86) \ Arduino \ hardware. Поместите папку attiny13 в папку оборудования. Перезапустите arduino ide, и под опцией плат вы найдете опции attiny13a. Attiny13a будет указан с пятью различными конфигурациями часов. Во всех конфигурациях используется небольшой внутренний источник синхронизации.Я проверил все источники часов, и они работают нормально. Но некоторые пользователи в Интернете говорят, что им сложно создавать надлежащие задержки. Я проверил функцию delay () для каждого источника часов, и она у меня сработала правильно.

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

Attiny13a в arduino ide

Общий вывод attiny13a для использования с arduino ide приведен ниже. D0-D5 обозначает цифровые выводы, а A0-A1 обозначает аналоговые выводы.Итак, attiny с arduino ide имеет 5 цифровых контактов и два аналоговых контакта.

Распиновка

Attiny13a для arduino ide

Мигающий светодиод с Atmel Attiny13A, Arduino Ide и Proteaus Simulation

Чтобы доказать, что верхняя конфигурация работает, я сделал простой проект / программу с мигающим светом. Светодиод переключается примерно за полсекунды. Я подключил светодиод к контакту PB4 attiny13a. Я использовал внутренний кристалл 4,8 МГц в качестве источника тактовой частоты. На выводе сброса я подключил кнопку, чтобы снова запустить микроконтроллер.Вся схема питается от элемента CR2032. Cr2032 представляет собой плоскую батарею на 3,3 В. Attiny во время работы потребляет очень мало энергии. Микроконтроллеры Atmel серии attiny считаются мастерами гибернации. Они могут оставаться в спячке годами при очень небольшом количестве электроэнергии. Принципиальная схема проекта представлена ​​ниже.

Проект

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

Программирование Attiny13a с помощью программатора UsbAsp

Для загрузки кода в микроконтроллер я использовал внешний программатор Usbasp.Attiny13a можно запрограммировать, используя его интерфейс icsp. Схема подключения аттини к программатору usbasp приведена ниже. Usbasp может программировать при Vcc = 3,3 В и 5 В. Уровень напряжения можно выбрать с помощью перемычки, установленной на программаторе usbasp. Я выбрал 3.3в. Поскольку я использую аттини с аккумулятором cr2302, рассчитанным на 3,3 В. Лучше работать на одном уровне напряжения. Но вы также можете запрограммировать его на 5В.
Примечание : При использовании внешнего программатора, такого как usbasp, код может быть загружен в микроконтроллер только с помощью опции Sketch> Upload using Programmer .

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

Программатор

Usbasp используется для программирования микроконтроллера attiny13a с использованием arduino ide

Usbasp программатор программирование микроконтроллер atmel attiny13a

Программирование attiny13a с использованием Arduino uno в качестве Isp

Attiny13a можно запрограммировать с помощью arduino uno. Код можно загрузить, выполнив следующие простые шаги.
  • Подключите arduino к ПК.
  • Выберите правильный порт и плату Arduino, в нашем случае «Arduino Uno».
  • Загрузите на Arduino скетч «ArduinoISP», приведенный в примерах. Дождитесь загрузки скетча. После загрузки переходите к следующему шагу.
  • Выберите «Arduino as ISP» в раскрывающемся меню «Программист».
  • Выберите правильный порт.
  • Выберите «ATtiny13A standalone 4.8Mhz» в раскрывающемся меню Board.
  • Откройте скетч, который вы хотите загрузить на attiny13a, и загрузите код, нажав кнопку загрузки.

Attiny13a, запрограммированный на Arduino uno

Загрузите код проекта и моделирование. Моделирование выполнено в протео. Папка с кодом содержит файл кода Arduino и файл .hex, который можно записать на микроконтроллер непосредственно для программы с мигающим светодиодом. Пожалуйста, поделитесь с нами своим мнением о проекте.

Смотрите видео о проекте здесь…

.

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

Ваш адрес email не будет опубликован.