ATtiny88 datasheet на русском
Предлагаю Вам совершенно вольный перевод на русский язык некоторых страниц технической документации (datasheet) микроконтроллера ATMEL® AVR® ATtiny88.
Характеристики ATtiny88
- Высокопроизводительный 8-разрядный Микроконтроллер AVR® с низким энергопотреблением.
- Усовершенствованная RISC архитектура:
- 123 ассемблерных команды, большинств выполняется за одиночных такт.
- 32 x 8-ми битных рабочих регистра общего назначения.
- Полностью статическое функционирование.
- Сегменты памяти:
- 8 кБайт встроенной самопрограммируемой флэш-памяти.
- 64 байта энергонезависимой EEPROM памяти.
- 512 Байт встроенной SRAM памяти.
- Циклы записи/стирания:
- 10 000 флэш-памяти
- 100 000 EEPROM
- Хранение данных:
- 20 лет при 85°C
- 100 лет при 25°C
- Блокировка несанкционированного копирования программного обеспечения.
- Периферия:
- Один 8-разрядный таймер/счетчик с отдельным пред делителем частоты и режимом сравнения.
- Один 16-разрядный таймер/счетчик с пред делителем частоты и режимами сравнения и захвата.
- 8-ми канальный 10-ти разрядный АЦП (TQFP32)
- Master/Slave последовательный SPI интерфейс
- Байт-ориентированный 2-проводной последовательный интерфейс (Совместим с Philips I2C)
- Программируемый сторожевой таймер с отдельным встроенным генератором (Watchdog)
- Встроенный аналоговый компаратор
- Прерывание и пробуждение при смене состояния входов
- Специальные функции микроконтроллера
- Встроенный внутрисхемный отладчик
- Внутрисхемное программирование через SPI порт.
- RESET при включении программируемое обнаружение пониженного напряжения питания (Brown-Out Detection)
- Внутренний калиброванный генератор
- Внешние и внутренние источники прерываний
- Три режима сна:
- Холостой ход
- шумоподавление АЦП
- отключение питания
- Встроенный датчик температуры
- 28 I/O портов в корпусе TQFP32
- Рабочее Напряжение 1,8 – 5,5 В
- Диапазон рабочих температур от -40 ° C до +85 ° C
- Рабочая частота:
- 0 – 4 МГц при 1,8 – 5,5 В
- 0-8 МГц при 2,7 – 5,5 В
- 0-12 МГц при 4,5 – 5,5 В
- Низкое Энергопотребление
- Активный режим: 1 МГц, 1,8 В: 240 мкА
- Режим отключения питания: 0,1 мкА при 1,8 В
Цоколёвка ATtiny88
Рис. 1 ATtiny88 в корпусе TQFP32
На рисунке 1 цветом выделены названия ножек (pin) в терминах Arduino.
1.1. Описание выводов
Выводы | Назначение |
---|---|
VCC | Плюс источника питания |
AVCC | Вывод напряжения питания для аналого-цифрового преобразователя и выбор ножек портов ввода-вывода. Этот вывод должен быть внешне подключен к VCC, даже если АЦП не используется. Если используется АЦП, рекомендуется, чтобы этот вывод был подключен к VCC через фильтр нижних частот. Следующие контакты получают напряжение питания от AVCC: PC7, PC[5:0] и PA[1:0]. Все остальные ножки портов ввода/вывода получают напряжение питания от VCC. |
GND | Общий провод. Подключается к минусу источника питания. |
Port A, B, С | Все порты ввода/вывода микроконтроллера двунаправленные, имеют внутренние подтягивающие резисторы которые выбираются для каждого бита и подключаются к VCC. Когда подключены внутренние подтягивающие резисторы, при подаче низкого уровня сигнала на вход порта ввода/вывода будет протекать входной ток. Выходные буферы портов ввода/вывода имеют симметричные характеристики как на вход так и на выход тока. |
Port A (PA3:0) | 4-разрядный. |
Port B (PB7:0) | 8-разрядный. В зависимости от настроек фьюзов выбора тактовой частоты, PB6 может использоваться в качестве входа сигнала для внутренней схемы управления тактовой частотой. |
Port C (PC7, PC5:0) | 8-разрядный. |
PC6/RESET | Электрические характеристики PC6 отличаются от характеристик других выводов порта C. Если бит RSTDISBL фьюзов установлен, PC6 используется в качестве порта ввода-вывода, в противном случае, в качестве входа сброса. Низкий уровень на этом выводе приведет к сбросу. |
Port D (PD7:0) |
8-разрядный. Выходные буферы PD[7:4] имеют симметричные характеристики как и у других портов. Выходные буферы PD[3:0] обладают повышенной нагрузочной способностью при низком уровне на выходе (VOL, sink). |
2. Обзор ATtiny88
ATtiny88 — это 8-ми разрядный микроконтроллер изготовленный по КМОП (CMOS) технологии с низким энергопотреблением, основанный на улучшенной RISC архитектуре AVR. Выполняя мощные инструкции за один такт, ATtiny88 достигает пропускной способности, приближающейся к 1 MIPS/МГц.
ATtiny88 использует следующие режимы для экономии электроэнергии:
- Режим ожидания: останавливает процессор, позволяя таймеру/счетчику, АЦП, аналоговому компаратору, SPI, TWI и системе прерываний продолжать работать.
- Режим шумоподавления АЦП: минимизирует шум переключения во время преобразования АЦП за счет остановки процессора и всех модулей ввода-вывода, кроме АЦП.
- Режим отключения питания: регистры сохраняют свое содержимое, все функции микросхемы отключены до следующего прерывания или аппаратного сброса.
Устройство изготовлено с использованием технологии энергонезависимой памяти высокой плотности Atmel. Встроенная флэш-память ISP позволяет перепрограммировать память программ в системе через последовательный интерфейс SPI, с помощью обычного программатора энергонезависимой памяти или с помощью встроенного загрузчика-программ, работающего на ядре AVR. Загрузочная программа может использовать любой интерфейс для загрузки
прикладной программы во флэш-память. Объединяя 8-разрядный процессор RISC с встроенной само программируемой флэш-памятью на монолитном чипе, Atmel ATtiny88 представляет собой мощный микроконтроллер, который обеспечивает очень гибкое и экономичное решение для многих встроенных приложений управления.
2.1 Блок-схема ATtiny88
Рис. 2. Блок-схема ATtiny88.
Ядро AVR сочетает в себе богатый набор инструкций с 32 рабочими регистрами общего назначения. Все 32 регистра напрямую подключены к арифметико-логическому блоку (ALU), что позволяет получить доступ к двум независимым регистрам в одной инструкции, выполняемой за один такт. Такая архитектура более эффективна в коде и обеспечивает при этом пропускную способность в десять раз лучше, чем у обычных микроконтроллеров CISC.
4. Ядро процессора AVR
В этом разделе обсуждается архитектура ядра AVR в целом. Основная функция ядра процессора заключается в обеспечении правильного выполнения программы. Поэтому центральный процессор должен иметь возможность доступа к памяти, выполнять вычисления, управлять периферийными устройствами и обрабатывать прерывания.
Рис. 3. Блок-схема AVR архитектуры.
Для достижения максимальной производительности и параллелизма, AVR использует Гарвардскую архитектуру процессора – с раздельной памятью и шинами для программ и данных. Инструкции в памяти программы выполняются с помощью одноуровневой конвейерной обработки. Пока выполняется одна инструкция, следующая инструкция предварительно извлекается из памяти программы. Эта концепция позволяет выполнять инструкции в каждом такте. Память программ представляет собой внутрисистемную перепрограммируемую флэш-память.
Файл регистров быстрого доступа содержит 32 8-разрядных рабочих регистра общего назначения со временем доступа в один такт. Это позволяет арифметическому логическому устройству (ALU) выполнять операции за один цикл. В типичной операции ALU два операнда получают из файла регистров, выполняется операция и результат сохраняется обратно в файле регистров – за один такт.
Шесть из 32-х регистров могут использоваться в качестве трех 16-ти разрядных регистров указателей косвенных адресов для данных. Пространственная адресация – позволяет эффективно вычислять адреса. Один из этих указателей адреса также может использоваться в качестве указателя адреса для поиска таблиц во флэш-памяти программы. Регистрами с дополнительным функционалом являются 16-разрядные регистры X, Y и Z.
ALU поддерживает арифметические и логические операции между регистрами или между константой и регистром. Операции с одним регистром также могут выполняться в ALU. После выполнения арифметической операции обновляется регистр состояния (SREG), чтобы отобразить информацию о результате выполнения операции.
Выполнение программы обеспечивается инструкциями условного и безусловного перехода и вызова подпрограмм способными непосредственно обращаться ко всему адресному пространству памяти программ. Большинство инструкций AVR имеют единый 16-разрядный формат слов, но существуют также инструкции 32-разрядного формата. Фактический набор инструкций варьируется, так как некоторые микроконтроллеры реализуют только часть набора инструкций.
Во время прерываний и вызовов подпрограмм, адрес возврата берётся из счетчика команд (PC) помещается в стек. Стек находится в SRAM памяти общих данных и, следовательно, размер стека ограничен только общим размером SRAM и её использованием в программе. Все пользовательские программы должны инициализировать указатель стека (SP) в процедуре сброса до выполнения подпрограмм или прерываний. Указатель стека (SP) доступен для чтения/записи в пространстве адресов регистров ввода-вывода. К данным SRAM можно легко получить доступ с помощью пяти различных режимов адресации, поддерживаемых архитектурой AVR.
Все области памяти в архитектуре AVR являются линейными и регулярными картами памяти.
Гибкий модуль прерываний имеет свои управляющие регистры в адресном пространстве регистров ввода-вывода и дополнительный глобальный Бит разрешения/запрета прерываний в регистре состояния (SREG). Все прерывания имеют отдельный вектор прерывания в таблице векторов прерываний. Прерывания имеют приоритет в соответствии с номером их вектора прерывания. Чем ниже адрес вектора прерывания, тем выше приоритет.
64 Регистра ввода-вывода обслуживают периферию CPU, это управляющие регистры SPI модуля и другие. Доступ к памяти регистров ввода/вывода можно получить напрямую или по адресу в пространстве данных SRAM. Регистры ввода/вывода располагаются в SRAM сразу за файлом регистров быстрого доступа по адресам 0x20 — 0x5F. Кроме того, в ATtiny88 появились дополнительные регистры ввода-вывода которые занимают адреса с 0x60 до 0xFF в SRAM. В адресном пространстве дополнительных регистров ввода-вывода (0x60 до 0xFF) можно использовать только инструкции ST/STS/STD и LD/LDS/LDD.
4.3 Арифметическое логическое устройство (ALU)
Высокопроизводительный AVR ALU работает напрямую со всеми 32 рабочими регистрами общего назначения. За один такт выполняются арифметические операции между регистрами общего назначения или между регистром и значением непосредственно указанным в инструкции. Операции ALU делятся на три основные категории — арифметические, логические и битовые функции. Некоторые реализации архитектуры также предоставляют мощный умножитель, поддерживающий как знаковое и без знаковое умножение, так и дробный формат.
4.4 Регистр состояния
Регистр состояния содержит информацию о результате последней выполненной арифметической инструкции. Эта информация может использоваться для изменения потока программы для выполнения условных операций. Обратите внимание, что регистр состояния обновляется после всех операций ALU, как указано в Справочнике по набору команд. Во многих случаях это устраняет необходимость использования специальных инструкций сравнения, что приводит к более быстрому и компактному коду.
Регистр состояния не сохраняется автоматически при входе в программу обработки прерывания и не восстанавливается при возврате из прерывания. Это должно выполняться программным обеспечением.
4.5 Файл регистров общего назначения
Файл регистров оптимизирован для расширенного набора команд AVR RISC. Для достижения требуемой производительности и гибкости регистровый файл поддерживает следующие схемы ввода/вывода:
- Один 8-битный операнд и один 8-битный результата
- Два 8-битных операнда и один 8-битный результат
- Два 8-битных операнда и один 16-битный результата
- Один 16-битный операнд и один 16-битный результат
Рис. 4. 32 рабочих регистра общего назначения в CPU.
Как показано на рис. 4, каждому регистру также назначается адрес в памяти данных, отображающий их непосредственно в первые 32 ячейки пользовательского пространства данных. Хотя эта организация памяти не реализована физически в качестве ячеек SRAM, она обеспечивает большую гибкость при доступе к регистрам, поскольку регистры указателей X, Y и Z могут быть настроены для индексации любого регистра в файле регистров.
Регистры R26: R31 имеют некоторые дополнительные функции. Эти регистры представляют собой 16-разрядные адресные указатели для косвенной адресации пространства данных. Три регистра косвенного адреса X, Y и Z определены, как показано на рисунке 4.
В различных режимах адресации эти адресные регистры выполняют функции фиксированного смещения, автоматического увеличения и автоматического уменьшения.
4.6 Указатель стека
Стек, в основном, используется для хранения временных данных, локальных переменных и адресов возврата после прерываний и вызовов подпрограмм. Регистры указателя стека (SPH и SPL) всегда указывают на верхнюю часть стека. Обратите внимание, что стек растёт сверху вниз, увеличивается от старших адресов ячеек памяти к младшим. Это означает, что инструкция PUSH уменьшает, а инструкция POP увеличивает значение указателя стека.
Указатель уменьшается на единицу, когда данные помещаются в стек с помощью инструкции PUSH, и увеличивается на единицу, когда данные снимаются со стека с помощью инструкции POP. Он уменьшается на два, когда адрес возврата помещается в стек вызовом подпрограммы или переходом к подпрограмме обслуживания прерывания, и увеличивается на два, когда адрес возврата снимается со стека при возврате из подпрограммы (инструкция RET ) или при возврате из подпрограммы обслуживания прерывания (инструкция RETI).
Указатель стека AVR обычно реализуется как два 8-битных регистра в файле регистров ввода-вывода.
Указатель стека должен быть установлен так, чтобы он указывал выше области регистров ввода-вывода, минимальное значение — это наименьший адрес SRAM.
4.7 Время выполнения инструкции
В этом разделе описываются общие концепции времени доступа для выполнения инструкций. CPU AVR управляется тактовой частотой clkCPU . clkCPU напрямую генерируется из выбранного источника синхронизации. Внутреннее деление тактовой частоты не используется.
4.8 Сброс и обработка прерываний
AVR использует несколько различных источников прерываний. Эти прерывания вместе с функцией RESET имеют отдельный вектор на область памяти программ. Для разрешения прерываний, всем прерываниям назначаются отдельные биты разрешения, которые должны быть записаны в логическую единицу. Так же, имеется глобальный бит разрешения всех прерываний. Он находится в регистре состояния. В зависимости от значения программного счетчика прерывания могут быть автоматически отключены, если блокирующие биты LB2 или LB1 запрограммированы (установлены в 0). Эта функция повышает безопасность программного обеспечения.
Самые младшие адреса в области памяти программ по умолчанию определены как таблица векторов сброса и прерываний. Таблица векторов также определяет уровни приоритета различных прерываний. Чем ниже адрес, тем выше уровень приоритета. СБРОС имеет наивысший приоритет, затем идет INT0 — запрос внешнего прерывания 0.
При возникновении прерывания I-бит глобального разрешения прерывания сбрасывается, и все прерывания запрещаются. Программное обеспечение пользователя может записать логическую единицу в I-бит, чтобы разрешить вложенные прерывания. Все разрешенные прерывания могут затем прервать текущую программу обработки прерываний. Бит I устанавливается автоматически при выполнении инструкции возврата из прерывания — RETI.
В основном, есть два типа прерываний. Первый тип запускается событием, которое устанавливает флаг прерывания. Для этих прерываний программный счетчик направляется на фактический вектор прерывания, чтобы выполнить процедуру обработки прерывания, и аппаратные средства сбрасывают соответствующий флаг прерывания. Флаги прерывания также могут быть очищены путем записи логической единицы в позицию (позиции) битов флага, которые необходимо очистить. Если условие прерывания возникает, когда соответствующий бит разрешения прерывания сброшен, флаг прерывания будет установлен и запомнен до тех пор, пока прерывание не будет разрешено или флаг не будет сброшен программно. Точно так же, если возникает одно или несколько условий прерывания, пока глобальный Бит разрешения прерываний сброшен, соответствующий флаг(и) прерывания будет установлен и запомнен до тех пор, пока не будет установлен глобальный бит разрешения прерывания, а затем будет выполняться в порядке приоритета.
Второй тип прерываний будет срабатывать, пока присутствует условие прерывания. Эти прерывания не обязательно имеют флаги прерывания. Если условие прерывания исчезнет до того, как прерывание будет разрешено, прерывание не будет запущено.
Когда AVR выходит из прерывания, он всегда возвращается в основную программу и выполняет еще одну инструкцию, прежде чем будет обработано любое ожидающее прерывание.
Обратите внимание, что регистр состояния не сохраняется автоматически при входе в программу обработки прерывания и не восстанавливается при возврате из программы обработки прерывания. Это должно выполняться программным обеспечением.
При использовании инструкции CLI для отключения прерываний прерывания будут немедленно отключены. После инструкции CLI прерывание выполняться не будет, даже если оно происходит одновременно с инструкцией CLI.
При использовании инструкции SEI для разрешения прерываний, инструкция, следующая за SEI, будет выполняться раньше любых ожидающих в очереди прерываний.
6. Система тактирования
На рисунке 6.1 представлены основные системы тактирования в AVR и их распределение. Все часы тактовые импульсы не обязательно должны быть активными в определенное время. Чтобы снизить энергопотребление, тактовую частоту неиспользуемых модулей можно остановить с помощью различных энергосберегающих режимов (Sleep modes).
Рис. 6.1 Распределение тактовых импульсов.
6.2 Источники тактирования
Микроконтроллер ATtiny88 может использовать любой из следующих источников тактовых импульсов:
CKSEL[1:0] | Источник тактирования | Допустимая частота |
00 | Внешний генератор | 0 – 12 MHz |
01 | Резерв | |
10 | Калиброванный внутренний генератор | 8. |
11 | Внутренний генератор | 128 kHz |
Фьюз CKDIV8 можно запрограммировать на деление внутренней частоты 8.0 MHz на 8.
7. Управление электропитанием и режимы энергосбережения микроконтроллера ATtiny88
Энергосберегающие режимы (Sleep modes) позволяют приложению отключать неиспользуемые модули в MCU, тем самым экономя электроэнергию. AVR предоставляет различные энергосберегающие режимы, позволяющие пользователю адаптировать энергопотребление к требованиям приложения.
Когда включен детектор пониженного напряжения (BOD), он активно контролирует напряжение источника питания, в том числе и во время периодов сна. Для дополнительной экономии энергии можно отключить BOD в некоторых режимах пониженного энергопотребления.
7.1 Энергосберегающие режимы
Режим | Описание | SMCR | Активные источники тактирования | Генератор | Инициаторы выхода из энергосберегающего режима | ||||||||||
SM1 | SM0 | SE | clkCPU | clkFLASH | clkIO | clkADC | Главный источник тактирования | INT1, INT0 and Pin Change | TWI Address Match | EEPROM Ready | ADC | WDT | other I/O | ||
Idle | Режим ожидания | 0 | 0 | 1 | X | X | X | X | X | X | X | X | X | ||
ADC Noise Reduction | Шумоподавление АЦП | 0 | 1 | 1 | X | X | X | X | X | X | |||||
Power-down | Отключение питания | 1 | 0 | 1 | X | X | X |
Таблица 7. 1 Энергосберегающие режимы, активные источники тактирования, инициаторы пробуждения (выхода из энергосберегающего режима).
Чтобы войти в любой из спящих режимов, бит SE в регистр ввода/вывода SMCR должна быть записана 1 и должна быть выполнена инструкция SLEEP. Битами SM1 и SM0 в регистре SMCR выбирают, какой режим энергосбережения (режим ожидания, шумоподавление АЦП или отключение питания) будет активирован инструкцией SLEEP.
Если разрешенное прерывание происходит, когда микроконтроллер ATtiny88 находится в спящем режиме, микроконтроллер выходит из спящего режима. Затем микроконтроллер останавливается на четыре цикла в дополнение к времени запуска, выполняет процедуру прерывания и возобновляет выполнение с инструкции, следующей за SLEEP. Содержимое регистрового файла и SRAM не изменяется, когда микроконтроллер выходит из спящего режима. Если сброс происходит в спящем режиме, микроконтроллер выходит из спящего режима и запускается с вектора сброса.
Обратите внимание, что если прерывание, инициируемое уровнем, используется для пробуждения, измененный уровень должен удерживаться в течение
некоторого времени, чтобы разбудить микроконтроллер и чтобы микроконтроллер вошёл в процедуру обслуживания прерывания.
7.4.2 MCUCR – регистр управления микроконтроллером
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Name | BODS | BODSE | PUD | |||||
Read/Write | R | R/W | R/W | R/W | R | R | R | R |
Начальное значение | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 6 — BODS должен быть установлен в 1, чтобы разрешить отключение модуля BOD при переходе микроконтроллера в режим энергосбережения. Запись в бит BODS управляется синхронизированной последовательностью записи 1 в бит разрешения BODSE в регистре MCUCR.
- Сначала необходимо установить BODSE в 1.
- Затем, необходимо установить бит BODS в 1
- BODSE должен быть установлен в 0 в течение четырех тактовых циклов
- Бит BODS активен через три тактовых цикла после установки.
- Команда sleep должна выполняться, пока активен BODS
- Бит BODS автоматически очищается после трех тактов
7.4.3 PRR — Регистр снижения энергопотребления
Регистр PRR обеспечивает метод остановки синхронизации отдельных периферийных устройств для снижения энергопотребления. Текущее состояние периферийного устройства замораживается, и регистры ввода-вывода не могут быть прочитаны или записаны. Ресурсы, используемые периферийным устройством при остановке тактирования, останутся занятыми, поэтому в большинстве случаев периферийное устройство должно быть отключено перед остановкой. Пробуждение модуля выполняется сбросом бита в PRR и переводит модуль в то же состояние, что и до выключения.
17. АЦП — аналого-цифровой преобразователь.
Примеры использования: Датчик температуры в ATtiny88,
17.1 Функции АЦП.
- 10-ти битное разрешение
- 1 LSB Интегральная нелинейность
- Абсолютная точность ± 2 младшего разряда
- 14 мкс Время преобразования
- 15 kSPS при максимальном разрешении
- Шесть мультиплексированных односторонних входных каналов
- + Два дополнительных входных канала в корпусах TQFP, QFN и UFBGA с 32 выводами
- + Входной канал датчика температуры
- Дополнительная регулировка влево для считывания результатов АЦП
- 0 — VCC Диапазон входного напряжения АЦП
- Выбираемое опорное напряжение АЦП 1,1 В
- Свободно работающий режим или режим одиночного преобразования
- Прерывание при завершении преобразования АЦП
- Шумоподавитель в спящем режиме
17.2 Обзор.
ATtiny88 оснащен 10-битным аналого-цифровым преобразователем (АЦП) последовательного приближения. АЦП подключен к аналоговому девяти канальному мультиплексору, что позволяет АЦП измерять напряжение на шести или восьми (в зависимости от типа корпуса микроконтроллера) несимметричных входах и от одного внутреннего источника напряжения, поступающего от внутреннего датчика температуры. Напряжение на входах
измеряется относительно 0 В (GND).
АЦП содержит схему выборки и хранения, которая обеспечивает поддержание входного напряжения АЦП на постоянном уровне во время преобразования. Блок-схема АЦП показана в Рисунок 17-1.
Рис. 17.1. Блок-схема АЦП.
Имеется отдельный аналоговый вывод напряжения питания для АЦП, AVCC. Разница напряжений между выводами напряжения питания VCC и AVCC не должна превышать 0,3. Схему подключения аналогового вывода напряжения питания AVCC смотрите на рисунке 17.9.
Внутренний источник опорного напряжение номиналом 1,1 В может быть использован качестве альтернативы VCC.
17.3 Работа
Для использования АЦП, бит снижения мощности PRADC в регистре снижения мощности (PRR) должен быть сброшен.
АЦП преобразует аналоговое входное напряжение в 10-битное цифровое значение путем последовательного приближения. Минимальное значение измеряемого напряжения 0 В на ножке GND микроконтроллера, а максимальное значение измеряемого напряжения равно опорному напряжению. Опорное напряжение АЦП можно выбрать, записав бит REFS0 в регистр ADMUX. Альтернативами являются вывод питания AVCC (REFS0=1) и внутренний источник опорного напряжения 1,1 В (REFS0=0).
Канал аналогового входа выбирается записью в биты MUX в регистре ADMUX. Любой из входных контактов АЦП, а также GND и опорное напряжение с фиксированной шириной запрещенной зоны можно выбрать в качестве несимметричных входов для АЦП.
АЦП включается установкой бита включения АЦП, ADEN в регистре ADCSRA. Выбор опорного напряжения и входного канала не вступит в силу, пока не будет установлен ADEN. АЦП не потребляет электроэнергию, когда ADEN сброшен, поэтому рекомендуется выключить АЦП перед переходом в энергосберегающие спящие режимы.
АЦП генерирует 10-битный результат, который отображается в регистрах данных АЦП, ADCH и ADCL. По умолчанию результат отображается с корректировкой вправо, но при желании может быть представлен с корректировкой влево путем установки бита ADLAR в регистре ADMUX.
Если результат скорректирован и требуется не более 8-битной точности, достаточно прочитать только ADCH. В противном случае сначала необходимо прочитать ADCL, а затем ADCH, чтобы быть уверенным, что содержимое регистров данных принадлежит одному и тому же преобразованию. После чтения регистра ADCL доступ АЦП к регистрам данных блокируется. Это означает, что если ADCL был прочитан и преобразование завершается до того, как ADCH считывается, ни один регистр не изменяется, и результат текущего преобразования теряется. Когда ADCH считывается, доступ АЦП к регистрам ADCH и ADCL снова разрешается.
У АЦП есть собственное прерывание, которое может быть запущено после завершения преобразования. Когда доступ АЦП к регистрам данных запрещен между чтением ADCH и ADCL, прерывание сработает, даже если результат будет потерян.
17.4 Запуск аналогово-цифрового преобразования
Убедитесь что АЦП запитан, очистив бит снижения мощности АЦП PRADC, в регистре снижения мощности PRR.
Одиночное преобразование запускается записью логической единицы в бит ADC Start Conversion (ADSC). Этот бит остается установленным, пока выполняется преобразование, и будет сброшен аппаратными средствами, когда преобразование будет завершено. Если во время преобразования выбран другой канал данных, АЦП завершит текущее преобразование перед выполнением смены канала.
Кроме того, преобразование может запускаться автоматически из различных источников. Автоматический запуск включается установкой бита включения автоматического запуска АЦП, ADATE в регистре ADCSRA. Источник запуска выбирается путем установки битов выбора запуска АЦП, ADTS в регистре ADCSRB (список источников запуска см. В описании битов ADTS). Когда на выбранном источнике запуска возникает положительный фронт, предварительный делитель АЦП сбрасывается и начинается преобразование. Это обеспечивает метод запуска преобразований через фиксированные интервалы. Если сигнал триггера по-прежнему установлен, когда преобразование завершено, новое преобразование запускаться не будет. Если другой положительный фронт появляется на источнике запуска во время преобразования, он будет проигнорирован. Обратите внимание, что флаг прерывания будет установлен, даже если конкретное прерывание отключено или бит разрешения глобального прерывания в SREG сброшен. Таким образом, преобразование может быть запущено без прерывания. Однако флаг прерывания должен быть сброшен, чтобы запустить новое преобразование при следующем событии прерывания.
Рис. 17.2. Логика автоматического запуска АЦП.
Использование флага прерывания АЦП в качестве источника запуска заставляет АЦП начать новое преобразование, как только текущее преобразование завершится. Затем АЦП работает в режиме автономной работы, постоянно осуществляя выборку и обновление регистра данных АЦП. Первое преобразование должно быть начато записью логической единицы в бит ADSC в ADCSRA. В этом режиме АЦП будет выполнять последовательные
преобразования независимо от того, сброшен флаг прерывания АЦП, ADIF или нет.
Если автоматический запуск включен, одиночные преобразования могут быть запущены путем записи ADSC в ADCSRA в единицу. ADSC также можно использовать для определения того, выполняется ли преобразование. Бит ADSC будет считываться как один во время преобразования, независимо от того, как преобразование было начато.
Рис. 17.9. Подключение питания АЦП.
17.5 Делитель частоты и время преобразования
По умолчанию, для получения максимального разрешения, схема последовательного приближения требует входной тактовой частоты от 50 кГц до 200 кГц. Если требуется разрешение меньше чем 10 бит, входная тактовая частота АЦП может быть выше 200 кГц. Это позволяет получить более высокую частоту дискретизации. Но не рекомендуется использовать более высокую тактовую частоту тактового сигнала чем 1 МГц.
Рис. 17.3. Предделитель АЦП.
Модуль АЦП содержит предделитель, как показано на Рисунок 17. 3, которые генерируютполучает приемлемую тактовую частоту АЦП от любой частоты процессора выше 100 кГц. Коеффициент деления устанавливается с помощью ADPS битов в регистре ADCSRA. Предварительный делитель начинает отсчет с момента включения АЦП путем установки бита ADEN в регистре ADCSRA. Предварительный делитель продолжает работать до тех пор, пока установлен бит ADEN, и постоянно сбрасывается при низком уровне ADEN.
Когда начинается одиночное преобразование инициированное установкой бита ADSC в регистре ADCSRA, преобразование начинается со следующего нарастающего фронта тактового цикла АЦП.
Обычное преобразование занимает 13 тактов АЦП. Первое преобразование после включения АЦП (ADEN в ADCSRA установлено) занимает 25 тактов АЦП для инициализации аналоговой схемы, как показано на рисунке 17.4.
Рисунок 17-4. Временная диаграмма АЦП, первое преобразование (режим одиночного преобразования).
Фактическая выборка и удержание происходит через 1,5 тактовых цикла АЦП после начала нормального преобразования и 13,5 тактовых циклов АЦП после начала первого преобразования. Когда преобразование завершено, результат записывается в регистры данных АЦП, и устанавливается ADIF. В режиме одиночного преобразования одновременно сбрасывается ADSC. Затем программное обеспечение может снова установить ADSC, и новое
преобразование будет инициировано на первом нарастающем фронте тактовой частоты АЦП.
Рисунок 17-5. Временная диаграмма АЦП, одиночное преобразование.
Когда используется автоматический запуск, предварительный делитель сбрасывается, когда происходит событие запуска, как показано на рисунке 17.6. Это обеспечивает фиксированную задержку от триггерного события до начала преобразования. В этом режиме выборки и хранения выполняется два тактовых цикла АЦП после нарастающего фронта сигнала источника запуска. Для синхронизации логики используются три дополнительных тактовых цикла ЦП.
Рис. 17.6. Временная диаграмма АЦП, автоматическое преобразование.
В режиме произвольного запуска, новое преобразование будет запущено сразу после его завершения, пока ADSC останётся на высоком уровне. Смотрите рисунок 17.7.
Рис. 17-7. Временная диаграмма АЦП произвольного запуска преобразования.
Сводка времени преобразования размещена в таблице 17.1.
Табл. 17-1. Время аналогово-цифрового преобразования.
17.6 Выбор канала или опорного напряжения
Биты MUXn и REFS0 в регистре ADMUX однократно буферизуются через временный регистр, к которому ЦП имеет произвольный доступ. Это гарантирует, что выбор каналов и опорного напряжения будет происходить только в безопасной точке во время преобразования. Выбор канала и опорного напряжения постоянно обновляется, пока не начнется преобразование. После начала преобразования выбор канала и опорного напряжения блокируется, чтобы обеспечить достаточное время выборки для АЦП. Непрерывное обновление возобновляется в последнем тактовом цикле АЦП до завершения преобразования (установлен ADIF в ADC-SRA). Обратите внимание, что преобразование начинается на следующем нарастающем фронте тактовой частоты АЦП после записи ADSC. Таким образом, пользователю рекомендуется не записывать новые значения выбора канала или ссылки в ADMUX до тех пор, пока не будет записан один тактовый цикл АЦП после записи ADSC.
Если используется автоматический запуск, точное время запускающего события может быть неопределенным. Особое внимание должно быть принято при обновлении ADMUX регистра, для того, чтобы контроль, преобразования будет затронуты новыми настройками.
Если и ADATE, и ADEN установлены в 1, событие прерывания может произойти в любое время. Если регистр ADMUX изменяется в этот период, пользователь не может определить, будет ли следующее преобразование основано на старых или новых настройках. ADMUX можно безопасно обновить следующими способами:
- При удалении ADATE или ADEN.
- Во время преобразования минимум один тактовый цикл АЦП после события запуска.
- После преобразования перед сбросом флага прерывания, используемого в качестве источника запуска.
В случае обновления ADMUX при одном из этих условий, новые настройки повлияют на следующее преобразование АЦП.
Описание опций прошивальщика avrdude
Опций довольно много. Не пытайтесь их все запомнить, нужно просто иметь общее представление о том, что эти опции могут делать.
-p partno: эта опция просто говорит утилите, какой микроконтроллер AVR будет программироваться. Например, если Вы собрались программировать ATtiny2313, то в качестве partno введите attiny2313.
-b baudrate: эта опция используется для настройки скорости последовательной передачи данных (через RS-232, UART) для программаторов, работающих по протоколам наподобие STK200 или STK500 STK500. Часто эту опцию использовать необязательно, потому что подходит скорость, настроенная по умолчанию.
-B bitrate: эта опция меняет скорость следования бит, на которой программатор общается с программируемым чипом. Если Ваш микроконтроллер тактируется очень низкой частотой, то потребуется снизить скорость данных программирования. Обычно микроконтроллер работает на высокой частоте (8 МГц и выше, особенно если используется кварцевый резонатор), так что эта опция применяется редко.
-C config-file: это файл конфигурации, который говорит avrdude о различных способах, как ему общаться с программатором. Имеется файл конфигурации по умолчанию, который используется без указания -C опции, так что эта опция обычно не нужна.
Если путь до файла имеет пробелы, то его следует брать в двойные кавычки. Например: -C»C:\Program Files\Arduino1.0.6\hardware\tools\avr\etc\avrdude.conf».
-c programmer: эта опция задает тип программатора (его протокол). Например, если используете STK500, то укажите stk500, если используете программатор DT006, то укажите dt006, и т. д.
-D: опция запрещает очистку памяти чипа перед программированием. Скорее всего, эта опция Вам никогда не потребуется.
-P port: опция задает порт обмена данными между компьютером и программатором. Это может быть COM1, LPT1 или USB.
-F: опция отменяет проверку сигнатуры, которая позволяет убедиться, что программируемый чип именно тот, который нужен. Настоятельно рекомендуется выполнять эту проверку для тестирования соединения, поэтому не используйте эту опцию.
-e: опция очистки памяти чипа. Обычно её использовать не нужно, потому что очистка FLASH выполняется автоматически перед программированием.
-U memtype:r|w|v:filename[:format]: а вот эта команда уже по-настоящему важна. Именно одна задает, какое именно программирование будет произведено. Здесь memtype может быть flash или eeprom для памяти, либо hfuse, lfuse или efuse для конфигурационных фьюзов чипа. Буквы r|w|v обозначают операцию над памятью, т. е. r (read, чтение), w (write, запись) или v (verify, проверка памяти). Часть команды filename задает имя файла, который будет прочитан или записан во время выполнения команды. [:format] задает опцию формата файла. Чаще всего используется формат Intel Hex [7], и файл данных обычно получает расширение *.hex». Если Вы хотите записать, например, файл test.hex в память flash, то должны использовать -U flash:w:test.hex:i. Если хотите прочитать память eeprom в файл «eedump.hex», то должны использовать команду -U eeprom:r:eedump.hex:i.
Если путь до файла имеет пробелы, то его следует брать в двойные кавычки.
-n: это означает, что никаких действий записи производиться не будет. Команда полезна, когда Вы хотите гарантировать, что ни одна из отправляемых команд не повредит содержимое памяти чипа. Это разновидность ‘блокировки безопасности’.
-V: выключает автоматическую проверку содержимого памяти при записи. Не советую использовать эту опцию, потому что проверка дает дополнительную уверенность, что память записана правильно.
-u: запрет режима безопасности. Это установка по умолчанию, когда avrdude запускается из скрипта. Если хотите модифицировать биты фьюзов, то используйте эту опцию, чтобы явно подтвердить свои намерения (подавляет дополнительный запрос подтверждения).
-t: запускает режим терминала, когда Вы вводите команды строка за строкой. Не используйте этот режим, поскольку это добавляет сложности.
-E: выводит некоторые спецификации программатора, не используйте эту опцию.
-v: опция включает подробный вывод сообщений. Это может потребоваться для диагностики, чтобы получить дополнительную информацию. Обычно эта опция не нужна.
-q: действие этой опции дает противоположный эффект по сравнению с опцией -v, т. е. количество выводимой информации уменьшается. Обычно эта опция также не используется.
В этом списке красным цветом выделены те опции, которые скорее всего Вам понадобятся.
Давайте рассмотрим подробнее использование этих опций.
[-c programmer]
Чтобы получить список поддерживаемых программаторов (и найти тот, который у Вас), введите команду avrdude -c qwerty (здесь qwerty это произвольный набор символов, который не соответствует ни одному из поддерживаемых программаторов). Как результат выполнения команды будет выведен список поддерживаемых программаторов.
Список программаторов, поддерживаемых avrdude:
C:\>avrdude -c qwerty
avrdude: Can’t find programmer id «qwerty»
Valid programmers are:
c2n232i = serial port banging, reset=dtr sck=!rts mosi=!txd miso=!cts
dasa3 = serial port banging, reset=!dtr sck=rts mosi=txd miso=cts
dasa = serial port banging, reset=rts sck=dtr mosi=txd miso=cts
siprog = Lancos SI-Prog (http://www. lancos.com/siprogsch.html)
ponyser = design ponyprog serial, reset=!txd sck=rts mosi=dtr miso=cts
89isp = Atmel at89isp cable [c:\WinAVR\bin\avrdude.conf:791]
frank-stk200 = Frank STK200 [c:\WinAVR\bin\avrdude.conf:777]
blaster = Altera ByteBlaster [c:\WinAVR\bin\avrdude.conf:764]
ere-isp-avr = ERE ISP-AVR (http://www.ere.co.th/download/sch050713.pdf)
atisp = AT-ISP V1.1 cable for AVR-SDK1 (http://micro-research.co.th/)
dapa = Direct AVR Parallel Access cable [c:\WinAVR\bin\avrdude.conf:733]
xil = Xilinx JTAG cable [c:\WinAVR\bin\avrdude.conf:720]
futurlec = Futurlec.com programming cable. [c:\WinAVR\bin\avrdude.conf:703]
abcmini = ABCmini Board, aka Dick Smith HOTCHIP [c:\WinAVR\bin\avrdude.conf:693]
picoweb = Picoweb Programming Cable (http://www.picoweb.net/)
sp12 = Steve Bolt’s Programmer
alf = Nightshade ALF-PgmAVR (http://nightshade.homeip.net/)
bascom = Bascom SAMPLE programming cable
dt006 = Dontronics DT006
pony-stk200 = Pony Prog STK200
stk200 = STK200 [c:\WinAVR\bin\avrdude. conf:608]
bsd = Brian Dean’s Programmer, http://www.bsdhome.com/avrdude/
pavr = Jason Kyle’s pAVR Serial Programmer
dragon_pdi = Atmel AVR Dragon in PDI mode
dragon_dw = Atmel AVR Dragon in debugWire mode
dragon_hvsp = Atmel AVR Dragon in HVSP mode
dragon_pp = Atmel AVR Dragon in PP mode
dragon_isp = Atmel AVR Dragon in ISP mode
dragon_jtag = Atmel AVR Dragon in JTAG mode
jtag2pdi = Atmel JTAG ICE mkII PDI mode
jtag2avr32 = Atmel JTAG ICE mkII in AVR32 mode
jtagmkII_avr32 = Atmel JTAG ICE mkII in AVR32 mode
jtag2dw = Atmel JTAG ICE mkII in debugWire mode
jtag2isp = Atmel JTAG ICE mkII in ISP mode [c:\WinAVR\bin\avrdude.conf:502]
jtag2 = Atmel JTAG ICE mkII [c:\WinAVR\bin\avrdude.conf:494]
jtag2fast = Atmel JTAG ICE mkII [c:\WinAVR\bin\avrdude.conf:486]
jtag2slow = Atmel JTAG ICE mkII [c:\WinAVR\bin\avrdude.conf:478]
jtagmkII = Atmel JTAG ICE mkII [c:\WinAVR\bin\avrdude. conf:470]
jtag1slow = Atmel JTAG ICE (mkI) [c:\WinAVR\bin\avrdude.conf:463]
jtag1 = Atmel JTAG ICE (mkI) [c:\WinAVR\bin\avrdude.conf:455]
jtagmkI = Atmel JTAG ICE (mkI) [c:\WinAVR\bin\avrdude.conf:447]
avr911 = Atmel AppNote AVR911 AVROSP [c:\WinAVR\bin\avrdude.conf:441]
avr109 = Atmel AppNote AVR109 Boot Loader [c:\WinAVR\bin\avrdude.conf:435]
butterfly = Atmel Butterfly Development Board [c:\WinAVR\bin\avrdude.conf:429]
usbtiny = USBtiny simple USB programmer (http://www.ladyada.net/make/usbtinyisp/)
usbasp = USBasp (http://www.fischl.de/usbasp/) [c:\WinAVR\bin\avrdude.conf:417]
avr910 = Atmel Low Cost Serial Programmer [c:\WinAVR\bin\avrdude.conf:411]
stk600hvsp = Atmel STK600 in high-voltage serial programming mode
stk600pp = Atmel STK600 in parallel programming mode
stk600 = Atmel STK600 [c:\WinAVR\bin\avrdude.conf:393]
stk500hvsp = Atmel STK500 V2 in high-voltage serial programming mode
stk500pp = Atmel STK500 V2 in parallel programming mode
stk500v2 = Atmel STK500 Version 2. x firmware
mib510 = Crossbow MIB510 programming board
stk500v1 = Atmel STK500 Version 1.x firmware
stk500 = Atmel STK500 [c:\WinAVR\bin\avrdude.conf:357]
buspirate = The Bus Pirate [c:\WinAVR\bin\avrdude.conf:347]
avrisp2 = Atmel AVR ISP mkII [c:\WinAVR\bin\avrdude.conf:341]
avrispmkII = Atmel AVR ISP mkII [c:\WinAVR\bin\avrdude.conf:335]
avrispv2 = Atmel AVR ISP V2 [c:\WinAVR\bin\avrdude.conf:329]
avrisp = Atmel AVR ISP [c:\WinAVR\bin\avrdude.conf:323]
arduino = Arduino [c:\WinAVR\bin\avrdude.conf:317]
Найдите в этом списке имя, соответствующее Вашему используемому программатору. Это имя следует подставлять в опцию -c programmer.
[-p partno]
Чтобы получить список программируемых микроконтроллеров AVR, введите команду avrdude -c avrisp (при этом не имеет значения, используете ли Вы реально программатор avrisp) без указания имени микроконтроллера. Не следует запоминать этот длинный список, он используется только для того, чтобы узнать нужное имя для программируемого микроконтроллера, которое следует подставлять в командную строку вместе с опцией -p partno.
Список чипов AVR, поддерживаемых avrdude:
C:\>avrdude -c avrisp
avrdude: No AVR part has been specified, use «-p Part»
Valid parts are:
t10 = ATtiny10 [c:\WinAVR\bin\avrdude.conf:15443]
t8 = ATtiny9 [c:\WinAVR\bin\avrdude.conf:15403]
t5 = ATtiny5 [c:\WinAVR\bin\avrdude.conf:15363]
t4 = ATtiny4 [c:\WinAVR\bin\avrdude.conf:15323]
ucr2 = 32UC3A0512 [c:\WinAVR\bin\avrdude.conf:15302]
x128a4 = ATXMEGA128A4 [c:\WinAVR\bin\avrdude.conf:15204]
x64a4 = ATXMEGA64A4 [c:\WinAVR\bin\avrdude.conf:15107]
x32a4 = ATXMEGA32A4 [c:\WinAVR\bin\avrdude.conf:15010]
x16a4 = ATXMEGA16A4 [c:\WinAVR\bin\avrdude.conf:14913]
x256a3b = ATXMEGA256A3B [c:\WinAVR\bin\avrdude.conf:14816]
x256a3 = ATXMEGA256A3 [c:\WinAVR\bin\avrdude.conf:14719]
x192a3 = ATXMEGA192A3 [c:\WinAVR\bin\avrdude.conf:14622]
x128a3 = ATXMEGA128A3 [c:\WinAVR\bin\avrdude. conf:14525]
x64a3 = ATXMEGA64A3 [c:\WinAVR\bin\avrdude.conf:14428]
x256a1 = ATXMEGA256A1 [c:\WinAVR\bin\avrdude.conf:14331]
x192a1 = ATXMEGA192A1 [c:\WinAVR\bin\avrdude.conf:14234]
x128a1d = ATXMEGA128A1REVD [c:\WinAVR\bin\avrdude.conf:14137]
x128a1 = ATXMEGA128A1 [c:\WinAVR\bin\avrdude.conf:14040]
x64a1 = ATXMEGA64A1 [c:\WinAVR\bin\avrdude.conf:13943]
m6450 = ATMEGA6450 [c:\WinAVR\bin\avrdude.conf:13754]
m3250 = ATMEGA3250 [c:\WinAVR\bin\avrdude.conf:13565]
m645 = ATMEGA645 [c:\WinAVR\bin\avrdude.conf:13376]
m325 = ATMEGA325 [c:\WinAVR\bin\avrdude.conf:13187]
usb82 = AT90USB82 [c:\WinAVR\bin\avrdude.conf:13007]
usb162 = AT90USB162 [c:\WinAVR\bin\avrdude.conf:12823]
usb1287 = AT90USB1287 [c:\WinAVR\bin\avrdude.conf:12634]
usb1286 = AT90USB1286 [c:\WinAVR\bin\avrdude.conf:12445]
usb647 = AT90USB647 [c:\WinAVR\bin\avrdude. conf:12257]
usb646 = AT90USB646 [c:\WinAVR\bin\avrdude.conf:12068]
m32u4 = ATmega32U4 [c:\WinAVR\bin\avrdude.conf:11880]
t84 = ATtiny84 [c:\WinAVR\bin\avrdude.conf:11697]
t44 = ATtiny44 [c:\WinAVR\bin\avrdude.conf:11515]
t24 = ATtiny24 [c:\WinAVR\bin\avrdude.conf:11333]
m128rfa1 = ATMEGA128RFA1 [c:\WinAVR\bin\avrdude.conf:11145]
m2561 = ATMEGA2561 [c:\WinAVR\bin\avrdude.conf:10951]
m2560 = ATMEGA2560 [c:\WinAVR\bin\avrdude.conf:10758]
m1281 = ATMEGA1281 [c:\WinAVR\bin\avrdude.conf:10570]
m1280 = ATMEGA1280 [c:\WinAVR\bin\avrdude.conf:10381]
m640 = ATMEGA640 [c:\WinAVR\bin\avrdude.conf:10193]
t85 = ATtiny85 [c:\WinAVR\bin\avrdude.conf:10012]
t45 = ATtiny45 [c:\WinAVR\bin\avrdude.conf:9833]
t25 = ATtiny25 [c:\WinAVR\bin\avrdude.conf:9653]
pwm3b = AT90PWM3B [c:\WinAVR\bin\avrdude. conf:9472]
pwm2b = AT90PWM2B [c:\WinAVR\bin\avrdude.conf:9289]
pwm3 = AT90PWM3 [c:\WinAVR\bin\avrdude.conf:9106]
pwm2 = AT90PWM2 [c:\WinAVR\bin\avrdude.conf:8922]
t2313 = ATtiny2313 [c:\WinAVR\bin\avrdude.conf:8735]
m328p = ATMEGA328P [c:\WinAVR\bin\avrdude.conf:8547]
t88 = attiny88 [c:\WinAVR\bin\avrdude.conf:8361]
m168 = ATMEGA168 [c:\WinAVR\bin\avrdude.conf:8173]
m88 = ATMEGA88 [c:\WinAVR\bin\avrdude.conf:7987]
m48 = ATMEGA48 [c:\WinAVR\bin\avrdude.conf:7800]
t861 = ATTINY861 [c:\WinAVR\bin\avrdude.conf:7612]
t461 = ATTINY461 [c:\WinAVR\bin\avrdude.conf:7423]
t261 = ATTINY261 [c:\WinAVR\bin\avrdude.conf:7234]
t26 = ATTINY26 [c:\WinAVR\bin\avrdude.conf:7077]
m8535 = ATMEGA8535 [c:\WinAVR\bin\avrdude.conf:6919]
m8515 = ATMEGA8515 [c:\WinAVR\bin\avrdude. conf:6761]
m8 = ATMEGA8 [c:\WinAVR\bin\avrdude.conf:6600]
m161 = ATMEGA161 [c:\WinAVR\bin\avrdude.conf:6460]
m32 = ATMEGA32 [c:\WinAVR\bin\avrdude.conf:6285]
m6490 = ATMEGA6490 [c:\WinAVR\bin\avrdude.conf:6092]
m649 = ATMEGA649 [c:\WinAVR\bin\avrdude.conf:5907]
m3290p = ATMEGA3290P [c:\WinAVR\bin\avrdude.conf:5724]
m3290 = ATMEGA3290 [c:\WinAVR\bin\avrdude.conf:5539]
m329p = ATMEGA329P [c:\WinAVR\bin\avrdude.conf:5354]
m329 = ATMEGA329 [c:\WinAVR\bin\avrdude.conf:5170]
m169 = ATMEGA169 [c:\WinAVR\bin\avrdude.conf:4990]
m163 = ATMEGA163 [c:\WinAVR\bin\avrdude.conf:4832]
m162 = ATMEGA162 [c:\WinAVR\bin\avrdude.conf:4636]
m1284p = ATMEGA1284P [c:\WinAVR\bin\avrdude.conf:4446]
m644p = ATMEGA644P [c:\WinAVR\bin\avrdude.conf:4254]
m644 = ATMEGA644 [c:\WinAVR\bin\avrdude. conf:4064]
m324p = ATMEGA324P [c:\WinAVR\bin\avrdude.conf:3873]
m164p = ATMEGA164P [c:\WinAVR\bin\avrdude.conf:3682]
m16 = ATMEGA16 [c:\WinAVR\bin\avrdude.conf:3504]
c32 = AT90CAN32 [c:\WinAVR\bin\avrdude.conf:3313]
c64 = AT90CAN64 [c:\WinAVR\bin\avrdude.conf:3123]
c128 = AT90CAN128 [c:\WinAVR\bin\avrdude.conf:2933]
m128 = ATMEGA128 [c:\WinAVR\bin\avrdude.conf:2755]
m64 = ATMEGA64 [c:\WinAVR\bin\avrdude.conf:2574]
m103 = ATMEGA103 [c:\WinAVR\bin\avrdude.conf:2434]
8535 = AT90S8535 [c:\WinAVR\bin\avrdude.conf:2313]
8515 = AT90S8515 [c:\WinAVR\bin\avrdude.conf:2199]
4434 = AT90S4434 [c:\WinAVR\bin\avrdude.conf:2116]
4433 = AT90S4433 [c:\WinAVR\bin\avrdude.conf:1992]
2343 = AT90S2343 [c:\WinAVR\bin\avrdude.conf:1868]
2333 = AT90S2333 [c:\WinAVR\bin\avrdude. conf:1740]
2313 = AT90S2313 [c:\WinAVR\bin\avrdude.conf:1627]
4414 = AT90S4414 [c:\WinAVR\bin\avrdude.conf:1514]
1200 = AT90S1200 [c:\WinAVR\bin\avrdude.conf:1399]
t15 = ATtiny15 [c:\WinAVR\bin\avrdude.conf:1266]
t13 = ATtiny13 [c:\WinAVR\bin\avrdude.conf:1093]
t12 = ATtiny12 [c:\WinAVR\bin\avrdude.conf:960]
t11 = ATtiny11 [c:\WinAVR\bin\avrdude.conf:896]
В этом списке указаны псевдонимы всех чипов микроконтроллеров, о которых знает avrdude. Большинство из них программируются через интерфейс ISP.
Обратите внимание, что названия моделей чипов t2313 и 2313, m8 и m88, c128 и m128 выглядят очень похоже, но на самом деле это абсолютно разные модели микроконтроллеров! Поэтому во избежание ошибки советую Вам вместо псевдонима чипа ввести его полное имя. Т. е. вместо t2313 используйте attiny2313, или вместо m8 используйте atmega8. Avrdude достаточно умен, чтобы распознать правильно тип чипа по его полному имени.
Внимательно проверьте модель программируемого чипа по маркировке на его верхней стороне корпуса. К примеру, там может быть написано ATTINY2313 и ATMEGA8, Суффиксы -20PI и -16PC в маркировке просто указывают скоростные параметры микроконтроллера, и при программировании на эти суффиксы не стоит обращать внимания.
[-P port]
Эта опция говорит avrdude, где искать Ваш подключенный программатор. Если Вы используете устройство, подключенное через USB, то просто примените опцию -P usb или вообще не указывайте её. Утилита avrdude автоматически распознает подключение для программатора, который является устройством USB.
Если Вы используете параллельный (LPTx) или последовательный (COMx) порт для подключения программатора (что сейчас уже почти не актуально, потому что компьютеры с такими портами уже практически не выпускаются), то должны использовать эту опцию, чтобы показать порт, к которому подключен программатор. На операционной системе Windows в 99% случаев это будет lpt1 (для параллельного порта) или com1 (для последовательного порта), но Вы можете всегда проверить это через просмотр раздела «Ports (COM & LPT)», по-русски это раздел «Порты (COM и LPT)» дерева Device Manager (Менеджер Устройств). Откройте управляющую панель System Properties (Свойства Системы), и выберите закладку Hardware (Оборудование):
Кликните на кнопке Device Manager (Менеджер Устройств), и разверните пункт Ports (Порты).
Здесь будут перечислены все имеющиеся на компьютере параллельные и последовательные порты. Может быть несколько последовательных портов, но обычно параллельный порт (так называемый порт принтера) только один.
На компьютерах Mac не бывает традиционных параллельных и последовательных портов. Однако если Вы используете адаптер USB-serial (что делает возможным использовать программаторы STK500 или AVRISP v1 вместе с компьютером Mac), то для avrdude нужно указать последовательный порт. Не пока знаю надежного способа определять порт подключения, однако использую для этого окно терминала, где нужно ввести команду ls -l /dev/cu.* (скорее всего, на Linux подойдет примерно такой же способ, или можно использовать команду dmesg). Ниже приведен скриншот примера вывода этой команды.
/dev/cu.Bluetooth это встроенный порт bluetooth, он не нужен. /dev/cu.modem это модем (если он имеется на Вашем компьютере), его также не нужно использовать. Обратите внимание на порты наподобие /dev/cu.usbserial или /dev/cu.KeySerial1. В моем случае это порт /dev/cu.usbserial-FTCTYG5U.
[-U memtype:r|w|v:filename:format]
Это опция, которая описывает, как реально будут записываться данные в программируемый микроконтроллер. Команда выглядит довольно сложной, но мы рассмотрим её по частям.
memtype может быть либо flash, либо eeprom, либо hfuse (старший байт фьюзов), либо lfuse (младший байт фьюзов) или efuse (расширенный байт фьюзов).
r|w|v может быть либо r (read, чтение), w (write, запись), v (verify, проверка).
filename имя входного (для записи или проверки) или выходного (для чтения) файла.
[:format] не обязательная опция, указывающая формат файла. Можно опустить эту опцию при записи, но для чтения указывайте i, чтобы выходной файл получил формат Intel Hex [7] (это наиболее распространенный формат файла).
Для примера, чтобы записать файл firmware.hex в память программ (flash), используйте команду -U flash:w:firmware.hex, чтобы проверить содержимое памяти eeprom на соответствие файлу mydata.eep, используйте команду -U eeprom:v:mydata.eep, и для чтения младшего байта фьюзов используйте команду -U lfuse:r:lfusefile.hex:i.
Lm016l описание на русском
Даташит поиск по электронным компонентам в формате pdf на русском языке. Бесплатная база содержит более 1 000 000 файлов доступных для скачивания. Воспользуйтесь приведенной ниже формой или ссылками для быстрого поиска (datasheet) по алфавиту.Если вы не нашли нужного Вам элемента, обратитесь к администрации проекта .
Рис.1 ЖКИ на базе контроллера HD44780
По отношению к обыкновенным 7-сегментным, ЖКИ модули на базе контроллера HD44780 обладают на порядок большими возможностями. Количество строк на экране у разных моделей — 1,2 или 4; число символов в строке: 8,10,16,20,24,30,32 или 40. Каждое знакоместо на дисплее представляет собой матрицу размером 5×8 точек. Индикатор может иметь светодиодную или люминесцентную подсветку практически любого цвета свечения. На рис.1 показан внешний вид модуля A162-D фирмы Ampire с разрешением 16 символов x 2 строки. Напряжение питания контроллера HD44780 5В (реже 3В). Ток потребления контроллера очень мал(100…200 мкА), чего не скажешь о светодиодной подсветке. В зависимости от производителя, его величина составляет 80…120 мА. Для работы некоторых типов ЖКИ может потребоваться дополнительный источник напряжения отрицательной полярности. Технология производства модулей подобного рода непрерывно совершенствуется, что, в целом, положительно сказывается на их размерах и электрических характеристиках.
Рис.2 Таблица символов CGRAM
Изначально HD44780 имеет предопределенную таблицу символов, размещенную в ОЗУ знакогенератора CGRAM (Character Generator RAM). Для отображения любого из них программа микроконтроллера должна передать координаты позиции и, непосредственно за ними, сам адрес символа из CGRAM. Пример таблицы CGRAM приведен на рис.2. Заглавные и прописные буквы латинского алфавита, числовые знаки, а также большинство знаков препинания совпадают в ней с кодами ASCII. Набор символов, размещенных по адресам 0xA0…0xFF, содержит национальный алфавит (в данном случае кириллицу) того региона, где предполагается его использование. Первые 16 ячеек CGRAM имеют особое значение. При желании, в них могут быть записаны любые пользовательские символы, которых нет таблице (сразу после включения модуля в них находится случайная информация). Упростить преобразование строки, состоящей из букв русского и английского алфавитов, в набор кодов HD44780, можно с помощью утилиты «HD44780» (внешний вид на рис. 3). Все, что делает эта программа – приводит в соответствие набор введенных символов с их отображением в таблице CGRAM. Результатом преобразования является набор байтов (с нулевым значением в конце), начинающихся с директивы резервирования FLASH-памяти программ .db.
Рис.3 Утилита HD44780
Нумерация и Функциональное назначение выводов ЖКИ приведены в табл.1. Кроме напряжения питания контроллера VCC, модуль имеет вход регулировки контрастности изображения V0. Питание подсветки (если таковая имеется) подается на выводы A и K.
Рис.4 Последовательность передачи данных в HD44780
а — по 8-разрядной шине команд/данных
б — по 4-разрядной шине команд/данных
HD44780 взаимодействует с AVR через 8-битную двунаправленную шину команд/данных DB7:DB0. Временная диаграмма работы шины показана на рис.4а. В момент записи информации в ЖКИ ведущий микроконтроллер выставляет на линиях DB7…DB0 8-разрядный код, после чего формирует на выводе E стробирующий импульс (активный фронт – задний). По окончанию импульса должна быть выдержана пауза до начала новой транзакции. Признаком записи команды/ данных является состояние линии RS. При RS=0 происходит запись команды, при RS=1 – данных. Когда необходимо считать данные из индикатора, то выводы порта DB7:DB0 микроконтроллера настраиваются на ввод. Затем следует импульс подтверждения на линии E и байт данных переписывается во внутренний регистр для дальнейшей обработки. Направление передачи данных определяет уровень на линии R/W (R/W =1 – чтение из индикатора, R/W =0 – запись в индикатор). В реальных приложениях, как правило, нет необходимости в чтении данных. Поэтому вывод R/W всегда соединяют с общим проводом. Схема подключения AVR к A162-D приведена на рис.5a.
Рис.5 Схема подключения символьного ЖКИ к микроконтроллеру
а — при использовании 8-разрядной шины команд/данных
б — при использовании 4-разрядной шины команд/данных
Для управления ЖКИ может быть использован также 4-проводный интерфейс (см. схему подключения на рис. 5б), что позволяет сэкономить 4 линии ввода-вывода, при незначительном усложнении программы.
Табл.1. Функциональное назначение выводов символьного ЖКИ на базе D44780:
Номер вывода
Название выводов
Функциональное назначение
Напряжение управления контрастностью
Выбор записи команды/данные
Выбор направления передачи данных запись/чтение
Вход тактовых импульсов
Анод светодиодной подсветки
Катод светодиодной подсветки
Табл.2а. Команды записи в HD44780:
Состояние линий, при R/W=0
Максимальное
время
выполнения,
мкс
Полная отчистка дисплея и установка курсора в нулевую позицию.
Установка курсора в нулевую позицию. Установка дисплея в начальное положение.
I/D(Increment/Decrement) — направление сдвига курсора после записи (I/D=1 — сдвиг вправо, I/D=0 – сдвиг влево). S(Shift) – разрешение сдвига дисплея вместе с курсором (S=1 — сдвиг разрешен, S=0 — сдвиг запрещен).
D(Display) – включение дисплея (D=1 — дисплей включен, D=0 — дисплей отключен). C(Cursor)- видимость курсора (C=1 – видимый курсор, C=0 – погашенный курсор). B(Blink) — мигание курсора (B=1 – курсор мигает, B=0 – курсор не мигает).
S/C(Screen/Cursor) – перемещение дисплея/курсора (S/C=1 – перемещается дисплей, S/C=0 – перемещается курсор). R/L(Right/Left)- направление перемещения дисплея/курсора (R/L=1 – перемещение вправо, R/L=0 – перемещение влево).
DL(Data Length) – разрядность шины данных (DL=1 – 8 бит, DL=0 – 4 бита). N(Number)- число строк дисплея (N=1 – 2 строки, N=0 – 1 строка). F(Font) – размер шрифта (F=1 – шрифт 5×10 точек, F=0 – шрифт 5×7 точек).
Установка адреса CGRAM (Character Generator RAM). После команды должны следовать данные для записи/чтения в/из CGRAM.
Установка адреса DDRAM (Display Data RAM). После команды должны следовать данные для записи/чтения в/из DDRAM.
Запись данных в DDRAM (Display Data RAM) или CGRAM (Character Generator RAM).
Табл.2б. Команды чтения из HD44780:
Состояние линий, при R/W=1
Максимальное время выполнения, мкс
Чтение BF (Busy Flag) – флаг завершения операции (BF=1 – операция завершена, BF=0 – операция не завершена) и текущего состояния внутреннего счетчика адреса AC (Address Counter).
Чтение данных из DDRAM (Display Data RAM) или CGRAM (Character Generator RAM).
В этом случае 4-разрядную шину команд/данных формируют линии DB7…DB4 (линии DB3…DB0 остаются незадействованными). Скорость записи снижается в 2 раза, но это, обычно, не вызывает ни каких проблем во время работы. Последовательность передачи данных показана на рис.4б. Команды/ данные передается за два такта. Первым следует старший полубайт, вторым – младший. Каждая тетрада, естественно, должна быть зафиксирована импульсом на линии E.
Рис.6 Адреса ячеек видеопамяти DDRAM
Контроллер HD44780 имеет буфер видеопамяти DDRAM (Display Data RAM), из которой символы переносятся на дисплей. Объем DDRAM зависит от числа строк и позиций на экране. Для индикатора с разрешением 16 символов x 2 строки он составляет 40 б на каждую строку (см.рис.6). Адреса ячеек видеопамяти первой строки 0x80…0xA8, второй 0xC0…0xE8. В текущий момент времени в окно дисплея попадают только 16 символов из DDRAM (положение окна можно изменять программно).
Управляющие команды записи сведены в табл.2а. Запись команды с кодом 0x01 приводит к полной отчистки DDRAM и установке окна дисплея и курсора в начальные позиции. Команда 0x02 заставляет проделать те же самые действия, но при этом оставляет содержимое видеопамяти неизменным. Биты команды под номером 3 задают направление смещение курсора (I/D=1 — сдвиг вправо, I/D=0 – сдвиг влево) и разрешение сдвига дисплея (S=1 — сдвиг разрешен, S=0 — сдвиг запрещен) при вводе очередного символа. Биты команды 4 отвечают за режим отображения курсора (B=1 – курсор мигает, B=0 – курсор не мигает; C=1 – видимый курсор, C=0 – погашенный курсор) и работу экрана (D=1 — дисплей включен, D=0 — дисплей отключен). Команду 5 удобно использовать для реализации бегущей строки. С ее помощью можно принудительно перемещать дисплей или курсор (S/C=1 – перемещается дисплей, S/C=0 – перемещается курсор), в произвольном направлении (R/L=1 – перемещение вправо, R/L=0 – перемещение влево). Содержимое DDRAM, в этом случае, остается неизменным. Команда 6 используется только во время начальной инициализации модуля. Она задает тип интерфейса (DL=1 – 8-проводной, DL=0 – 4-проводной), число строк дисплея (N=1 – 2 строки, N=0 – 1 строка) и размер шрифта (F=1 – шрифт 5×10 точек(не используется), F=0 – 5×7 точек).
Рис.7 Пользовательские символы в таблице CGRAM
Команды 7 и 8 предназначены для установки текущего адреса в CGRAM и DDRAM, соответственно, и могут быть использованы только совместно с командой записи данных 9 (либо с командой чтения 2, из табл.2б, о чем будет сказано ниже). После установки курсора в памяти DDRAM, команда 9 должна передавать адрес символа(0…0xFF) из таблицы CGRAM для его отображения в соответствующей позиции.
Комбинация команд 7 и 9 необходима при программирования пользовательских символов в CGRAM по адресам 0…0x0F. Для записи каждого символа потребуется 8 б памяти микроконтроллера. Полезную информацию будут нести в себе только 5 младших разрядов, соответствующих 5-ти столбцам матрицы (см. рис.7). Логической единице соответствует видимая точка на дисплее.
После установки адреса в ОЗУ знакогенератора, должен следовать 8-байтовый блок данных. Возможна запись нескольких символов подряд. Так, например, чтобы запрограммировать все 16 символов, нужно передать команду 0x40 (установить нулевой адрес в CGRAM), а за ней 16*8 = 128 б данных.
Команды чтения из индикатора приведены в табл.2б. С помощью первой команды может быть считано текущее содержимое счетчика адреса AC в DDRAM и состояние флага завершения операции BF (при BF=1 операция чтения/записи завершена). Команда 2 должна следовать после команды записи 7 или 8 из табл.2а и позволяет считать символы размещенные в CGRAM либо DDRAM.
Как уже говорилось выше, команды чтения не имеют никакой практической ценности. Интерес может представлять только флаг BF. Однако намного удобней программно формировать задержки времени, гарантирующие завершение операций чтения/записи, чем постоянно опрашивать состояние флага окончания операции. Необходимость использования линии R/W при этом также отпадает.
Набор подпрограмм для работы с символьным ЖКИ приведен выше. Подпрограммы write_com, write_dat производят запись команд и данных соответственно. Подпрограмма show_char выводит символ на экран дисплея; show_string переписывает строку, хранящуюся во FLASH-памяти программ, в DDRAM индикатора. Обе подпрограммы в качестве параметров принимаю начальные координаты записи — строку и столбец. В show_string, кроме этого необходимо передать еще и указатель на строку в регистре ZH:ZL.
Отдельно следует сказать о подпрограмме инициализации hd44780_init, которая должна быть вызвана после подачи напряжения питания на модуль. Только в ней могут возникнуть некоторые проблемы. Последовательность команд в ходе этой процедуры может иметь небольшие различия у индикаторов разных типов. Поэтому необходимо обращаться к технической документации на конкретную модель. Неправильная инициализация, обычно, приводит к полной неработоспособности исправного экземпляра.
Перейти к следующей части: Аналоговый вывод
Форум по AVR
Рассмотрим взаимодействие пользователя и устройства на базе микроконтроллера. Очень часто пользователю нужно чем-то вводить информацию, и с чего-то ее считывать. Для этих целей очень хорошо подходит клавиатура и дисплей (заметка про считывание клавиши).Рассмотрим взаимодействие пользователя и устройства на базе микроконтроллера. Очень часто пользователю нужно чем-то вводить информацию, и с чего-то ее считывать. Для этих целей очень хорошо подходит клавиатура и дисплей (заметка про считывание клавиши). В этой заметке рассмотрим поподробнее отображение информации на символьном ЖКИ со знакосинтезирующим контроллером HD44780.
Такие индикаторы часто используются при проектировании цифровых устройств, поэтому с ним необходимо уметь работать.
Рассмотрим типовое внутреннее строение знакосинтезирующего ЖКИ:
Внутренняя структура HD44780
В основе ЖКИ лежит матрица из жидких кристаллов, подавая напряжение на элемент которой мы можем «зажечь» точку на экране. В нашем случае матрица состоит из знакомест (чаще всего 8х5 пикселей), сгруппированых в несколько рядков. Этим всем управляет встроенный контроллер HD44780. У контроллера есть однобайтные ячейки памяти (DDRAM), содержимое которых собственно отображается на экране согласно таблице записанной в CGRAM. Ячеек памяти обычно больше чем знакомест в ЖКИ, поэтому адресацию знакомест нужно смотреть в даташите. То есть нам необходимо только в нужную позицию записать код нужного знака, а все остальное HD44780 сделает сам.
Для выбора позиции существует виртуальный курсор (номер текущей ячейки памяти, АС), которым можно управлять посредством команд, курсор можно сделать видимым. По умолчанию при записи символа в ячейку, курсор сдвигаеться вперед на одну позицию. Коды символов для ЖКИ поддерживающего кириллицу можно увидеть в таблице:
Старшая тетрада кода будет равна ряду выбранного символа, а младшая – строке. Можно создать свою таблицу символов, записав ее в CGRAM. На каждый символ требуется 5 байт, где единицы отвечают за «зажженные» пиксели. Например, цифра «8» кодируется последовательностью 0x6c,0x92,0x92,0x92,0x6c.
Коды команд приведены в таблице.
Таблица символов HD44780
Значения флагов:
Остается открытым вопрос: «как записать в нужную позицию код требуемого символа»? Для этого рассмотрим за что отвечают выводы ЖКИ. Выводы DB0-DB7 отвечают за входящие/исходящие данные. Высокий уровень на выводе RS дает индикатору понять, что сигнал на выводах DB0-DB7 является данными, а низкий – командой. Вывод W/R отвечает за направление данных, пишутся ли данные в память или читаются из нее (обычно чтение из ЖКИ не используется, можем смело на него подать низкий уровень). Импульс на выводе Е (длительностью не менее 500 нс) используется как сигнал для записи/чтения данных с выводов DB0-DB7, RS и W/R.
Вывод V0 используется для задания контраста изображения, вывода А,К – для питания подсветки (если она есть в вашей модели ЖКИ). Оставшиеся 2 вывода – собственно питание ЖКИ. То есть, для управления ЖКИ потребуется 8+1+1=10 выводов. Но можно работать в режиме 4-х битного интерфейса. При этом, сперва будет передавать старшая тетрада команды/данных на выводах DB4-DB7, а после – младшая. Выводы при DB0-DB3 при этом не используются. Итого для управления требуется 6 выводов микроконтроллера.
Теперь рассмотрим живой пример. Напишем программу для вывода текста «avrlab.com» на имеющийся у меня в наличии Wh2602А (2 строки по 16 символов).
Для других ЖКИ следует сверить соответствие ячеек DDRAM знакоместам. Схема подключения ЖКИ к контроллеру выглядит так.
Схема подключения к микроконтроллеру AVR
Резистор R3 — 17 Ом ограничивает ток через подсветку, а переменный VR1 задает контраст (если все правильно подключено и запрограммировано, но индикатор молчит, покрутите VR1, чтобы изображения стало видимым). Также не в коем случае не следует путать полярность ЖКИ, питать его выше 5,5В, со своего опыта могу сказать, что горят они моментально. Назначение всех остальных деталей такое же как в макетной платы для ATtiny2313.
Теперь перейдем к написанию программы. Для контроля индикатора напишем программу с несколькими ключевыми функциями работы с ЖКИ: lcd_dat(unsigned char x) – для записи данных х, lcd_com(unsigned char x) – для записи команды х, lcd_init(void) – для начальной инициализации индикатора:
Программа очень проста, разобраться в ней не составит труда любому, кто хоть немного владеет C для AVR. Для латиницы и цифр ASCII коды совпадают с зашитыми в знакогенератор ЖКИ, поэтому позволительно использовать lcd_dat(‘A’). Можно создать свою библиотеку для работы с ЖКИ, выделив функции lcd_dat(unsigned char x), lcd_com(unsigned char x), lcd_init(void) в отдельный модуль LCD.h и подключать его за надобностью.
Эта затея очень экономит время, стоит только один раз написать нужные функции, а потом все время их только использовать. Также можно подметить, что неудобно выводить длинную фразу по одной букве, для этого можно нашу выводимую строку запихнуть в массив из unsigned char и выводить с помощью цикла:
Только не стоит забывать, что нумерация массивов в С начинается с нуля. Существующую программу можно без существенных изменений использовать совместно с контроллером ATtiny2313, подключив ЖКИ к PORTB, та как PORTD у ATtiny2313 имеет всего 7 выводов, а не 8, как у ATmega8.
Также советую подключать ЖКИ с помощью разъемных соединений. Очень удобно при отладке программы, когда нужно вывести некоторые промежуточные данные. Подсоединил один разъем и всего дела. В продолжение этой заметки в ближайшее время рассмотрю ввод с матричной клавиатуры 4х4 и отображение считанной информации на ЖКИ.
Всем хорошего дня 😉
есть маленький недочет в этом примере
есть маленький недочет в этом примере, возможно по этой причине у многих не работает пример!
вобщем пример лаконичен и прост, поэтому в глаза не бросается маленький недочет(тем кто ориентируется в языке «С»), и уж тем более тем кто только только знакомится с AVR и языком «С», возможно они даже недоумевают как так. пишут сделайте так и будет как на картинке. а не тут то было.
вобщем вся проблема с циклами задержки, для того чтоб дисплей поспевал за контроллером, а именно в функции-
//Программа формирвоания задержки
void pause (unsigned int a)
вроде на первый взгляд все верно, но компиляторы для микроконтроллеров стремятся оптимизировать код для максимальной компактности получаемого образа флешь памяти программ. и не видя никакого смысла в пустом цикле и соответственно далее по цепочке за ним: все вызовы, объявления констант и всего связанного с этой безсмысленно по его разумению функцией. попросту убирает это из кода во время сборки.
по крайней мере это справедливо для atmel studio 6.1, и в этом можно убедится просмотрем папку проэкта, там есть *.lss файл содержащий асемблерный код данной программы, генерируемы при сборке проекта. никакого намека на реализацию функции void pause.
в итоге при прошивке контроллера на дисплее получается случайный мусор или пустота. при нажатии несколько раз на ресет мусор может исчезать и вновь появлятся. явно на лицо расссинхронизация проца и экрана
а вот если сделать маленькую поправку
void pause (unsigned int a)
. то для компилятора это обретает смысл, это так же подтверждается явным появлением реализации функции в асемблерном коде
:
6c: 9c 01 movw r18, r24
6e: 03 c0 rjmp .+6 ; 0x76
70: 00 00 nop
72: 21 50 subi r18, 0x01 ; 1
74: 31 09 sbc r19, r1
76: 21 15 cp r18, r1
78: 31 05 cpc r19, r1
7a: d1 f7 brne . -12 ; 0x70
и скорей всего все заработает. покрайней мере у меня на atmega16 (внутренняя RC синхронизация 1Mhz) и использовании atmel studio 6.1 было именно так. возможно на др частотах придется поигратся с константой #define TIME 10 и/или значениями передаваемыми функции void pause
вот здесь-> pause(значение) . или pause(значение*TIME) .
удачи в обучении управлению AVR!
Большое спасибо! Сам замечал
Большое спасибо! Сам замечал пару раз проблемы именно с паузами и циклам (я большие пацзы через циклы или через вложенные циклы делал).
Это потому что пример он дает
Это потому что пример он дает от себя, а в архиве лежит совсем другой проект))
модуляция в proteus
модулировал схему в протус результат 0
так же как и с GPS трекером
визуально отличный код, достаточно простой но в протеус не работает
То есть у тебя притензии
То есть у тебя притензии какие-то?
Или ты просишь помощи? Определись и от этого будет зависеть мой ответ.
вот мои исходники + протеус
все что смог закоментировал. думаю что разобраться будет не сложно!
bonus: даташит на контролер от хитачи
Может я что-то не понял а
Может я что-то не понял а может на работе стоит блокиратор рапидшары, но я совсем не ашел кнопки «Скачать»
Там кнопку Get Free запрятали
добавьте в htaccess для rar
добвьте строчку AddType «application/x-rar-compressed» .rar в .htaccess,
чтобы архивные файлы нормально загружались.
Если не сложно поясните плз.
I/D
S
S/C
R/L
Поясните плз. их смысл более подробно.
Смотри, представь что ЖКИ —
Смотри, представь что ЖКИ — пишущая машинка, бумага в машинке — память ЖКИ, каретка — указатель курсора. Кроме того ЖКИ на экран выводит не все содержимое памяти, а лишь часть. Вроде как некоторое окно, которое мы налаживаем на нашу бумагу с текстом.
Вот I/D задает как мы будем печатать, справа-налево или слева-направо.
S определяет, будем ли мы сдвигать окно экрана вслед за тем, как печатаем или нет.
S/C — просто смещает видимое окно экрана или каретку машинки.
R/L — уточняет куда (влево или вправо) мы будем сдвигать экран или курсов с помощью флага S/C.
AVR. Учебный курс. Передача данных через UART
Почти каждый микроконтроллер имеет на борту универсальный последовательный интерфейс — UART. AVR тут не исключение и поддерживает этот протокол в полном обьеме полностью аппаратно. По структуре это обычный асинхронный последовательный протокол, то есть передающая сторона по очереди выдает в линию 0 и 1, а принимающая отслеживает их и запоминает. Синхронизация идет по времени — приемник и передатчик заранее договариваются о том на какой частоте будет идти обмен. Это очень важный момент! Если скорость передатчика и приемника не будут совпадать, то передачи может не быть вообще, либо будут считаны не те данные.
Протокол
Вначале передатчик бросает линию в низкий уровень — это старт бит. Почуяв что линия просела, приемник выжидает интервал Т1 и считывает первый бит, потом через интервалы Т2 выковыриваются остальные биты. Последний бит это стоп бит. Говорящий о том, что передача этого байта завершена. Это в самом простом случае.
В конце байта, перед стоп битом, может быть и бит четности. Который получается если поксорить между собой все биты, для контроля качества передачи. Также может быть два стопа, опять же для надежности. Битов может быть не 8, а 9. О всех этих параметрах договариваются на берегу, до начала передачи. Самым же популярным является 8 бит, один старт один стоп, без четности.
Причем с самим протоколом можно не заморачиваться — все реализовано аппаратно. Разве что захочется завести второй UART, тогда придется делать его программно.
По такому же протоколу работает COM порт компьютера, разница лишь в разнице напряжений, поэтому именно этот протокол я буду использовать для связи микроконтроллера с компом. Для преобразования напряжений можно использовать RS232-TTL конвертер. Мы же применим встроенный в Pinboard мост USB-UART который образовывает в системе виртуальный COM PORT
Аппаратная часть
Ну тут все просто, соединяем крест-накрест приемник с передатчиком и готово.
Внутри же вначале находится накопительный сдвиговый регистр, в котором происходит сборка байта из битов и регистры данных UDR, куда этот бит передается. Такая структура исключает возможность считать не до конца полученный байт.
Буфер приема состоит из двух байт, что позволяет ему держать два в уме и один еще засасывать в сдвиговый регистр.
Использование UART’a
У AVR есть регистр UDR это UART Data Register (в некоторых контроллерах он может зваться UDR0 или еще как нибудь похоже). На самом деле это два разных регистра, но имеют один адрес. Просто на запись попадает в один (регистр передатчика), а на чтение берет из другого (регистр приемника). Таким образом достаточно просто пихать данные в этот регистр и они улетят приемнику, и, наоборот, считывать их оттуда по приходу.
О том, что байт пришел в регистр UDR нам скажет прерывание по завершению приема, которое вызывается сразу же, как приемник засосет в себя все биты (обычно 8, но может быть и 9, в зависимости от настройки).
Поскольку передача идет довольно медленно, то бездумно пихать данные в регистр UDR нельзя — нужно дождаться окончания передачи предыдущего байта. О том, что UDR пуст и готов к приему нового байта сигнализирует бит UDRE, он же вызовет аппаратное прерывание по опустошению буфера.
Так что постоянно следить за UART вручную не нужно, все обслуживание можно повесить на прерывания и он сам будет все делать. Можно в памяти организовать буфер и туда тупо пихать данные, а на прерывании по опустошению UDR следить за тем есть ли что в буфере и если есть — отправлять.
А по приему, не тупить, а также, по прерыванию, пихать данные в ОЗУ, но уже в буфер приема, откуда их считает уже программа.
Настройка UART
Все настройки приемопередатчика хранятся в регистра конфигурации. Это UCSRA, UCSRB и UCSRС. А скорость задается в паре UBBRH:UBBRL.
Досконально все расписывать не буду — на это есть даташит. Напишу лишь то, что жизненно необходимо.
Регистр UCSRA
Тут нам интересны только биты RXC и TXC это флаги завершения приема и передачи, соответственно. RXC встанет когда непрочитанный байт вылезет в регистр UDR, а TXC встает когда последний стоп-бит прошел, а новое значение в UDR не поступило. Т.е. после прохода всех байтов.
Также одновременно с этими флагами вызывается прерывание (если оно было разрешено). Сбрасываются они аппаратно — принимающий после чтения из регистра UDR, передающий при переходе на прерывание, либо программно (чтобы сбросить флаг программно в него надо записать 1)
Биты UDRE сигнализирует о том, что регистр UDR приемника пуст и в него можно пихать новый байт. Сбрасывается он аппаратно после засылки в UDR какого либо байта. Также генерируется прерывание «Регистр пуст»
Бит U2X — это бит удвоения скорости при работе в ассинхронном режиме. Его надо учитывать при расчете значения в UBBRH:UBBRL
Регистр UCSRB
Тут в первую очередь это биты RXEN и TXEN — разрешение приема и передачи. Стоит их сбросить как выводы UART тут же становятся обычными ножками I/O.
Биты RXCIE, TXCIE, UDRIE разрешают прерывания по завершению приема, передачи и опустошении буфера передачи UDR.
Регистр UCSRC
Самый прикол тут — это бит селектора URSEL дело в том, что по неизвестной причине создаетели решили сэкономить байт адреса и разместили регистры UCSRC и UBRRH в одной адресном пространстве. А как же определять куда записать? А по старшему биту! Поясню на примере. Если мы записываем число у которого седьмой бит равен 1, то оно попадет в UCSRC, а если 0 то UBRRH. Причем этот бит есть не во всех AVR в новых моделях его нет, а регистры имеют разные адреса. Так что надо смотреть в даташите этот момент — есть там бит URSEL или нет.
Остальные биты задают число стопов, наличие и тип контроля четности. Если оставить все по дефолту то будет стандартный режим. Надо только выставить формат посылки. Делается это битами UCSZ0, UCSZ1 и UCSZ2 (этот бит тусуется в регистре UCSRB). Для стандартной 8ми битной посылки туда надо записать две единички.
Скорость обмена.
Тут все зависит от пары UBBRx
Вычисляется требуемое значение по формуле:
UBBR=XTAL/(16*baudrate)-1 для U2X=0
UBBR=XTAL/(8*baudrate)-1 для U2X=1
Где:
XTAL — рабочая тактовая частота контроллера.
baudrate — требуемая скорость (я люблю 9600 🙂 — чем медленней тем надежней. 9600 в большинстве случаев хватает)
Ошибки передачи
К сожалению мир наш не идеален, поэтому возможны ошибки при приеме. За них отвечают флаги в регистре UCSRA
FE — ошибка кадрирования. Т.е. мы ждали стоп бит, а пришел 0.
OR — переполнение буфера. То есть данные лезут и лезут, а из UDR мы их забирать не успеваем.
PE — не совпал контроль четности.
Примеры кода
Простая приемка и отправка байт. Без использования прерываний.
Для начала инициализация UART в ATMega16 (А таже в Mega8535/8/32 и многих других).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | ; Internal Hardware Init ====================================== .equ XTAL = 8000000 .equ baudrate = 9600 .equ bauddivider = XTAL/(16*baudrate)-1 uart_init: LDI R16, low(bauddivider) OUT UBRRL,R16 LDI R16, high(bauddivider) OUT UBRRH,R16 LDI R16,0 OUT UCSRA, R16 ; Прерывания запрещены, прием-передача разрешен. LDI R16, (1<<RXEN)|(1<<TXEN)|(0<<RXCIE)|(0<<TXCIE)|(0<<UDRIE) OUT UCSRB, R16 ; Формат кадра - 8 бит, пишем в регистр UCSRC, за это отвечает бит селектор LDI R16, (1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1) OUT UCSRC, R16 |
1 2 3 4 5 6 | ; Процедура отправки байта uart_snt: SBIS UCSRA,UDRE ; Пропуск если нет флага готовности RJMP uart_snt ; ждем готовности - флага UDRE OUT UDR, R16 ; шлем байт RET ; Возврат |
1 2 3 4 5 6 7 8 9 | ;Посылка байта: RCALL uart_init ; вызываем нашу процедуру инициализации. Main: LDI R16,'E' ; загоняем в регистр код буквы «E» RCALL uart_snt ; Вызываем процедуру отправки байта. NOP ; Любой дальнейший код NOP NOP |
1 2 3 4 5 6 | ;Ожидание байта uart_rcv: SBIS UCSRA,RXC ; Ждем флага прихода байта RJMP uart_rcv ; вращаясь в цикле IN R16,UDR ; байт пришел - забираем. RET ; Выходим. Результат в R16 |
В главном цикле это выглядит так (я выбросил из главного цикла все что там было для краткости, чтобы в глазах не рябило. Оставил только работу с USART):
1 2 3 4 5 6 7 8 | ; Main ========================================================= Main: RCALL uart_rcv ; Ждем байта INC R16 ; Делаем с ним что-то RCALL uart_snt ; Отправляем обратно. JMP Main |
Если зальешь эту программку в Pinboard и подключишься терминалкой, то на каждый байт контроллер тебе вернет байт следующий по величине. Например на 1 (код 0x31) возвращается 2 (код 0x32). И так далее.
Данный метод прост и работает в лоб. Но имеет одну большую проблему — цикл ожидания прихода байта. В этот момент ничего работать не может. Конечно, можно не зацикливаться наглухо, а просто проверять флаг RxC и крутиться в основном цикле. Но тогда, если передача идет на большой скорости, можно запросто прозевать байт.
Работа на прерываниях
Решение тут одно — использование прерываний хотя бы на прием. А в идеале и на передачу тоже. Сейчас покажу тебе пример буферизированной работы с приемопередатчиком на прерываниях.
Во первых инициализация, она теперь другая — мы разрешаем прерывания:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | ; Internal Hardware Init ====================================== .equ XTAL = 8000000 .equ baudrate = 9600 .equ bauddivider = XTAL/(16*baudrate)-1 uart_init: LDI R16, low(bauddivider) OUT UBRRL,R16 LDI R16, high(bauddivider) OUT UBRRH,R16 LDI R16,0 OUT UCSRA, R16 ; Прерывания разрешены, прием-передача разрешен. LDI R16, (1<<RXEN)|(1<<TXEN)|(1<<RXCIE)|(1<<TXCIE)|(0<<UDRIE) OUT UCSRB, R16 ; Формат кадра - 8 бит, пишем в регистр UCSRC, за это отвечает бит селектор LDI R16, (1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1) OUT UCSRC, R16 RET |
Используем все три прерывания. По приему, по опустошению буфера и по окончании передачи. Но пока разрешаем только два — по приему и по передаче. Иначе при старте мы сразу же ускачем на обработчик UDRIE — буфер то пуст!
В таблицу векторов впишем наши переходы:
1 2 3 4 5 6 | .ORG $016 RJMP RX_OK ; (USART,RXC) USART, Rx Complete .ORG $018 RJMP UD_OK ; (USART,UDRE) USART Data Register Empty .ORG $01A RJMP TX_OK ; (USART,TXC) USART, Tx Complete |
А в секцию обработчиков прерываний добавим нашу процедуру приема:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | RX_OK: PUSHF ; Макрос, пихающий в стек SREG и R16 IN R16,UDR ; Тут главное забрать байт из UDR иначе ; флаг прерывания не снимется ; Дальше, если время позволяет, можно и обработать CPI R16,Value ; Например, разобрать по байтам и выполнить действие BRNE NXT ; Обычным CASE оператором. Action1 ; Делаем что нибудь ценное. Главное не забыть в стеке ; Регистры попрятать. А то будет тебе упячка. NXT: CPI R16,Value2 BRNE RX_Exit Action2 ; Делаем что нибудь ценное2 Rx_Exit: POPF ; Достаем SREG и R16 RETI |
Передача делается побайтно, на вызовах прерываний. Например, надо нам отрыгнуть текстовую строку из флеша:
1 | String: .db "Hello Interrupt Request",0 |
Заводим указатель на эту строку, обычная двубайтная переменная в памяти.
1 2 | .DSEG StrPtr: .byte 2 |
Далее, в главной программе, в любом нужном нам месте, загружаем адрес текстовой строки в этот указатель, не забыв умножить его на два. Т.к. компилятор флеш адресует в словах, а контроллер оперирует только байтами:
1 2 3 4 5 6 7 8 9 | Main: NOP ; Любой произвольный код главной программы NOP NOP LDI R17,low(2*String) ; Берем младший байт LDI R18,High(2*String) ; Берем старший байт STS StrPtr,R17 ; Сохраняем Младший байт STS StrPtr+1,R18 ; Сохраняем Сташрий байт |
И сразу же запускаем передачу, путем разрешения прерываний по UDRE. Так как UDR у нас пуст, то прерывание стартует мгновенно.
1 2 3 4 5 6 7 | LDI R16, (1<<RXEN)|(1<<TXEN)|(1<<RXCIE)|(1<<TXCIE)|(1<<UDRIE) OUT UCSRB, R16 ;После чего спокойно выполняем любой другой код. NOP NOP NOP |
А дальше все сделает наш обработчик прерывания события UDR Empty. На который ссылается вектор прерывания по опустошению регистра UDR:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | UD_OK: PUSHF ; Макрос, сохраняющий SREG и R16 PUSH ZL ; Сохраняем в стеке Z PUSH ZH LDS ZL,StrPtr ; Грузим указатели в индексные регистры LDS ZH,StrPtr+1 LPM R16,Z+ ; Хватаем байт из флеша. Из нашей строки CPI R16,0 ; Если он не ноль, значит читаем дальше BREQ STOP_RX ; Иначе останавливаем передачу OUT UDR,R16 ; Выдача данных в усарт. STS StrPtr,ZL ; Сохраняем указатель STS StrPtr+1,ZH ; обратно, в память Exit_RX: POP ZH ; Все достаем из стека, выходим. POP ZL POPF RETI ; глушим прерывание по опустошению, выходим из обработчика STOP_RX: LDI R16, (1<<RXEN)|(1<<TXEN)|(1<<RXCIE)|(1<<TXCIE)|(0<<UDRIE) OUT UCSRB, R16 RJMP Exit_RX |
Все, по прерыванию обработчик сам выгребет данные из флеша и сам автоматом себя забанит когда дойдет до нуля в строке.
А зачем нужно прерывание TX_OK? Ну мало ли зачем. Еще какое-нибудь событие повесить. Оно сработает когда произойдет две вещи — UDR кончится и в сдвиговом регистре USART все биты улетят в провод. В принципе, многие юзают его вместо UDRE, но тогда между двумя уходящими байтами будет промежуток периодом в 1 байт. Что не очень кошерно.
Буферизация
Но далеко не всегда можно успеть обработать данные с большой скоростью. В этом случае их приходится куда-то складывать. А передавать/обрабатывать попозже. Особенно это касается отправки. Отправка медленная, а нам бы все сразу в буфер свалить и уйти по своим делам. А USART пускай там постепенно со всем этим разбирается.
Поэтому мы заведем два кольцевых буфера. На прием и на передачу (можно и только на передачу, это чаще требуется). А также ряд служебных переменных:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | ; RAM ======================================================== .DSEG .equ MAXBUFF_IN = 10 ; Размер в байтах .equ MAXBUFF_OUT = 10 IN_buff: .byte MAXBUFF_IN ; Буфер приема IN_PTR_S: .byte 1 ; Указатель начала IN_PTR_E: .byte 1 ; Указатель конца IN_FULL: .byte 1 ; Флаг переполнения OUT_buff: .byte MAXBUFF_OUT ; Буфер передачи OUT_PTR_S: .byte 1 ; Указатель начала OUT_PTR_E: .byte 1 ; Указатель конца OUT_FULL: .byte 1 ; Флаг переполнения. |
Указатели начала показывают откуда мы будем буфер читать, указатель конца нацелен на точку записи. В результате конец убегает, а начало его догоняет. Когда они сравняются — буфер пуст. При достижении максимальных границ буфера (10 байт) указатель переносится в начало, т.к. у нас буфер закольцован.
При этом может быть перехлест указателей между собой. Это даст ошибку переполнения и некорректную работу. Поэтому введены флаги переполнения, возникающие если конец пошел по второму кругу и догнал начало.
Сами указатели я сделал не классическими адресами, а смещениями относительно начала каждого буфера, Так получается оптимальней, не приходится сравнивать двубайтные числа. Но при этом длина буфера ограничена 255 байтами.
Прерывание по приему данных пишет в буфер IN_buff
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | RX_OK: PUSHF ; Макрос, пихающий в стек SREG и R16 PUSH R17 PUSH R18 PUSH XL PUSH XH LDI XL,low(IN_buff) ; Берем адрес начала буффера LDI XH,high(IN_buff) LDS R16,IN_PTR_E ; Берем смещение точки записи LDS R18,IN_PTR_S ; Берем смещение точки чтения ADD XL,R16 ; Сложением адреса со смещением CLR R17 ; получаем адрес точки записи ADC XH,R17 IN R17,UDR ; Забираем данные ST X,R17 ; сохраняем их в кольцо INC R16 ; Увеличиваем смещение CPI R16,MAXBUFF_IN ; Если достигли конца BRNE NoEnd CLR R16 ; переставляем на начало NoEnd: CP R16,R18 ; Дошли до непрочитанных данных? BRNE RX_OUT ; Если нет, то просто выходим RX_FULL: LDI R18,1 ; Если да, то буффер переполнен. STS IN_FULL,R18 ; Записываем флаг наполненности RX_OUT: STS IN_PTR_E,R16 ; Сохраняем смещение. Выходим POP XH POP XL POP R18 POP R17 POPF ; Достаем SREG и R16 RETI |
Если возникнет переполнение, то данные начнут затирать предыдущие, произойдет перехлест указателей, но перед этим поднимется флаг IN_FULL и диспетчер, или кто у нас там будет следить за всякими исключениями, может спешно среагировать и выгрузить буфер.
IN_FULL занимает целый байт, но можно было бы в один бит сделать. Я просто не стал усложнять. При чтении и записи в буфер в фоновой программе надо соблюдать атомарность, т.е. запрещать возможность записи в буфер из прерывания. А то будет трудно уловимый косяк.
Чтение из буфера приема делается тоже просто:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | ; Read from loop Buffer ; IN: NONE ; OUT: R17 - Data, ; R19 - ERROR CODE Buff_Pop: CLI ; Запрещаем прерыания. ; Но лучше запретить прерывания конкретно от ; UART, чем запрещать вообще все. LDI XL,low(IN_buff) ; Берем адрес начала буффера LDI XH,high(IN_buff) LDS R16,IN_PTR_E ; Берем смещение точки записи LDS R18,IN_PTR_S ; Берем смещение точки чтения LDS R19,IN_FULL ; Берм флаг переполнения CPI R19,1 ; Если буффер переполнен, то указатель начала BREQ NeedPop ; Равен указателю конца. Это надо учесть. CP R18,R16 ; Указатель чтения достиг указателя записи? BRNE NeedPop ; Нет! Буффер не пуст. Работаем дальше LDI R19,1 ; Код ошибки - пустой буффер! RJMP _TX_OUT ; Выходим NeedPop: CLR R17 ; Получаем ноль STS IN_FULL,R17 ; Сбрасываем флаг переполнения ADD XL,R18 ; Сложением адреса со смещением ADC XH,R17 ; получаем адрес точки чтения LD R17,X ; Берем байт из буффера CLR R19 ; Сброс кода ошибки INC R18 ; Увеличиваем смещение указателя чтения CPI R18,MAXBUFF_OUT ; Достигли конца кольца? BRNE _TX_OUT ; Нет? CLR R18 ; Да? Сбрасываем, переставляя на 0 _TX_OUT: STS IN_PTR_S,R18 ; Сохраняем указатель SEI ; Разрешаем прерывания RET |
Тут только один момент хитрый. Если у нас буфер переполнился, но не перехлестнулся, то его начало и конец совпадают, что как бы сигнализирует о том, что буфер пуст. Но на самом деле он полон непрочитанных данных и об этом сигнализирует флаг переполнения. Поэтому надо вначале проверять его, чтобы при не обходимости игнорировать признак равенства указателей.
На выходе функции Buff_Pop у нас в регистрах идут данные (R17) и код ошибки (R19). Если функция вернула 1, значит буфер пуст и регистр с данными можно игнорировать.
Запись в буфер задача более востребованная и чаще встречающаяся. И делается по аналогии с прерыванием RX
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | ; Load Loop Buffer ; IN R19 - DATA ; OUT R19 - ERROR CODE Buff_Push: CLI ; Запрет прерываний. LDI XL,low(OUT_buff) ; Берем адрес начала буффера LDI XH,high(OUT_buff) LDS R16,OUT_PTR_E ; Берем смещение точки записи LDS R18,OUT_PTR_S ; Берем смещение точки чтения ADD XL,R16 ; Сложением адреса со смещением CLR R17 ; получаем адрес точки записи ADC XH,R17 ST X,R19 ; сохраняем их в кольцо CLR R19 ; Очищаем R19, теперь там код ошибки ; Который вернет подпрограмма INC R16 ; Увеличиваем смещение CPI R16,MAXBUFF_OUT ; Если достигли конца BRNE _NoEnd CLR R16 ; переставляем на начало _NoEnd: CP R16,R18 ; Дошли до непрочитанных данных? BRNE _RX_OUT ; Если нет, то просто выходим _RX_FULL: LDI R19,1 ; Если да, то буффер переполнен. STS OUT_FULL,R19 ; Записываем флаг наполненности ; В R19 остается 1 - код ошибки переполнения _RX_OUT: STS OUT_PTR_E,R16 ; Сохраняем смещение. Выходим SEI ; Разрешение прерываний RET |
Пользоваться просто:
в R19 пихаем данные, вызваем функцию. НА выходе, в регистре R19 у нас код ошибки. Если там 1, то следующий байт писать нельзя — будет переполнение и перехлест указателей.
После загона данных в буфер надо запустить передачу. Я под это дело написал макрос
1 2 3 4 | .MACRO TX_RUN LDI R16, (1<<RXEN)|(1<<TXEN)|(1<<RXCIE)|(1<<TXCIE)|(1<<UDRIE) OUT UCSRB, R16 .ENDM |
Мы просто разрешаем прерывание UDRIE, а так как буфер пуст, то оно выполнится немедленно.
Из буфера данные забирает прерывание по опустошению UDR
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | UD_OK: PUSHF PUSH R17 PUSH R18 PUSH R19 PUSH XL PUSH XH LDI XL,low(OUT_buff) ; Берем адрес начала буффера LDI XH,high(OUT_buff) LDS R16,OUT_PTR_E ; Берем смещение точки записи LDS R18,OUT_PTR_S ; Берем смещение точки чтения LDS R19,OUT_FULL ; Берм флаг переполнения CPI R19,1 ; Если буффер переполнен, то указатель начала BREQ NeedSend ; Равер указателю конца. Это надо учесть. CP R18,R16 ; Указатель чтения достиг указателя записи? BRNE NeedSend ; Нет! Буффер не пуст. Надо слать дальше LDI R16,1<<RXEN|1<<TXEN|1<<RXCIE|1<<TXCIE|0<<UDRIE ; Запрет прерывания OUT UCSRB, R16 ; По пустому UDR RJMP TX_OUT ; Выходим NeedSend: CLR R17 ; Получаем ноль STS OUT_FULL,R17 ; Сбрасываем флаг переполнения ADD XL,R18 ; Сложением адреса со смещением ADC XH,R17 ; получаем адрес точки чтения LD R17,X ; Берем байт из буффера OUT UDR,R17 ; Отправляем его в USART INC R18 ; Увеличиваем смещение указателя чтения CPI R18,MAXBUFF_OUT ; Достигли конца кольца? BRNE TX_OUT ; Нет? CLR R18 ; Да? Сбрасываем, переставляя на 0 TX_OUT: STS OUT_PTR_S,R18 ; Сохраняем указатель POP XH POP XL POP R19 POP R18 POP R17 POPF ; Выходим, достав все из стека RETI |
В Случае переполненного буфера мы сбрасываем флаг переполнения, а когда данные все выгребем и указатели вновь сравняются, то мы запрещаем прерывание по UDRE. Тем самым, остановив передачу.
И кратенький пример на работу с буфером. Ничего не показывает и не доказывает. Просто гоняет данные не напрямую, а через буфера:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | ... RCALL Buff_Pop ; Берем данные из буфера CPI R19,1 ; Они там есть? BREQ LOOPS ; Нет? Ну еще раз INC R17 ; Данные увеличили на 1, просто так. MOV R19,R17 ; Переложили в R19 NewTry: RCALL Buff_Push ; Пихнули в буфер CPI R19,1 ; Буфер не переполнился? BRNE RUN TX_RUN ; Ecли да, то запускаем передачу RCALL Delay ; Ждем или передаем управление другой задаче RJMP NewTry ; А потом снова пробуем положить в буфер. RUN: TX_RUN ; Если все ок, запускаем передачу ... |
Примерно так.
Исходник с примером на буфере
Бег по граблям
А теперь разберем ряд основных проблем с которыми можно столкнуться при освоении USART, а также с методами их решения.
Пожалуй самый распространенный баг это циклическая инициализация. Т.е. когда инициализация USART засунута в главный цикл и каждую итерацию происходит его переинициализация. Разумеется он от такого затраха офигевает и отказывается работать. Поэтому сразу запомните раз и навсегда — все инициализации делаются только один раз.
Нет, разумеется можно потом что-нибудь подправить и заново переиницализировать, но не тогда когда идет передача. Сначала пусть устройство завершит свои дела, а потом уж его можно трогать за регистры.
Второй популярный косяк — аппаратные проблемы. Т.е. пыжишься ты с кодом, перебираешь биты настроек, а он не работает. И код уже проверен на десяток раз, а все никак. А проблема вполне может быть и с зависшим COM портом или FTDI. Либо подключил что-то неправильно. Самый простой способ проверить интерфейс это отключить от контроллера передающую линию (на Pinboard надо первести переключатель USART в положение OFF)
Замкнуть RX на TX на выходе FTDI (или MAX232). Подключиться терминальной программой, например Terminal v1.9b. И отправить в порт байт. Он должен вернуться обратно. Если возвращается что-то не то, значит проблема в интерфейсе.
Третьими граблями (а может даже и первыми) являются проблемы со скростями и тактовыми частотами. Ведь передача то асинхронная, а значит если скорость не та на которую мы запрограммированы, то коннекта у нас не выйдет. Самая засада в том, что скорость контроллера так сразу и не определишь. Чуть ошибся в фуз битах и запустил, например, контроллер не на 8мгц, а на 1мгц. Либо выставил тактовый генератор, да завелся он не на частоте кварца, а на какой нибудь из гармоник (редко, но бывает). А еще в некоторых контроллерах есть фуз бит CKDIV8 который делит тактовую частоту на 8. В общем, если UART не работает или работает с ошибками, то узнайте ТОЧНО на какой реально скорости у вас работает контроллер. Сделать это можно, например, с помощью таймера. Настроив его так, чтобы он мигал раз в секунду. Если мигает так как положено — значит частота верная. А если нет, то искать почему — фузы, биты делителя, кварцы и тды.
По этой же причине, кстати, если в готовом устройстве написано, что надо кварц на 12мгц, то ставить надо на 12мгц! Не на 10, не на 16 или 7.32, а именно на 12. Т.к. скорей всего от этого кварца зависят тайминги протоколов.
Четвертые грабли — бездумное копирование инициализации из всяких обучалок. Внимательно смотрите что у вас включено и на что настроено! Какие прерывания включены/выключены. Если прерывание есть, а обработчика нет, то вы получите неслабый глюк! Особенно это касается прерывания по RXC, которой пока из UDR не считаешь не успокоится.
Ну и в пятых — следите за совпадением скорости передатчика и приемника. Т.е. если передача идет на 9600, 1старт, один стоп, без четности. То и принимать надо ее на тех же параметрах. И никак иначе.
ATtiny2313: микроконтроллер, высокопроизводительный, распиновка, микросхема
ATtiny2313 Описание
Микрочип ATtiny2313 представляет собой высокопроизводительный, но маломощный микроконтроллер на основе 8-разрядной архитектуры AVR RISC с 20 контактами, 18 из которых могут использоваться как контакты ввода/вывода. Он имеет мощную архитектуру инструкций, которая обеспечивает скорость обработки 1 MIPS на МГц, одновременно уравновешивая энергопотребление и обрабатывая высокоскоростную производительность. Если максимальная частота составляет 20 МГц, скорость может приблизиться к 20 MIPS. В ATtiny2313 включены возможности встроенной отладки debugWIRE, внутрисистемно программируемый SPI-порт, а также режимы ожидания, отключения питания и ожидания с низким энергопотреблением. Также используется программируемая схема обнаружения пониженного напряжения.
Attiny2313 Особенности
• Высокая производительность, 8-битная микроконтроллер с низкой мощностью AVR®
• Advanced RISC Architecture
-120 Мощные инструкции-большинство одноиколетовых циклов
-32 x 8 Общие Рабочие регистры
– Полностью статическая работа
– Пропускная способность до 20 MIPS при 20 МГц
• Данные и энергонезависимая память программ и данных
-2/4K байтов в системе самопрограммируемой вспышки
. /Erase Cycles
– 128/256 байт внутренней SRAM
– Блокировка программирования для программ Flash и безопасности данных EEPROM
• Ввод/вывод и пакеты
4-18 программируемых линий ввода/вывода
-20-контактный PDIP, 20-контактный SOIC, 20-PAD MLF/VQFN
• Операционное напряжение
-1,8-5,5 В
• Скоровые оценки
— 0 — 4 МГц @ 1,8 — 5,5 В
— 0 — 10 МГц @ 2,7 — 5,5 В
— 0 — 20 МГц @ 4,5 — 5,5 В
• Промышленность Диапазон температур: от -40°C до +85°C
• Низкое энергопотребление
– Active Mode
• 190 µA at 1.8V and 1MHz
– Idle Mode
• 24 µA at 1.8V and 1MHz
– Power-down Mode
• 0,1 мкА при 1,8 В и +25 ° C
Attiny2313 Pinout
Attiny2313 CAD Model
Символ
Footprint
9000 9000 3d Model
3D модели9000 3. 0004
Спецификации
Ниже приведены основные параметры выбранной детали, касающиеся характеристик детали и категорий, к которым она принадлежит.
- Технический
- Базовый номер детали Базовый номер детали — это идентификатор конкретной конструкции детали или материала, используемого в определенных приложениях. ATTINY2313A
- Размер бита BIT — это информационный символ. Это также двоичные числа, которые являются единицей измерения информации. Это наименьшая единица информации. Это информация, необходимая для сокращения количества доступных стимулов в ситуациях, когда требуется несколько вариантов. 8
- Связность Связность — это аспект топологии множества или пространства. Связность означает быть постоянно на связи. Временной интервал между числами на линии указывает на то, что она подключена. Анализ связности определяет, соединяются ли 2 точки в соответствии с определенными начальным и конечным узлами. I2C, SPI, UART/USART
- Базовый процессор Интегральная схема, встроенная в поверхность чипа, также известна как тонкопленочная интегральная схема. Другая интегральная схема из толстой пленки представляет собой миниатюрную схему, состоящую из полупроводниковых устройств, которые являются независимыми и пассивными компонентами, встроенными в печатную плату. АВР
- Размер ядра Интегральная схема, встроенная в поверхность чипа, также известна как тонкопленочная интегральная схема. Другая интегральная схема из толстой пленки представляет собой миниатюрную схему, состоящую из полупроводниковых устройств, которые являются независимыми и пассивными компонентами, встроенными в печатную плату. 8-битный
- Каналы ЦАП ЦАП представляет собой электронный преобразователь, который преобразует аналоговые устройства. ЦАП состоит из четырех компонентов, состоящих из системы сопротивления веса, опорного источника питания операционного усилителя и аналогового переключателя. ДА
- Ширина шины данных Шина представляет собой стандартный метод обмена информацией между компонентами компьютера. Это позволяет управлять и передавать данные для каждого компонента согласованным образом. Количество данных, которые могут быть переданы одновременно, называется шириной и измеряется в битах. Чем он больше, тем выше эффективность передачи. Пропускная способность шины = частота x ширина (байт/сек). 8b
- Каналы DMA DMA — это метод быстрой передачи данных. Данные могут перемещаться через устройство ввода/вывода непосредственно в память или устройства ввода/вывода без обработки процессором. №
- Размер ЭСППЗУ ЭСППЗУ (электрически стираемое программируемое постоянное запоминающее устройство) относится к электрически стираемому программируемому постоянному запоминающему устройству. Это микросхема памяти, которая не теряет данные после сбоя питания. 128 x 8
- Частота Частота — это количество раз, когда периодические изменения совершаются в единицу времени, и это величина, описывающая частоту периодического движения. 20 МГц
- Имеет АЦП Аналого-цифровой преобразователь — это аналого-цифровой преобразователь. Он известен как ADC, что означает сокращенно. Обычно это относится к электронным компонентам, которые преобразуют аналоговый сигнал в электронный. Аналого-цифровой преобразователь обычно преобразует входной сигнал напряжения в выходной цифровой сигнал. №
- Интерфейс Интерфейс используется для соединения одного электронного устройства с другим для разработки или адаптации конфигураций выхода и входа, что позволяет им работать вместе. I2C, SPI, UART, USART
- JESD-609 Код JESD-609 требует, чтобы поверхность или оконечное покрытие или материал были маркированы с учетом разрешенного места, в противном случае должна быть предусмотрена чередующаяся маркировка. Способ маркировки может быть в виде штрих-кода или 2D. e4
- Объем памяти Объем памяти относится к объему данных, который может храниться в запоминающем устройстве. Байты используются для выражения емкости хранилища. 2кБ
- Уровень чувствительности к влаге (MSL) Уровень чувствительности к влаге (MSL) был предложен в качестве стандарта классификации для упаковки компонента SMD, чувствительного к воздействию человека. 1 (не ограничено)
- Количество вводов-выводов Ввод-вывод (сокращение от ввода-вывода) — это связь между системой обработки информации и внешним миром. 18
- Количество каналов I2C Шина I2C функционирует как прямая двунаправленная двухпроводная последовательная шина, которая является синхронной. Это простая шина, для которой требуется всего два провода для передачи информации между устройствами, подключенными через шину. 1
- Количество оконечных устройств В электронике окончание означает действие по завершению линии передачи, что предотвращает отражение сигналов от конца линии. 20
- Количество таймеров/счетчиков Подсчет — одна из самых простых и основных процедур. Счетчики — это схема, которая позволяет выполнить эту задачу. Счетчик системы цифровой предназначен для определения количества импульсов. 2
- Рабочая температура Рабочая температура – это заданный диапазон температур, обеспечивающий эффективную работу электрического или механического устройства. Он варьируется в зависимости от различных устройств. -40°C~85°C ТА
- Генератор Тип Генератор представляет собой устройство преобразования энергии, которое преобразует мощность постоянного тока в мощность переменного тока с определенной частотой, а цепь, образованная им, называется схемой генератора. Внутренний
- Упаковка Упаковка относится к оптовым спецификациям продуктов при их распределении, хранении или использовании. Трубка
- Статус детали Статус детали указывает на различное состояние различных продуктов для использования. Активный
- Код Pbfree Код Pbfree используется для электрических и электронных устройств, в которых уровень содержания свинца (Pb) снижен до уровня ниже 1000 ppm (<0,1%). Это требование способствует защите окружающей среды. да
- Пиковая температура оплавления (Cel) Самая высокая температура, которую могут выдержать все электронные компоненты поверхностного монтажа во время пайки оплавлением. Если только электронные компоненты не будут повреждены. НЕ ПРИМЕНИМО
- Периферийные устройства Периферийные устройства — это те компьютеры, которые имеют периферийные устройства, не являющиеся частью мейнфрейма. Он включает в себя внешние по отношению к компьютеру устройства вывода и ввода и память, аналого-цифровые преобразователи, цифро-аналоговые преобразователи, периферийные процессоры и т. д. Это устройство, позволяющее компьютерам соединяться с внешним миром. Обнаружение/сброс отключения, POR, PWM, WDT
- Размер памяти программы Память является одним из наиболее важных компонентов компьютера. Его также называют внутренним хранилищем или основным хранилищем. Его можно использовать для хранения временной информации, обрабатываемой ЦП, и для обмена данными с внешним хранилищем, например, с жестким диском. 2 КБ 1K x 16
- Память программ Тип Память является одним из наиболее важных компонентов компьютера. Его также называют внутренним хранилищем или основным хранилищем. Его можно использовать для хранения временной информации, обрабатываемой ЦП, и для обмена данными с внешним хранилищем, например, с жестким диском. ВСПЫШКА
- Опубликовано Опубликовано означает годы, когда электронные компоненты были введены в эксплуатацию. 1997
- Каналы ШИМ Термин ШИМ используется для описания модуляции импульсов. Это аналоговый метод управления. Он регулирует смещение транзисторных затворов или базовых МОП-ламп в ответ на изменения соответствующей нагрузки, чтобы повлиять на изменение времени проводимости транзистора или МОП-лампы, чтобы добиться изменения стабилизированной энергии напряжения переключения для питания. . ДА
- Статус квалификации Производители электроники должны обеспечить квалификационные стандарты электронных компонентов для соответствия требуемой надежности с помощью серии программ испытаний. Не соответствует требованиям
- Объем ОЗУ Память является одним из наиболее важных компонентов компьютера. Его также называют внутренним хранилищем или основным хранилищем. Его можно использовать для хранения временной информации, обрабатываемой ЦП, и для обмена данными с внешним хранилищем, например, с жестким диском. 128 х 8
- Серия Полная серия электронных компонентов обычно состоит из модели основного корпуса, префикса, суффикса и т. д. AVR® ATtiny
- Подкатегория Подкатегория означает, что электронные компоненты можно отнести к одной из вторых категорий электроники. Микроконтроллеры
- Максимальный ток питания В электромагнетизме количество электричества, проходящего через любое поперечное сечение проводника в единицу времени, называется силой тока, или сокращенно током. Электрический ток образуется закономерным направленным движением свободных зарядов в проводниках под действием сил электрического поля. 7 мА
- Напряжение питания Напряжение питания генерируется той частью самого источника питания, которая может совершать работу от заряда. При совершении работы над зарядом заряд получает электрическую энергию, и при этом между двумя полюсами источника питания образуется напряжение. 5V
- Максимальное напряжение питания (Vsup) Напряжение питания генерируется той частью самого источника питания, которая может выполнять работу при заряде. При совершении работы над зарядом заряд получает электрическую энергию, и при этом между двумя полюсами источника питания образуется напряжение. 5,5 В
- Мин. напряжение питания (Vsup) Напряжение питания зависит от состава цепи и рабочего состояния оборудования и является переменной величиной. 4.5V
- Технология Технология относится к методам, системам или устройствам, которые являются результатом использования научных знаний в практических целях, которые внедряются в электронные компоненты. CMOS
- Покрытие выводов При выборе отделки выводов компонентов избегайте выбора покрытий, содержащих свинец, чтобы убедиться, что пластик для литья компонентов может выдерживать более высокие температуры, связанные с бессвинцовой пайкой. НИКЕЛЬ ПАЛЛАДИЙ ЗОЛОТО
- Положение клеммы Клемма — это место, где заканчивается проводник электронного компонента. Он также может быть подключен к внешним цепям. DUAL
- Time@Peak Reflow Temperature-Max (s) Самая высокая температура, которую все электронные компоненты SMD могут выдерживать во время пайки оплавлением. Если только электронные компоненты не будут повреждены. НЕ ПРИМЕНИМО
- ИБп/БК/периферийные ИС Тип Интегральная схема представляет собой крошечный электронный гаджет или электронную часть. Технология интегральных схем включает в себя проектирование и технологию изготовления. Это наиболее очевидно в технологическом оборудовании и тестировании технологии упаковки, производстве технологии обработки, массовом производстве и творчестве в дизайне. МИКРОКОНТРОЛЛЕР, RISC
- Напряжение питания (Vcc/Vdd) Напряжение тока — это сила, измеряемая в вольтах. Напряжение — это скорость энергии, которая берется из источника, который создает поток электрического тока в цепи. Его также можно выразить как разность зарядов между двумя точками в цепи, выраженную в напряжении. 1,8–5,5 В
- Сторожевой таймер Сторожевой таймер является составной частью микроконтроллера, фактически счетчиком. Обычно сторожевому таймеру присваивается произвольный номер. Программа запустилась, когда сторожевой таймер начал считать. Когда приложение работает корректно, то через определенный промежуток времени ЦП должен сообщить сторожевому таймеру, что ему необходимо перезапуститься и заново начать счет. Если счетчик поднимается до заданного значения, считается, что программа работает неправильно, и система перезагружается. Да
- Физический
- Покрытие контактов Покрытие контактов — это процесс, направленный на уменьшение электрического сопротивления самого контакта, что позволяет току легче проходить через контакт. Tin
- Крепление Крепление поясняет различные способы монтажа различных электронных компонентов, включая поверхностный монтаж, монтаж через отверстие, монтаж на панели и т. д. Сквозное отверстие
- Тип монтажа Типы монтажа объясняют различные способы монтажа различных электронных компонентов, включая поверхностный монтаж, монтаж через отверстие, монтаж на панели и т. д. Сквозное отверстие
- Количество контактов Контакты представляют собой соединения между внутренними цепями интегральной схемы (микросхемы) и периферийными схемами, и все контакты составляют интерфейс этой микросхемы. 20
- Упаковка/Коробка Упаковка/Коробка относится к оптовым спецификациям продуктов при их распределении, хранении или использовании. 20-DIP (0,300, 7,62 мм)
- Цепочка поставок
- Заводское время выполнения заказа Заводское время выполнения заказа — это период, необходимый фабрике для обработки продукта с момента, когда клиент размещает заказ, до доставки время. 7 недель
- Размеры
- Высота Высота относится к протяженности электронных компонентов от основания до верха. 4,953 мм
- Длина Длина относится к протяженности электронных компонентов от края до края. 25,98 мм
- Ширина Ширина относится к размеру электронных компонентов из стороны в сторону. 7,112 мм
- Соответствие
- Без свинца Без свинца — это стандарт, согласно которому содержание свинца должно быть снижено до уровня ниже 1000 частей на миллион (<0,1%), которому соответствует экологически чистое производство электроники. Без свинца
- REACH SVHC Вещества, соответствующие требованиям статьи 57 REACH, обычно считаются веществами, вызывающими очень большую озабоченность (SVHC). № SVHC
- Статус RoHS RoHS — это обязательные стандарты, используемые для ограничения использования вредных компонентов в электрическом и электронном оборудовании, что делает их благоприятными для здоровья человека и защиты окружающей среды. Соответствует ROHS3
ATtiny2313 Приложения
Автоматизация и управление процессами, автомобильные часы и синхронизация
Consumer Electronics
Defence, Military & Aerospace
Embedded Design & Development
Industrial, Motor Drive & Control
Portable Devices
ATtiny2313 Block Diagram
ATtiny2313 Package
ATtiny2313 Производитель
Компания Microchip Technology Inc. является лидером в производстве микроконтроллеров и аналоговых полупроводников. Штаб-квартира Microchip находилась в Чендлере, штат Аризона. Мы стремимся предлагать разработку продуктов с низким уровнем риска, снижая общую стоимость системы и ускоряя время выхода на рынок. В основном мы обслуживаем различные области применения клиентов по всему миру. Нашей целью является предоставление выдающейся технической поддержки наряду с надежной доставкой и качеством.
Часто задаваемые вопросы по ATtiny2313
Что такое ATtiny2313?
Microchip ATtiny2313 — это высокопроизводительный, но маломощный 8-разрядный микроконтроллер AVR с архитектурой RISC с 20 контактами, 18 из которых могут использоваться в качестве контактов ввода-вывода. Он имеет мощную архитектуру инструкций, которая обеспечивает скорость обработки 1 MIPS на МГц, одновременно уравновешивая энергопотребление и обрабатывая высокоскоростную производительность.
Какова рекомендуемая рабочая температура компонента?
-40°C~85°C TA.
Какова упаковка устройства?
20-DIP (0,300, 7,62 мм).
Какое количество контактов у компонента?
20.
Техническое описание в формате PDF
В технических описаниях указаны функции, абсолютные максимальные рейтинги, области применения и многое другое устройства, которые очень полезны в качестве общего руководства по конкретному применению детали. Вы можете тщательно изучить ATTINY2313A-PU, прочитав таблицы данных в формате PDF, подготовленные Microchip Technology на Easybom.
ATTINY2313A, 4313 Обзор
Детали с аналогичными характеристиками
Выбор продуктов с аналогичными характеристиками может помочь вам найти альтернативы для вашего электронного проекта, снижая проектные и производственные риски.
Easybom обнаружил 4 устройства с аналогичными характеристиками по сравнению с ATTINY2313A-PU EasyBom. DB.Model.Category. Среди этих деталей ATTINY2313A-PU имеет характеристики, наиболее соответствующие характеристикам ATTINY2313A-PU, в то время как ATTINY26-16PI больше всего отличается от устройства. Все аналогичные детали имеют одинаковую упаковку/корпус (20-DIP (0,300, 7,62 мм) ), количество контактов (20), количество входов/выходов (18) и т. д. Однако ATTINY2313A-PU отличается от других своей шириной шины данных, которая оценивается в 8 b.
Microchip Technology
Attiny2313a-Pu
Цена
USD-
Пакет / Корпус
20-DIP (0,300, 7,62 мм)
Количество пинтов
20 0005
Шис шины данных
8 8. 8.
200005
.
Number of I/O
18
Interface
I2C, SPI, UART, USART
Memory Size
2 kB
Supply Voltage
5 V
Peripherals
Brown-out Detect/Reset, ПОР, ШИМ, ВДТ
Цена
USD-
Пакет / Корпус
14-DIP (0,300, 7,62 мм)
Количество контактов
14
Шибина шины данных
8 B
. 12
Интерфейс
SPI
Размер памяти
8 KB
Напряжение питания
5 V
Периферий
Decect/Reset, POR, SWM, Temp Sensor, WDT
Прайса
USD -SD -S -–D -SD -D -SD — —
Упаковка/футляр
20-Dip (0,300, 7,62 мм)
Количество контактов
20
Ширина шины данных
8 B
Число I/O
16
SPI
Размер памяти
, 7,62 мм)
Количество контактов
20
Ширина шины DATA
8 B
Номер в/O
16
Интерфейс
2-Wire, SPI, UART
Размер памяти
2 KB
.
Периферийные устройства
Обнаружение/сброс пониженного напряжения, POR, PWM, WDT
Анализ рынка
Чем больше рыночных котировок вы узнаете о детали, тем более убедительной и научной будет ваша программа закупок. Анализ больших данных Easybom может помочь вам получить представление о рынка электроники и будьте готовы к возможным рискам.
Price Analysis —
Inventory Analysis 12.74%
Regional popularity distribution
Regional popularity rank
1.China
100
2.United States
87
3.Malta
84
4.Norway
78
5. Guam
74
6. Algeria
72
7. Angola
72
8.taiwan
72
9.Saint Pierre и MQUELON
9.Saint Pierre и MQUELON
9.Saint Pierre и MQUELON
9.0005
71
10.Czech Republic
71
11.NDIA
71
12. Frazil
71
13.JAPAN
71
14.RUSSUSSIA
7195
1.CANADA
.
.10004999991.1004
9000 40004
14.
70
< 0–15 из 136 стран >
Транзистор C945: характеристики, распиновка, аналог
Является ли выход из строя графического процессора признаком того, что волна нехватки ядер закончилась?
ATTINY2313-20PU Листы данных | Встраиваемые — Микроконтроллеры IC MCU 8BIT 2KB FLASH 20DIP -Apogeeweb
Home  Встраиваемые микроконтроллеры ATTINY2313-20PU Листы данных | Встраиваемые — Микроконтроллеры IC MCU 8BIT 2KB FLASH 20DIP
ATTINY1634-MUR Листы данных | Встраиваемые — Микроконтроллеры IC MCU 8BIT 16KB FLASH 20QFN
ATTINY2313-20SU Листы данных | Встраиваемые — Микроконтроллеры IC MCU 8BIT 2KB FLASH 20SOIC
сен 8 2020
- By apogeeweb,  AtN/Any2313-20pu, техническое описание atN/Any2313-20pu,atN/Any2313-20pu pdf, технология микрочипа
Изображение: | |
Артикул производителя: | АТТИНИ2313-20ПУ |
Категория продукта: | Встроенные — микроконтроллеры |
На складе: | Да |
Производитель: | Микрочиповая технология |
Описание: | IC MCU 8BIT 2KB FLASH 20DIP |
Технический паспорт: | Краткое описание ATtiny2313(V) |
Упаковка: | 20-DIP (0,300″, 7,62 мм) |
Минимум: | 1 |
Время выполнения: | 7 недель |
Количество: | 1093 ШТ. |
Отправить запрос: | Расследование |
1: | 1,59000 | 1,59000 |
25: | 1.46000 | 36.50000 |
100: | 1. 32000 | 132.00000 |
Основание
Символ
Атрибуты продуктаПроизводитель: | Технология микросхем |
Серия: | AVR® atN/Любой |
Упаковка: | Трубка |
Статус детали: | AcN/Ave |
Базовый процессор: | Авр |
Размер сердцевины: | 8-битный |
Скорость: | 20 МГц |
Связь/Авити: | Spi uart/usart |
Периферийные устройства: | Обнаружение/сброс пониженного напряжения por pwm wdt |
Количество входов/выходов: | 18 |
Объем памяти программы: | 2 КБ (1 КБ x 16) |
Тип памяти программ: | Вспышка |
Размер ЭСППЗУ: | 128 х 8 |
Размер рамы: | 128 х 8 |
Напряжение питания (vcc/vdd): | 2.7В ~ 5.5В |
Преобразователи данных: | — |
Тип осциллятора: | Внутренний |
Температура OperaN/Ang: | -40°C ~ 85°C (та) |
Тип мес/анг: | Сквозное отверстие |
Упаковка/кейс: | 20-погружная (0,300″ 7,62 мм) |
Комплект поставки поставщика: | 20-диапазонный |
Базовый номер: | АтН/Любой2313 |
Часть | Сравнить | Производители | Категория | Описание | |
№ производителя: ATTINY2313-20PU | Сравните: Текущая часть | Производители: Atmel | Категория: 8-битный микроконтроллер | Описание: Atmel atN/Any2313-20pu 8-битный микроконтроллер, низкое энергопотребление, высокая производительность, atN/Any, 20 МГц, 2 КБ, 128 байт, 20 контактов, dip | |
№ производителя: ATTINY2313V-10PU | Сравните: ATTINY2313-20PU ПРОТИВ ATTINY2313V-10PU | Производители: Atmel | Категория: 8-битный микроконтроллер | Описание: Mcu 8bit atN/Any avr risc 2kb flash 2. 5v/3.3v/5v 20pin pdip | |
№ производителя: ATTINY2313V-10PI | Сравните: ATTINY2313-20PU ПРОТИВ ATTINY2313V-10PI | Производители: Atmel | Категория: Микроконтроллеры | Описание: Mcu 8bit/16bit atN/Any avr risc 2kb flash 2.5v/3.3v/5v 20pin pdip | |
№ производителя: AT90S1200-12PC | Сравните: ATTINY2313-20PU VS AT90S1200-12PC | Производители: Atmel | Категория: Микроконтроллеры | Описание: Mcu 8bit/16bit at90 avr risc 1kb flash 3. 3v/5v 20pin pdip |
Описание
atN/Any series 2 kb flash 128 b sram 20 mhz 8-bit microcontroller — dip-20:future electronics
mcu 8-bit atN/Any avr risc 2kb flash 3.3v/5v 20-pin pdip w:avnet europe
ic, 8bit mcu, avr N/Any, 20mhz, 20-pdip контроллер; семейство/серия: avr N/Any размер ядра: 8 бит нет. количество входов/выходов: 18 ;размер программной памяти: 2 кб объем памяти eeprom: 128байт объем оперативной памяти: 120байт ;тактовая частота процессора: 20МГц:сегоднякомпоненты
микроконтроллер рабочая/анг температура: -40…85 °c питание: 2.7. ..5,5 В нет. и/ос: 18 шт. из н/амеров: 2 экстры: пакет debugwire: dil-20 eeprom: 128 байт flash memory: 2 kb sram: 128 byte:distrelec
atN/Any2313 — это маломощный 8-разрядный микроконтроллер cmos, основанный на усовершенствованной RISC-архитектуре AVR. Благодаря выполнению мощных инструкций за один такт, atN/Any2313 достигает пропускной способности, приближающейся к 1 миле в секунду на МГц, что позволяет разработчику системы оптимизировать энергопотребление в зависимости от скорости обработки.
особенности • UN/Alizes архитектура avr® risc
• avr – высокопроизводительная и маломощная risc-архитектура
– 120 мощных инструкций/операций – выполнение операций за один такт
– 32 x 8 рабочих регистров общего назначения
– полностью стабильная работа/операция переменного тока
– пропускная способность до 20 миль в секунду на частоте 20 МГц
• данные и энергонезависимая память /Ale памяти программ и данных
– 2 кбайт внутрисистемной самопрограммируемой флэш-памяти
ресурс 10 000 циклов записи/стирания
– 128 байт внутрисистемно программируемого eeprom
ресурс: 100 000 циклов записи/стирания
– 128 байт внутренней памяти
– программирование блокировка для флэш-программы и защиты данных eeprom
• периферийные функции
– один 8-разрядный N/Amer/счетчик с отдельным предделителем и режимом сравнения
– один 16-разрядный N/Amer/счетчик с отдельным предделителем, режимами сравнения и захвата
– четыре ШИМ-канала
– на кристалле аналоговый компаратор
– программируемый сторожевой таймер N/Amer со встроенным генератором
– usi – универсальный последовательный интерфейс
– полнодуплексный usart
• специальные функции микроконтроллера
– встроенная отладка debugwire
– внутрисистемное программирование через порт spi
– внешний и внутренние источники прерываний
– маломощные режимы ожидания, отключения питания и режима ожидания
– усовершенствованная схема сброса при включении питания
– программируемая схема обнаружения/включения пониженного напряжения
– внутренний калиброванный генератор
• ввод/вывод и пакеты
– 18 программируемых вводов/выводов o линии
– 20-контактный pdip, 20-контактный Soic, 20-контактный QFN/MLF
• рабочее напряжение N/Ang
– 1,8 – 5,5 В (atN/Any2313v)
– 2,7 – 5,5 В (atN/Any2313)
• классы скорости
– atN/Any2313v: 0 – 4 МГц при 1,8–5,5 В, 0–10 МГц при 2,7–5,5 В
– atN/Any2313: 0–10 МГц при 2,7–5,5 В, 0–20 МГц при 4,5 – 5,5 В
• типичная потребляемая мощность N/Aon
– режим acN/Ave
1 МГц, 1,8 В: 230 мкА
32 кГц, 1,8 В: 20 мкА (включая генератор)
– режим пониженного питания
< 0,1 мкА при 1,8 В
45
5
5
ECCN/UNSPSCУшт: | 8542310001 |
Номер: | 8542319000 |
Мкс: | 85423199 |
Тарик: | 8542319000 |
Eccn: | Ухо99 |
Статус RoHS: | Соответствует RoHS3 |
Чувствительность к влаге/уровень Avity (msl): | 1 (без ограничений) |
АТТИНИ2313-20ПУ | Технология микросхем | IC MCU 8BIT 2KB FLASH 20DIP | 1 734 | 1:1,59000$ 25:1,46000$ 100:1,32000$ | |
АТТИНИ2313-20ПУ | Микросхема / atmel | 8-разрядные микроконтроллеры — MCU 2 КБ Flash 0,128 КБ EEPROM 18 Контакты ввода/вывода | По заказу | 1:1,59$ 25:1,46$ 100:1,32$ | |
АТТИНИ2313-20ПУ | Microchip Technology Inc | IC MCU 8BIT 2KB FLASH 20DIP | По заказу | 1,5800 долл. США / 2,8667 долл. США | |
АТТИНИ2313-20ПУ | Микрочип | Серия ATtiny 2 КБ флэш-памяти 128 Б SRAM 20 МГц 8-битный микроконтроллер — DIP-20:Future Electronics MCU Просмотреть все Микросхема, 8-битный микроконтроллер, AVR Tiny, 20 МГц, 20-PDIP-контроллер. Семейство/серия: AVR Tiny. Размер ядра: 8 бит. 120 байт; Частота процессора: 20 МГц: TodayComponents | По заказу | 1:1,320$ |
1. Латвия
100
2. Южная Корея
95
2. Южная Корея
95
3. Россия
94
4. Канада
91
4. Канада
91
5. США
88
5. США
88
6. Индонезия
86
7. Китай
85
7. Китай
85
8. Таиланд
77
9. Индия
76
10. Сен-Пьер и Микелон
75
10. Сен-Пьер и Микелон
75
11. Гуам
74
11. Гуам
74
12. Италия
72
12. Италия
72
13. Алжир
72
13. Алжир
72
14. Сальвадор
70
14. Сальвадор
70
15. Бруней-Даруссалам
69
15. Бруней-Даруссалам
69
16. Чехия
69
16. Чехия
69
17. Словакия
69
18. Гонконг
69
18. Гонконг
69
19. Чили
69
19. Чили
69
20. Каймановы острова
69
21. Япония
68
22. Марокко
68
23. Сингапур
68
23. Сингапур
68
24. Болгария
68
24. Болгария
68
25. Испания
67
25. Испания
67
26. Вьетнам
67
26. Вьетнам
67
27. Объединенные Арабские Эмираты
67
27. Объединенные Арабские Эмираты
67
28. Казахстан
67
29. Австрия
67
29. Австрия
67
30. Словения
67
30. Словения
67
31. Ирландия
67
32. Мьянма
67
32. Мьянма
67
33. Шпицберген и Ян-Майен
67
33. Шпицберген и Ян-Майен
67
34. Катар
66
35. Нигер
66
36. Украина
66
37. Азербайджан
65
38. Колумбия
65
38. Колумбия
65
39. Малайзия
65
40. Швеция
65
41. Тунис
65
41. Тунис
65
42. Малави
65
43. Беларусь
65
43. Беларусь
65
44. Армения
65
44. Армения
65
45. Германия
65
45. Германия
65
46. Египет
65
46. Египет
65
47. Израиль
65
48. Турция
65
48. Турция
65
49. Филиппины
64
49. Филиппины
64
50. Бразилия
64
51. Гваделупа
64
52. Люксембург
64
53. Бангладеш
64
54. Швейцария
64
54. Швейцария
64
55. Хорватия
64
56. Финляндия
64
56. Финляндия
64
57. Перу
64
58. Грузия
64
59. Австралия
63
60. Франция
63
61. Румыния
63
62. Нигерия
62
63. Боливия
62
64. Эстония
62
65. Новая Зеландия
62
65. Новая Зеландия
62
66. Португалия
62
66. Португалия
62
67. Сербия
62
67. Сербия
62
68. Аргентина
62
69. Великобритания
62
69. Соединенное Королевство
62
70. Эфиопия
62
70. Эфиопия
62
71. Тайвань
61
71. Тайвань
61
72. Кения
61
72. Кения
61
73. Молдова
61
73. Молдова
61
74. Бельгия
61
74. Бельгия
61
75. Мали
61
75. Мали
61
76. Венесуэла
60
76. Венесуэла
60
77. Пакистан
60
77. Пакистан
60
78. Саудовская Аравия
59
78. Саудовская Аравия
59
79. Польша
59
79. Польша
59
80. Танзания
59
80. Танзания
59
81. ЮАР
59
81. ЮАР
59
82. Дания
59
82. Дания
59
83. Эквадор
59
83. Эквадор
59
84. Венгрия
59
84. Венгрия
59
85. Либерия
59
86. Нидерланды
59
86. Нидерланды
59
87. Греция
58
88. Иордания
58
88. Иордания
58
89. Норвегия
58
90. Мексика
58
91. Ирак
56
91. Ирак
56
92. Босния и Герцеговина
55
- ATTINY20-MMHR
- Микросхема IC 8bit 2kb flash 20vqfn
- 1: 1,59 доллара США Деталь
- MC908MR16CBE
- 8-бит, флэш-память, процессор 68hc08, 8,2 МГц
- вызов Деталь
- МК56Ф82726ВЛФ
- IC микроконтроллер 32 бит 32 КБ флэш-память 48lqfp
- вызов Деталь
- МК9С12СА256КАГ
- 16-бит, флэш-память, ЦП12 ЦП
- вызов Деталь
- МК56Ф84789ВЛЛ
- IC микроконтроллер 32 бит 256 КБ флэш-память 100lqfp
- вызов Деталь
- MC908JK8CDWE
- Микросхема IC 8bit 8kb flash 20soic
- вызов Деталь
- АТТ7053БУ-Н
- Интегральные схемы (ICS) ssop
- вызов Деталь
- АТТИНИ13А-СНР
- Микросхема IC 8bit 1kb flash 8soic
- 1: 1,59 доллара СШАДеталь
- MC9S08SH8CTJ
- Микросхема IC 8bit 8kb flash 20tsop
- вызов Деталь
- ЛМ3С2110-ИКК25-А2
- Risc микроконтроллер, 32-бит, флэш-память, 25 МГц
- вызов Деталь
- MCF53011CQT240
- Ic микроконтроллер 32-битный без ПЗУ 208tqfp
- вызов Деталь
- АТТИНИ167-А15СЗ
- Микросхема IC 8bit 16kb flash 20tsop
- 1: 1,59 доллара СШАДеталь
- Встроенные — микроконтроллеры, IC MCU 8BIT 32KB FLASH 44QFN
- Встроенный — микроконтроллеры, серия MSP430 CPUXV2 ИС микроконтроллера 16 бит 25 МГц 128 КБ (128 КБ x 8) FLASH 64-DSBGA
- Embedded — Микроконтроллеры, IC MCU 32BIT 256KB FLASH 64TQFP
- Embedded — микроконтроллеры серии e200z3 Микроконтроллер IC 32-разрядный одноядерный 64 МГц 1,5 МБ (1,5 М x 8) FLASH 176-LQFP (24×24)
- Embedded — Микроконтроллеры, IC MCU 8BIT 16KB FLASH 28SSOP
- Embedded — микроконтроллеры, серия 8051 ИС микроконтроллера 8 бит 25 МГц 4 КБ (4K x 8) FLASH 20-QFN (4×4)
АТТИНИ2313-20ПУ Популярность по регионам
Вас также может заинтересоватьПоделиться
Связанный параметрСвязанные статьи
ATTINY13A Микроконтроллер: Arduino, даташит, распиновка [видео и FAQ]
Ирэн 8 марта 2022 г. 1660
Обзор продукта ATtiny13A — это 8-разрядный КМОП-микроконтроллер с низким энергопотреблением, основанный на улучшенной RISC-архитектуре AVR®. Выполняя мощные инструкции за один такт, ATtiny13A достигает…
Продолжить чтение »
Микроконтроллер ATTINY1616: техническое описание, распиновка и макетная плата
Ирэн 12 апр 2022 1388
Каталог ОписаниеtinyAVR 1-series ОбзорATTINY1616 РаспиновкаATTINY1616 Development BoardПрограммистБлок-схемаКонфигурация и пользовательские предохранители (FUSE)ХарактеристикиТехнические характеристикиАтрибуты продуктаПроизводи. ..
Продолжить чтение »
Микроконтроллер
ATtiny85: техническое описание, разводка выводов, технические характеристики
Игги 25 февраля 2022 г. 8358
ATtiny85 — 8-контактный микроконтроллер. В этом блоге рассказывается о распиновке микроконтроллера ATtiny85, техническом описании, эквиваленте, функциях и другой информации о том, как использовать это устройство. Учебное пособие по Arduino — ATtiny…
Продолжить чтение »
Микроконтроллер ATtiny13: распиновка, даташит, программирование [видео]
Миа 21 февраля 2022 г. 3239
ATtiny13 — это маломощный 8-битный КМОП-микроконтроллер на основе улучшенной RISC-архитектуры AVR. Это вводная статья о 8-битном микроконтроллере ATtiny13, после прочтения которой вы…
Продолжить чтение »
Сравнительная таблица Atmel AVR ATtiny — схемы 2D PCM
ALL#ABCDEFGHIJKLMNOPQRSTUVWXYZ
Сравнительная таблица Atmel AVR ATtiny (3254 просмотра — Электроника и печатная плата)
ATtiny — это семейство микроконтроллеров, разработанных Atmel в конце 1990-х годов (позже Microchip Technology приобрела Atmel в 2016 году). Эти чипы имеют модифицированную архитектуру Гарварда с 8-битным процессорным ядром RISC. Самыми маленькими микроконтроллерами в своем семействе AVR являются микроконтроллеры серии ATtiny (8-битное ядро и меньше функций, меньше контактов ввода-вывода и меньше памяти, чем в других сериях AVR).
Перейти к статье
PARTcloud — Attiny
Пояснение по модели Hotspot
Показать в PARTcloud
Сравнительная таблица Atmel AVR ATtiny
Сравнительная таблица Atmel AVR ATtiny
ATtiny — это семейство микроконтроллеров, разработанных Atmel в конце 1990-х годов (позже Microchip Technology приобрела Atmel в 2016 году). Эти чипы имеют модифицированную архитектуру Гарварда с 8-битным процессорным ядром RISC. Самыми маленькими микроконтроллерами в своем семействе AVR являются микроконтроллеры серии ATtiny (8-битное ядро и меньше функций, меньше контактов ввода-вывода и меньше памяти, чем в других сериях AVR).
Содержимое
- 1 Характеристики
- 2 Хронология
- 4 Внешние ссылки
Особенности
Все семейство микроконтроллеров ATtiny не имеет ни одной из следующих функций: периферийное устройство USB, контроллер прямого доступа к памяти, механизм шифрования или шина внешней памяти.
В следующей таблице приведены общие характеристики микроконтроллеров ATtiny для удобства сравнения. Эта таблица не предназначена для использования в качестве полного списка функций.
Устройство (семейство) [1] | Макс. тактовая частота (МГц) | Флэш-память (КиБ) | SRAM (байт) | EEPROM (байт) | УАПП | I²C ( TWI ) | СПИ | Таймеры 8/12/16 (биты) | ШИМ [а] | АЦП каналов | контакты GPIO | Корпуса интегральных схем | Арка GCC ID [2] | Пгм Дбг | ссылок | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ATtiny4, ATtiny5, ATtiny9, ATtiny10 | 12 | 0,5/1 | 32 | № | № | № | № | 0 / 0 / 1 | 1 х 2 | 4 [б] | 4 | СОТ23-6, УДФН-8 | авртини10 | Интернет-провайдер | [3] [4] [5] [6] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATtiny11, ATtiny11L | 6, 2 | 1 | № | № | № | № | № | 1 / 0 / 0 | № | № | 5 | ДИП-8Н, СО200-8 | авр1 | № | [7] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATtiny12, ATtiny12L, ATtiny12V | 8, 1,2 | 1 | № | 64 | № | № | № | 1 / 0 / 0 | № | № | 5 | ДИП-8Н, СО200-8 | авр1 | Интернет-провайдер | [7] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATtiny13, ATtiny13V, ATtiny13A | 20, 10 | 1 | 64 | 64 | № | № | № | 1 / 0 / 0 | 1 х 2 | 4 | 6 | ДИП-8Н, СО150-8, СО209-8, ВКФН-10, ВКФН-20 | авр2. 5 | ИСП, дВт | [8] [9] [10] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATtiny15L | 1,6 | 1 | № | 64 | № | № | № | 2 / 0 / 0 | 1 | 4 | 6 | ДИП-8Н, СО200-8 | авр1 | Интернет-провайдер | [11] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATtiny20 | 12 | 2 | 128 | № | № | раб | ведущий, подчиненный | 1 / 0 / 1 | 2 х 2 | 8 | 12 | СО150-14, ЦСОП-14, ВКФН-20, УФБГА-15, ВЛКСП-12 | авртини10 | Интернет-провайдер | [12] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATtiny22, ATtiny22L | 8, 4 | 2 | 128 | 128 | № | № | № | 1 / 0 / 0 | № | № | 5 | ДИП-8Н, СО200-8 | авр2 | Интернет-провайдер | [13] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
20, 10 | 2, 4, 8 | 128, 256, 512 | 128, 256, 512 | УСИ* | ведущий, подчиненный* | ведущий, подчиненный* | 1 / 0 / 1 | 2 х 2 | 8 | 12 | ДИП-14Н, СО150-14, КФН-20, ВКФН-20, УФБГА-15 | авр2. 5 | ИСП, дВт | [14] [15] . 20, 10 | 2, 4, 8 | 128, 256, 512 | 128, 256, 512 | УСИ* | ведущий, подчиненный* | ведущий, подчиненный* | 2 / 0 / 0 | 2 x 2 [с] | 4 | 6 | ДИП-8Н, СО208-8, ЦСОП-8, КФН-20 | авр2.5 | ИСП, дВт | [20] [21] [22] | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATtiny26, ATtiny26L | 16, 8 | 2 | 128 | 128 | УСИ* | ведущий, подчиненный* | ведущий, подчиненный* | 2 / 0 / 0 | 1 х 2 | 11 | 16 | ДИП-20Н, СО300-20, КФН-32 | авр2 | Интернет-провайдер | [23] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATtiny28L, ATtiny28V | 4, 1,2 | 2 | 32 | № | № | № | № | 1 / 0 / 0 | 1 х 1 | № | 11 | ДИП-28Н, ТКФП-32, КФН-32 | авр1 | № | [24] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATtiny40 | 12 | 4 | 256 | № | № | раб | ведущий, подчиненный | 1 / 0 / 1 | 1 х 2 | 12 | 18 | СО300-20, ЦСОП-20, ВКФН-20 | авртини10 | Интернет-провайдер | [25] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATtiny43U | 8 | 4 | 256 | 64 | УСИ* | ведущий, подчиненный* | ведущий, подчиненный* | 2 / 0 / 0 | 2 х 2 | 4 | 16 | СО300-20, КФН-20 | авр2. 5 | ИСП, дВт | [26] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATtiny48, ATtiny88 | 12 | 4, 8 | 256, 512 | 64 | № | ведущий, подчиненный | ведущий, подчиненный | 1 / 0 / 1 | 1 х 2 | 6 / 8 | 24, 28 | ДИП-28Н, КФН-28, ТКФП-32, КФН-32, УФБГА-32 | авр2.5 | ИСП, дВт | [27] [28] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATtiny87, ATtiny167 | 16 | 8, 16 | 512 | 512 | УСИ*, УАПП* | № | ведущий, подчиненный | 1 / 0 / 1 | 1 х 1 | 11 | 16 | СО300-20, ЦСОП-20, ВКФН-32 | авр2.5, авр35 | ИСП, дВт | [29] [30] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATtiny261, ATtiny261A, ATtiny461, ATtiny461A, ATtiny861, ATtiny861A | 20 | 2, 4, 8 | 128, 256, 512 | 128, 256, 512 | УСИ* | ведущий, подчиненный* | ведущий, подчиненный* | 1 / 0 / 1 | 1 х 3 | 11 | 16 | ДИП-20Н, СО300-20, ЦСОП-20, КФН-32 | авр2. 5 | ИСП, дВт | [31] [32] [33] [34] [35] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATtiny441, | 1 ATtiny84116 | 4, 8 | 256, 512 | 256, 512 | 2 USART* | раб | ведущий, подчиненный | 1 / 0 / 2 | 2 х 2 | 17 | 12 | СО150-14, КФН-20, ВКФН-20 | авр2.5 | ИСП, дВт | [36] [37] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATtiny828 | 20 | 8 | 512 | 256 | USART* | раб | ведущий, подчиненный | 1 / 0 / 1 | 2 х 2 | 28 | 28 | TQFP-32, QFN-32 | авр2.5 | ИСП, дВт | [38] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATtiny1634 | 12 | 16 | 1024 | 256 | УЗИ*, 2 УЗИ* | раб | мастер* | 1 / 0 / 1 | 2 х 2 | 12 | 18 | СО300-20, КФН-20 | авр35 | ИСП, дВт | [39] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATtiny2313, ATtiny2313V, ATtiny2313A, ATtiny4313 | 20 | 2, 4 | 128, 256 | 128, 256 | УЗИ*, УЗИ* | ведущий, подчиненный* | ведущий, подчиненный* | 1 / 0 / 1 | 1 х 4 | № | 18 | ДИП-20Н, СО300-20, ВКФН-20 | авр2. 5 | ИСП, дВт | [40] [41] [42] [43] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATtiny102(F), ATtiny104(F) | 12 | 1 | 32 | № | USART* | № | мастер* | 0 / 0 / 1 | 2 х 2 | 5 / 9 | 6, 12 | СО150-8, СО150-14, УДФН-8 | авртины? | Интернет-провайдер | [44] [45] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATtiny202, ATtiny402 | 20 | 2, 4 | 128, 256 | 64, 128 | USART* | ведущий, подчиненный | ведущий, подчиненный | 0 / 0 / 2 / Р | ? | 6 | 6 | СО150-8 | авртины? | УПДИ | [46] [47] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATtiny204, ATtiny404, ATtiny804, ATtiny1604 | 20 | 2, 4, 8, 16 | 128, 256, 512, 1024 | 64, 128, 256 | USART* | ведущий, подчиненный | ведущий, подчиненный | 0 / 0 / 2 / Р | ? | 10 | 12 | СО150-14 | авртины? | УПДИ | [48] [49] [50] [51] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATtiny406, ATtiny806, ATtiny1606 | 20 | 4, 8, 16 | 256, 512, 1024 | 128, 256 | USART* | ведущий, подчиненный | ведущий, подчиненный | 0 / 0 / 2 / Р | ? | 12 | 18 | СО300-20, ВКФН-20 | авртины? | УПДИ | [52] [53] [54] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATtiny807, ATtiny1607 | 20 | 8, 16 | 512, 1024 | 128, 256 | USART* | ведущий, подчиненный | ведущий, подчиненный | 0 / 0 / 2 / Р | ? | 12 | 22 | ВКФН-24 | авртины? | УПДИ | [55] [56] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATtiny212, ATtiny412 | 20 | 2, 4 | 128, 256 | 64, 128 | USART* | ведущий, подчиненный | ведущий, подчиненный | 0 / 1 / 2 / Р | ? | 6 | 6 | СО150-8 | авртины? | УПДИ | [57] [58] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATtiny214, ATtiny414, ATtiny814, ATtiny1614 | 20 | 2, 4, 8, 16 | 128, 256, 512, 2048 | 64, 128, 256 | USART* | ведущий, подчиненный | ведущий, подчиненный | 0 / 1 / 2 / Р | ? | 10 | 12 | СО150-14 | авртины? | УПДИ | [59] [60] [61] [62] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATtiny416, ATtiny816, ATtiny1616, ATtiny3216 | 20 | 4, 8, 16, 32 | 256, 512, 2048 | 128, 256 | USART* | ведущий, подчиненный | ведущий, подчиненный | 0 / 1 / 2 или 3 / Р | 2 х 2 | 12 | 18 | СО300-20, КФН-20, ВКФН-20 | авртины? | УПДИ | [63] [64] [65] [66] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATtiny417, ATtiny817, ATtiny1617, ATtiny3217 | 20 | 4, 8, 16, 32 | 256, 512, 2048 | 128, 256 | USART* | ведущий, подчиненный | ведущий, подчиненный | 0 / 1 / 2 / Р | 2 х 2 | 12 | 22 | ВКФН-24, КФН-24 | авртины? | УПДИ | [67] [68] [69] [70] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Устройство (семейное) | Максимальная частота (МГц) | Флэш-память (КиБ) | SRAM (байт) | EEPROM (байт) | УАПП | I²C ( TWI ) | СПИ | Таймеры 8/12/16/R (биты) | ШИМ | АЦП каналов | контакты GPIO | Корпуса интегральных схем | Арка GCC ID | Пгм Дбг | ссылок |
Год | Устройство (семейство) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
старше | ATtiny11, ATtiny11L, ATtiny12, ATtiny12L, ATtiny12V, ATtiny15L, ATtiny22, ATtiny22L (Просьба: помогите найти год выпуска первого техпаспорта) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2003 | ATtiny13, ATtiny13V, ATtiny26, ATtiny26L, ATtiny2313, ATtiny2313V, ATtiny4313 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2005 | ATtiny24, ATtiny24V, ATtiny25, ATtiny25V, ATtiny28L, ATtiny28V, ATtiny44, ATtiny44V, ATtiny45, ATtiny45V, ATtiny84, ATtiny84V, ATtiny85, ATtiny85V | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2006 | АТтини261, АТтини461, АТтини861 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2008 | ATtiny13A, ATtiny24A, ATtiny44A, ATtiny48, ATtiny84A, ATtiny88 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2009 | ATtiny4, ATtiny5, ATtiny9, ATtiny10, ATtiny43U, ATtiny261A, ATtiny461A, ATtiny861A, ATtiny2313A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2010 | ATtiny20, ATtiny40, ATtiny87, ATtiny167 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2011 | АТтини1634 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2012 | АТтини441, АТтини841, АТтини828 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2016 | ATtiny102(F), ATtiny104(F), ATtiny417, ATtiny817, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
новее
9 «AVR307: полудуплексный UART с использованием модуля USI» (PDF) . Атмел. 2003. Проверено 10 июня 2014. .
Двухпортовая сеть «Сравнительная таблица Atmel AVR ATtiny», выпущенная под Лицензия Creative Commons Attribution-Share-Alike 3.0. есть список всех авторы в Википедии Электроника и печатная платаCadence, Mentor Graphics, Eagle CAD, Altium Designer, AUTODESK EAGLE, Cadence Allegro, DesignSpark PCB, Mentor PADS, Mentor Xpedition, Novarm DipTrace, Pulsonix, TARGET 3001!, Xpedition xDX Designer, Zuken CADSTAR, Altium P-CAD, Agnisys, Altera Quartus, OrCAD, kiCAD, Solido Design Automation, ELectronics, PCB, Curcuit Board, 3D-чертежи, 3D-библиотека, 3D-контент, дизайн печатных плат, 2D-символы, 2D-чертежи, 2D-значки, 2D-схемы ATTINY2313 -20SUR 구입 | ATTINY2313-20SUR 데이터 시트
IQ DIRECT
ATtiny2313 8-битный микроконтроллер AVR — распиновка, характеристики, техническое описание, работа, приложения3 ноября 2020 — 0 комментариев ATtiny2313 — это высокопроизводительный, но маломощный микроконтроллер Microchip с 8-разрядной архитектурой AVR RISC, который имеет 20 контактов, 18 из которых могут использоваться в качестве контактов ввода-вывода. Конфигурация контактов ATtiny2313
Характеристики и характеристики микроконтроллера ATtiny2313
Примечание. Полную техническую информацию можно найти в Техническом описании ATtiny2313 , ссылка на которое находится внизу этой страницы. Альтернативный продукт ATtiny2313 Альтернативные продукты для микроконтроллера ATtiny2313 перечислены ниже:
Знакомство с ATtiny2313 ATtiny2313 — это высокопроизводительный, но маломощный микроконтроллер с 8-разрядной архитектурой AVR RISC от Microchip, который имеет 20 контактов, из которых 18 контактов могут использоваться в качестве контактов ввода-вывода.
Он имеет мощную архитектуру инструкций, которая обеспечивает скорость обработки 1 MIPS на МГц, балансируя энергопотребление и одновременно обеспечивая высокую производительность. Скорость может достигать 20 MIPS, если используется максимальная частота 20 МГц. ATtiny2313 также поставляется с функцией отладки на кристалле debugWIRE, внутрисистемным программируемым портом SPI, режимами ожидания с низким энергопотреблением, отключением питания и режимом ожидания. Он также использует программируемую схему обнаружения пониженного напряжения.
Имеет широкий диапазон рабочего напряжения, от 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
Программирование микроконтроллера AVR Микроконтроллеры PIC можно программировать с помощью различного программного обеспечения, доступного на рынке. Есть люди, которые до сих пор используют язык ассемблера для программирования микроконтроллеров AVR. Приведенная ниже информация относится к наиболее продвинутому и распространенному программному обеспечению и компилятору, разработанному самой компанией Atmel (теперь Microchip).
Для программирования микроконтроллера AVR нам понадобится IDE (интегрированная среда разработки), где и происходит программирование. Компилятор, в котором наша программа преобразуется в удобочитаемую форму MCU, называемую HEX-файлами.
IDE: Atmel Studio 7 Компилятор: AVR и ARM Toolchains
Компания Microchip предоставила все эти два программного обеспечения бесплатно. Их можно скачать прямо с их официальной страницы. Я также предоставил ссылку для вашего удобства. После загрузки установите их на свой компьютер. Если у вас есть какие-либо проблемы с этим, вы можете опубликовать их в комментарии ниже.
Чтобы выгрузить или загрузить наш код в AVR, нам понадобится устройство с именем АТатмель-ICE. Программатор/отладчик ATATmel — ICE представляет собой простой внутрисхемный отладчик, которым управляет ПК с установленным программным обеспечением Atmel Studio на платформе Windows. |