Site Loader

Содержание

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 использует следующие режимы для экономии электроэнергии:

  1. Режим ожидания: останавливает процессор, позволяя таймеру/счетчику, АЦП, аналоговому компаратору, SPI, TWI и системе прерываний продолжать работать.
  2. Режим шумоподавления АЦП: минимизирует шум переключения во время преобразования АЦП за счет остановки процессора и всех модулей ввода-вывода, кроме АЦП.
  3. Режим отключения питания: регистры сохраняют свое содержимое, все функции микросхемы отключены до следующего прерывания или аппаратного сброса.

Устройство изготовлено с использованием технологии энергонезависимой памяти высокой плотности Atmel. Встроенная флэш-память ISP позволяет перепрограммировать память программ в системе через последовательный интерфейс SPI, с помощью обычного программатора энергонезависимой памяти или с помощью встроенного загрузчика-программ, работающего на ядре AVR. Загрузочная программа может использовать любой интерфейс для загрузки
прикладной программы во флэш-память. Объединяя 8-разрядный процессор RISC с встроенной само программируемой флэш-памятью на монолитном чипе, Atmel ATtiny88 представляет собой мощный микроконтроллер, который обеспечивает очень гибкое и экономичное решение для многих встроенных приложений управления.

AVR ATtiny88 поддерживается полным набором инструментов для разработки программ и систем, включая компиляторы C, макроассемблеры, отладчики/симуляторы программ и оценочные наборы.

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.
0 MHz
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&nbsp Встраиваемые микроконтроллеры  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&nbspapogeeweb,&nbsp&nbspAtN/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

ATTINY2313-20PU Изображения приведены только для справки.

Модели САПР
Основание

Символ

Атрибуты продукта
Производитель: Технология микросхем
Серия: 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 (без ограничений)

Документы и мультимедиа

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

Дистрибьюторы
АТТИНИ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
Микроконтроллер Рабочая температура: -40…85 °C Питание: 2,7…5,5 В Количество входов/выходов: 18 Количество таймеров: 2 Дополнительно: DebugWire Комплектация: DIL-20 EEPROM: 128 байт флэш-памяти : 2 КБ SRAM: 128 байт: Distrelec

По заказу

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

  • АТТИНИ2313-20ПУ Популярность по регионам

    Вас также может заинтересовать
    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)

    Связанные статьи

    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 ATtiny841 9 Можно использовать 4 контакта, но можно подключить только 3 уникальных генератора. 4-й контакт будет инверсией OC1B на 3-м контакте.
  • Столбец «Пакет» — число после тире означает количество контактов в корпусе, DIP означает корпус PDIP (Plastic DIP) с межрядным расстоянием 0,3 дюйма, SOwww означает корпус SOIC с шириной корпуса ‘ www’ в тысячных долях дюйма, некоторые пакеты могут быть известны под альтернативными именами.
  • Столбцы
  • UART/I²C/SPI — зеленая ячейка означает выделенное периферийное устройство, желтая ячейка означает многофункциональное периферийное устройство, которое выбирается путем установки битов конфигурации. Большинство периферийных устройств USART поддерживают минимальный выбор между UART или SPI, тогда как некоторые могут поддерживать дополнительные варианты, такие как LIN, IrDA, RS-485.
  • Столбец «Таймеры» — в последних семействах добавлен 12-разрядный таймер, а также 16-разрядный счетчик реального времени (RTC), который управляется тактовой частотой 32,768 кГц (функция, обозначенная буквой «R» в таблице).
  • Столбец каналов АЦП — общее количество аналоговых каналов, мультиплексируемых на вход АЦП. Большинство компонентов имеют один АЦП, некоторые имеют два АЦП.
  • Колонка Pgm/Dbg — встроенные протоколы программирования и отладки флэш-памяти. ISP означает внутрисистемный программируемый протокол, использует SPI для программирования внутренней флэш-памяти. dW означает протокол debugWIRE. UPDI означает унифицированный протокол программирования и интерфейса отладки.
Сокращения
  • TWI: Многие микроконтроллеры Atmels содержат встроенную поддержку интерфейса с двухпроводной шиной, называемую двухпроводным интерфейсом. По сути, это то же самое, что и интерфейс I²C от Philips, но этот термин избегается в документации Atmel из-за проблем с товарными знаками.
  • USI: универсальный последовательный интерфейс (не путать с USB). USI представляет собой многоцелевой аппаратный коммуникационный модуль. При соответствующей программной поддержке его можно использовать для реализации SPI, [71] I²C [72] [73] или интерфейс UART [74] .

Временная шкала

В следующей таблице перечислены все микроконтроллеры 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, 16 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 tinyAVR Fast and Code Efficient Flyer
  • Селектор продуктов Microchip для 8-разрядных микроконтроллеров AVR
  • Селектор продукции ATMEL tinyAVR [ мертвая ссылка ]
  • Все части tinyAVR в электронной таблице — журнал EDN, 8 сентября 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 데이터 시트

부품 번호 제조업체 설명 재고

ATTINY2313-20SUR

D# V36:1790_07152790

Микрочип Текнолоджи Инк

MCU 8-разрядный AVR RISC 2 КБ Flash 3,3 В/5 В 20-контактный SOIC W T/R

RoHS: соответствует

0

ATTINY2313-20SU

D# V36:1790_07152875

Микрочип Текнолоджи Инк

MCU 8-bit AVR RISC 2KB Flash 3. 3V/5V 20-Pin SOIC W Tube

RoHS: соответствует

0
부품 번호 제조업체 설명 재고

ATTINY2313-20SUR SL514

D# ATTINY2313-20SUR

Микрочип Текнолоджи Инк

MCU 8-разрядный ATtiny AVR RISC 2 КБ Flash 3,3 В/5 В 20-контактный SOIC W T/R — Cut TR (SOS) (альтернативный вариант: ATTINY2313-20SUR)

RoHS: соответствует

0

ATTINY2313-20SUR

D# ATTINY2313-20SUR

Корпорация Атмел

MCU 8-разрядный ATTINY2313 AVR RISC 2 КБ Flash 2,7–5,5 В 20-контактный SOIC T/R — Bulk (Альтернатива: ATTINY2313-20SUR)

0

ATTINY2313-20SU

D# ATTINY2313-20SU

Корпорация Атмел

MCU 8-разрядный ATtiny AVR RISC 2 КБ флэш-памяти 3,3 В/5 В 20-контактный SOIC W — Bulk (альтернативный вариант: ATTINY2313-20SU)

0
부품 번호 제조업체 설명 재고

ATTINY2313-20SUR

D# ATTINY2313-20SUR

Микрочип Текнолоджи Инк

MCU 8-разрядный ATTINY2313 AVR RISC 2 КБ Flash 2,7–5,5 В 20-контактный SOIC T/R (альтернативный вариант: ATTINY2313-20SUR)

0

ATTINY2313-20SU

D# ATTINY2313-20SU

Микрочип Текнолоджи Инк

MCU 8-разрядный ATtiny AVR RISC 2 КБ Flash 3,3 В/5 В 20-контактный SOIC W (альтернативный вариант: ATTINY2313-20SU)

0
부품 번호 제조업체 설명 재고

ATTINY2313-20SUR

D# ATTINY2313-20SUR

Микрочип Технология Инк

MCU 8-разрядный ATTINY2313 AVR RISC 2 КБ Flash 2,7–5,5 В 20-контактный SOIC T/R (альтернативный вариант: ATTINY2313-20SUR)

0

ATTINY2313-20SU

D# ATTINY2313-20SU

Микрочип Текнолоджи Инк

MCU 8-разрядный ATtiny AVR RISC 2 КБ Flash 3,3 В/5 В 20-контактный SOIC W (альтернативный вариант: ATTINY2313-20SU)

0
부품 번호 제조업체 설명 재고

АТТИНИ2313-20СУ

Корпорация Атмел 101
부품 번호 제조업체 설명 재고

ATTINY2313-20SU

D# 64S4024

Микрочип Текнолоджи Инк

MCU 8-разрядный AVR RISC 2 КБ Flash A

777
부품 번호 제조업체 설명 재고

АТТИНИ2313-20СУ

Корпорация Атмел

микроконтроллер, 8 бит, ATTINY, 20 МГц, SOIC-20

864

АТТИНИ2313-20СУР

Корпорация Атмел

микроконтроллер, 8 бит, ATTINY, 20 МГц, SOIC-20

864

부품 번호 제조업체 설명 재고

ATTINY2313-20SU

D# C1S1246001

Микрочип Текнолоджи Инк

20 МГц, SOIC, IND TEMP, зеленый, 1,8–5,5 В

RoHS: соответствует

pbСвободно: Да

Минимальное количество: 1

280
부품 번호 제조업체 설명 재고

АТТИНИ2313-20СУ

Микрочип Текнолоджи Инк

МИКРОЧИП SOIC-20 RoHS

21
부품 번호 제조업체 설명 재고

ATTINY2313-20SUR

D# ATTINY2313-20SURCT-ND

Микрочип Технология Инк

IC MCU 8BIT 2KB FLASH 20SOIC

1137

ATTINY2313-20SU

D# ATTINY2313-20SU-ND

Микрочип Технология Инк

IC MCU 8BIT 2KB FLASH 20SOIC

5531
부품 번호 제조업체 설명 재고

ATTINY2313-20SU

D# ATTINY2313-20SU

Корпорация Атмел

Ведущий в отрасли ISO:9001/AS9120A Дистрибьютор устаревших и труднодоступных интегральных схем/полуфабрикатов, специализирующийся на Altera/Xilinx. Собственная лаборатория по обнаружению подделок. В бизнесе 20 лет. Бесплатная доставка при заказе на сумму более 250 долларов. Покупайте в Америке, покупайте напрямую

2582
부품 번호 제조업체 설명 재고

ATTINY2313-20SUR

Микрочип Текнолоджи Инк

В наличии доставка в течение 2 дней

188

ATTINY2313-20SU

Микрочип Текнолоджи Инк

В наличии доставка в течение 2 дней

30525
부품 번호 제조업체 설명 재고

ATTINY2313-20SUR

D# 2425138RL

Микрочип Текнолоджи Инк

микроконтроллер, 8 бит, ATTINY, 20 МГц, SOIC-20

RoHS: соответствует

Минимальное количество: 1

Контейнер: Катушка

0

ATTINY2313-20SU

D#06

Микрочип Текнолоджи Инк

микроконтроллер, 8 бит, ATTINY, 20 МГц, SOIC-20

RoHS: соответствует

Минимальное количество: 1

Контейнер

: каждый

1773
부품 번호 제조업체 설명 재고

АТТИНИ2313-20СУ

Микрочип Текнолоджи Инк

Серия ATtiny 2 КБ флэш-памяти 128 Б SRAM 20 МГц 8-разрядный микроконтроллер — SOIC-20

RoHS: соответствует

pbСвободно: Да

4649

АТТИНИ2313-20СУР

Микрочип Текнолоджи Инк

IC 8-БИТНЫЙ МИКРОКОНТРОЛЛЕР, 2 КБ FLASH В 20-выводном корпусе SOIC

RoHS: соответствует

pbСвободно: Да

0
부품 번호 제조업체 설명 재고

ATTINY231320SURSL514

Микрочип Текнолоджи Инк

OEM/CM ТОЛЬКО ЦЕНЫ | НЕТ БРОКЕРОВ

392

АТТИНИ231320СУР

Микрочип Текнолоджи Инк

OEM/CM ТОЛЬКО ЦЕНЫ | НЕТ БРОКЕРОВ

8050
부품 번호 제조업체 설명 재고

ATTINY231320SURSL514

Микрочип Текнолоджи Инк

ТОЛЬКО OEM/CM

3100
부품 번호 제조업체 설명 재고

ATTINY2313-20SU

Корпорация Атмел

В наличии

25
부품 번호 제조업체 설명 재고

АТТИНИ2313-20СУ

Микрочип Текнолоджи Инк ИС микроконтроллера серии

AVR 8 бит 20 МГц 2 КБ (1K x 16) FLASH 20-SOIC

RoHS: соответствует

30000

АТТИНИ2313-20СУР

Микрочип Текнолоджи Инк ИС микроконтроллера серии

AVR 8 бит 20 МГц 2 КБ (1K x 16) FLASH 20-SOIC

RoHS: соответствует

10000
부품 번호 제조업체 설명 재고

ATTINY2313-20SU

D# C614918

Микрочип Текнолоджи Инк 21
부품 번호 제조업체 설명 재고

АТТИНИ2313-20СУ

Корпорация Атмел

в наличии — можем отправить в тот же день

20
부품 번호 제조업체 설명 재고

АТТИНИ2313-20СУР

Микрочип Текнолоджи Инк

MCU 8-разрядный AVR RISC 2 КБ Flash 3,3 В/5 В 20-контактный SOIC W T/R

RoHS: не соответствует

1000

АТТИНИ2313-20СУ

Микрочип Технология Инк

MCU 8-bit — AVR ATtiny Family Микроконтроллеры серии ATtiny23 — 20 МГц — 2 КБ флэш-памяти — 3,3 В/5 В — 20-контактный.

RoHS: не соответствует

759
부품 번호 제조업체 설명 재고

ATTINY2313-20SU

D# ATTINY2313-20SU

Микрочип Текнолоджи Инк

20 МГц SOIC IND TEMP Зеленый 1,8–5,5 В

RoHS: соответствует

pbСвободно: Да

4877

ATTINY2313-20SUR

D# ATTINY2313-20SUR

Микрочип Текнолоджи Инк

20 МГц SOIC IND TEMP ЗЕЛЕНЫЙ T&R

RoHS: соответствует

pbСвободно: Да

0
부품 번호 제조업체 설명 재고

АТТИНИ2313-20СУ

Корпорация Атмел

OEM/CM Немедленная поставка

5000
부품 번호 제조업체 설명 재고

ATTINY2313-20SU

D# 556-ATTINY2313-20SU

Микрочип Технология Инк

8-разрядные микроконтроллеры — MCU 2 КБ Flash 0,128 КБ EEPROM 18 контактов ввода-вывода

RoHS: соответствует

1805
부품 번호 제조업체 설명 재고

АТТИНИ2313-20СУР

Микрочип Текнолоджи Инк

20 МГц, SOIC, IND TEMP, ЗЕЛЕНЫЙ, T&R — Упаковка: 20 SOIC 0,300 дюйма T/R

RoHS: соответствует

0

АТТИНИ2313-20СУ

Микрочип Текнолоджи Инк

20 МГц, SOIC, IND TEMP, зеленый, 1,8–5,5 В — Упаковка: 20 SOIC 0,300 дюймов TUBE

RoHS: соответствует

0
부품 번호 제조업체 설명 재고

ATTINY2313-20SU

D# ATTINY2313-20SU

КОРПОРАЦИЯ АТМЕЛ

8-БИТ, FLASH, 20 МГц, МИКРОКОНТРОЛЛЕР RISC, PDSO20

657

ATTINY2313-20SUR

D# XSKDRABV0017276

МИКРОКОММЕРЧЕСКИЕ КОМПОНЕНТЫ 386
부품 번호 제조업체 설명 재고

ATTINY2313-20SU

D# 27AC0613

Микрочип Текнолоджи Инк

20 МГц, SOIC, IND TEMP, ЗЕЛЕНЫЙ, 1,8–5,5 В СООТВЕТСТВУЕТ ROHS: ДА

RoHS: соответствует

Минимальное количество: 37

Контейнер: сыпучий

34

ATTINY2313-20SUR

D# 68T3548

Микрочип Текнолоджи Инк

20 МГц, SOIC, IND TEMP, ЗЕЛЕНЫЙ, T&R, 20 SOIC . 300IN T/R СООТВЕТСТВУЕТ ROHS: ДА

RoHS: соответствует

Минимальное количество: 1000

Контейнер: ЛЕНТА И КАТУШКА — ПОЛНАЯ

0
부품 번호 제조업체 설명 재고

ATTINY2313-20SU

D# NS-ATTINY2313-20SU

Корпорация Атмел

ТОЛЬКО OEM/CM

4961

ATTINY2313-20SUR

D# NS-ATTINY2313-20SUR

Корпорация Атмел

ТОЛЬКО OEM/CM

2408
부품 번호 제조업체 설명 재고

АТТИНИ2313-20СУР

Микрочип Текнолоджи Инк

MCU 8-разрядный AVR RISC 2 КБ Flash 3,3 В/5 В 20-контактный SOIC W T/R

RoHS: не соответствует

1000

АТТИНИ2313-20СУ

Микрочип Технология Инк

MCU 8-bit — AVR ATtiny Family Микроконтроллеры серии ATtiny23 — 20 МГц — 2 КБ флэш-памяти — 3,3 В/5 В — 20-контактный.

RoHS: не соответствует

759
부품 번호 제조업체 설명 재고

АТТИНИ2313-20СУ

Корпорация Атмел

IC MCU AVR 2K FLASH 20SOIC

40

부품 번호 제조업체 설명 재고

ATTINY2313-20SU

D# 1330974

Микрочип Текнолоджи Инк

Microchip ATTINY2313-20SU, 8-битный микроконтроллер AVR, AVR, 20 МГц, 2 КБ Flash, 20-контактный SOIC, PK

Минимальное количество: 5

Контейнер: Пакет

40

АТТИНИ2313-20СУР

Д# 19

Микрочип Текнолоджи Инк

Microchip ATTINY2313-20SUR, 8-битный микроконтроллер, микроконтроллеры, 20 МГц, 8 КБ флэш-памяти, 20-контактный 20S, RL

Минимальное количество: 1000

Контейнер: Катушка

790
부품 번호 제조업체 설명 재고

АТТИНИ2313-20СУР

Корпорация Атмел

ATTINY2313 — RISC-микроконтроллер, 8-разрядный, FLASH, AVR RISC CPU

RoHS: соответствует

140

АТТИНИ2313-20СУ

Корпорация Атмел

ATTINY2313 — RISC-микроконтроллер, 8-разрядный, FLASH, AVR RISC CPU

RoHS: соответствует

1769
부품 번호 제조업체 설명 재고

ATTINY231320SUR SL514

Микрочип Текнолоджи Инк

ТОЛЬКО OEM/CM

436

АТТИНИ231320СУР

Корпорация Атмел

ТОЛЬКО OEM/CM

1065
부품 번호 제조업체 설명 재고

АТТИНИ2313-20СУ

Корпорация Атмел

В НАЛИЧИИ Срочная доставка

5015
부품 번호 제조업체 설명 재고

ATTINY2313-20SU

Корпорация Атмел

доставка сегодня

2996
부품 번호 제조업체 설명 재고

ATTINY2313-20SUR

D# 51574730

Микрочип Текнолоджи Инк

MCU 8-разрядный AVR RISC 2 КБ Flash 3,3 В/5 В 20-контактный SOIC W T/R

RoHS: соответствует

0

ATTINY2313-20SU

D# 47223441

Микрочип Текнолоджи Инк

MCU 8-bit AVR RISC 2KB Flash 3. 3V/5V 20-Pin SOIC W Tube

RoHS: соответствует

0
부품 번호 제조업체 설명 재고

АТТИНИ2313-20СУ

Корпорация Атмел

Запрос предложений

9803
부품 번호 제조업체 설명 재고

АТТИНИ2313-20СУ

Корпорация Атмел

IC MCU 8BIT 2KB FLASH 20SOIC

100

АТТИНИ2313-20СУР

Микрочип Текнолоджи Инк

IC MCU 8BIT 2KB FLASH 20SOIC

100
부품 번호 제조업체 설명 재고

ATTINY2313-20SUR

D# 2425138RL

Микрочип Текнолоджи Инк

микроконтроллер, 8 бит, ATTINY, 20 МГц, SOIC-20

RoHS: соответствует

Минимальное количество: 1

Контейнер: Катушка

0

ATTINY2313-20SU

D#06

Микрочип Текнолоджи Инк

микроконтроллер, 8 бит, ATTINY, 20 МГц, SOIC-20

RoHS: соответствует

Минимальное количество: 1

Контейнер

: каждый

848

IQ DIRECT

  • 2019 открывается новыми контроллерами для Preservatech
  • Реактивный подход в высоконагруженном приложении на примере сервиса расчета кэшбэка
  • Стабилизаторы переменного-постоянного тока, разработка и производство 2000 шт.
  • Преобразователь переменного тока в постоянный
  • Системы контроля доступа
  • Доступ к одному файлу из разных потоков или процессов и поддержание согласованности без использования дополнительных блокировок
  • Учет и защита от кражи книг
  • Профессионалы Altium Designer
  • Живой видеоплеер Android
  • Основной доклад Apple на WWDC был направлен на разработчиков программного обеспечения
  • Сборочный цех
  • Автоматическая система идентификации транспортных средств
  • Штрих-код против. RFID-метка
  • Технология блокчейна означает начало эры Интернета ценности
  • Boeing и Nammo испытали боеприпасы Ramjet 155 нового поколения
  • Владельцы бизнеса требуют более быстрой доставки программного обеспечения
  • [Пример кода C++] Как определить разрешение принтера?
  • Математические функции С++
  • Изменить порт подключения к удаленному рабочему столу на Windows Server
  • Интеграция с ChannelAdvisor
  • Чипы и вилки
  • [Пример кода] Получение версии приложения C++ из ресурса VS_VERSION
  • [Фрагмент кода] Анализ книги в формате FB2 на C#
  • Контрактное производство релейных плат для нашего клиента
  • Защита от подделок
  • Рабочий стол нашего инженера
  • Отображение диалогового окна открытия файла с помощью WinApi
  • Docker-образы Alpine Linux содержали уязвимость с жестко запрограммированными паролями
  • Доля рынка электронной коммерции в Соединенном Королевстве оценивается в 153 миллиарда евро
  • Услуги по производству электроники
  • Обеспечьте согласованность хранимых данных с помощью проверки циклическим избыточным кодом (CRC)
  • Система оплаты проезда
  • Fiddler: мощный инструмент отладки для любого веб-разработчика
  • Гибкая батарея стимулирует рынок активных RFID-меток
  • Многопользовательское программное обеспечение FriendlySeats для Windows
  • Счастливого дня независимости!
  • С Днем Благодарения 2018!
  • Нанять сотрудника или подрядчика?
  • История создания языка Java
  • Как работает RFID?
  • Как назначить горячие клавиши (горячие клавиши) элементам управления C# Windows Forms?
  • Как стать хорошим разработчиком программного обеспечения
  • Как стать инженером-программистом?
  • Как создать отличную команду разработчиков программного обеспечения
  • Как общаться с водителем, отправляя коды IOCTL?
  • Как рекурсивно загрузить весь веб-сайт через FTP с помощью Wget
  • Как включить TLS V1. 2 в .NET Framework 4.0
  • Как оценить опыт разработчика программного обеспечения, ответив на 5 простых вопросов? Ответ эксперта
  • Как исправить ошибку самозаверяющих SSL-сертификатов в клиентах C# REST
  • Как получить список всех часовых поясов и их смещения UTC в C# (с примером кода)
  • Как получить текст ячейки Excel в OpenXML SDK 2.5?
  • Как получить путь к текущему исполняемому файлу в C# (пример кода)
  • Как гарантировать согласованность данных в многопоточных средах?
  • Как убить процесс по имени в Windows с помощью WinAPI?
  • Как сделать приложение C++ независимым от среды выполнения Visual C++?
  • Как передать проект на аутсорсинг, если клиент остался доволен?
  • Как прочитать строку подключения из App.config
  • Как читать прямые события мыши и клавиатуры в консольном приложении С++?
  • Как запросить HTTP(S) API или страницу в MFC
  • Как сбросить MCU STM32 программно?
  • Как программно выключить компьютер в Windows
  • Как запустить несколько потоков и дождаться их завершения в C#
  • Как разархивировать файл в Ubuntu Linux
  • Huawei разрабатывает собственную операционную систему вместо Android. Что известно об этом?
  • Контроллер влажности — от проектирования до серийного производства
  • Сушилка для палочек для мороженого
  • Введение в дополненную реальность
  • IQ Direct вошла в число лучших компаний Интернета вещей на Clutch!
  • IQ Direct Inc — один из лучших разработчиков программного обеспечения в Польше
  • IQ Direct Inc. названа лучшим разработчиком в Нью-Йорке по версии Clutch
  • IQ Direct признана лучшей компанией-разработчиком IoT в 2019 году
  • Ирландская банковская индустрия объявляет об образовательной платформе Blockchain
  • JP Morgan разрабатывает вариант блокчейна Ethereum (ETH)
  • Уровень нашей безопасности
  • Контролер камеры хранения
  • Карта как карта…
  • Массовое производство исполнительных плат для контроллера багажного отделения
  • McKinsey Repost сообщает, что крупные банковские учреждения откладывают внедрение блокчейна
  • С Рождеством!
  • Microsoft Excel имеет встроенную биткойн-валюту
  • Миниатюрный гравер
  • Блок питания 100 Вт для миниатюрной рабочей станции
  • Современные технологии радиочастотной идентификации
  • Иголка в стоге сена
  • Программное обеспечение NetAdmin для интернет-кафе
  • Новые технологии отслеживания посетителей RFID на спортивных, художественных и музыкальных мероприятиях
  • Объектно-ориентированное программирование против функционального программирования
  • Еще раз о RFID
  • Интеграция с Oracle NetSuite
  • Элементы управления веб-камерой Pan-Tilt-Zoom
  • Физические основы технологии RFID
  • Возможное использование RFID
  • Preservatech MaxiOne
  • Preservatech MiniOne
  • Определение радиочастоты. Бесконтактная технология
  • Радиотег — это ты!
  • RFID-метки убивают устройства
  • RFID: революция в системах идентификации
  • RFID: преимущество перед штрих-кодом
  • Применение RFID в наличии
  • RFID-приложения
  • Решения на основе RFID
  • RFID-наличные
  • RFID: описание, использование и преимущества
  • RFID — от мечты к реальности
  • RFID в больнице
  • RFID — логистика и склад
  • RFID: Системы радиочастотной идентификации
  • RFID — технология радиочастотной идентификации
  • Решения RFID для розничной торговли
  • Метки RFID — революция в системах идентификации
  • RFID-метки и считыватели
  • RFID: Метки для всех # 1
  • RFID-метки указывают путь слепым
  • Rheinmetall поставит в США легкие артиллерийские орудия
  • Жесткий кейс для оборудования
  • Россияне пытаются использовать противорадиолокационные отражатели против ракет, поставленных США
  • Схемный дизайн
  • Доставка машин GoScribe в Объединенные Арабские Эмираты
  • Покупки со скоростью мысли
  • Sikorsky Aircraft изготовит шесть вертолетов для президента США стоимостью 542 миллиона долларов
  • Тихая революция
  • Простая программа для объяснения рендеринга SDL
  • Разработчики программного обеспечения заинтересованы в блокчейне, говорится в опросе
  • Бюджет разработки программного обеспечения на 2020 год
  • [Исходный код] Генератор случайных паролей C#
  • Режимы аутентификации SQL Server
  • Сравнение SQLite и SQL Server
  • Генератор надежных случайных паролей
  • RFID-метка и считыватель
  • Блокчейн-проект Telegram достиг стадии бета-тестирования, инсайдерская информация
  • Главком ВСУ призвал союзников передать Украине дальнобойное оружие
  • Немецкая РСЗО MARS II — аналог американской РСЗО
  • Какие компании-мультимиллиардеры инвестируют в блокчейн?
  • Этот отмеченный мир
  • 3 распространенные ошибки в IT-стартапах и как их избежать
  • Советы по открытию онлайн-бизнеса в Калифорнии
  • Украина ждет решения от Rammstein-2 по РСЗО
  • Украинская компания разрабатывает боевые дроны и дроны-камикадзе
  • Универсальный измеритель температуры и влажности
  • Области использования языка Си: информационная безопасность, драйверы, написание прошивок
  • Использование ИИ для борьбы с вредоносным ПО
  • Использование мьютексов C# для межпроцессной синхронизации
  • Использование машинного обучения для обработки текста на естественных языках
  • WebAssembly как высокопроизводительный UI-движок
  • Что такое пьезопреобразователь?
  • Что такое электричество?
  • Что такое блокчейн?
  • Что для FreeRTOS используется?
  • Что такое файл определения модуля (файл . DEF)?
  • Что такое КСВ?
  • Для чего хороша Java?
  • Что такое RFID?
  • Каково будущее бесконтактных платежей в США?
  • Как насчет входа с помощью функции Apple?
  • Где скачать последнюю версию .NET Framework
  • Какие навыки разработки программного обеспечения не подвержены старению?
  • Почему в Саут-Бенде так мало парков?
  • Драйвер режима ядра Windows для устройства LPT
  • Драйвер сетевой фильтрации в режиме ядра Windows
  • Беспроводное RFID-решение для бетонной промышленности
  • Написание прошивки для микроконтроллеров

  • 404 Ошибка
  • 616 Corporate Way, Vly Cottage NY 10989
  • О нас
  • О нас
  • Блог
  • Блог
  • Контакты
  • Контакты
  • Отзывы
  • Дом
  • портфолио
  • Отзывы
  • Карта сайта

  • STM32F4 HAL. pdf
  • LTC4054.pdf
  • Кабели UART с микросхемой FTDI DS_TTL-232RG_CABLES.pdf
  • Примечание по применению IGBT.PDF
  • 24AA02E48.pdf
  • См4001.pdf
  • BK3231.pdf
  • BC337.PDF
  • ATXMEGA-AU_Manual.pdf
  • AND8284-D.PDF
  • CY62256N_001-06511_0I_V.pdf
  • Примечание по применению ST485.pdf
  • Усилитель термопары AD8494.pdf
  • LM7812.pdf
  • MCP6001-02.pdf
  • LHI_968_PYD_1398_DS.pdf
  • Макс3232.pdf
  • TL431.pdf
  • Руководство по проектированию RS-485 от TI.pdf
  • BC327.PDF
  • ADXL345 AN-1077.pdf
  • IR MOSFET КОДЫ ЧАСТЕЙ.pdf
  • 24C02.pdf
  • SIM7500_SIM7600 Series_AT Command Manual _V1.10.pdf
  • ATTiny1616.pdf
  • ADF4350.pdf
  • Ирс2184.pdf
  • DS1307.pdf
  • ИРМ-05-СПЕЦ.pdf
  • STM32F303xC Datasheet. pdf
  • Руководство по EmWin.pdf
  • ENG_SS_108-98009_M.pdf
  • MC34063A-D.PDF
  • Реле TR90_TS.pdf
  • STM32F446VE Datasheet.pdf
  • ACS713.pdf
  • LMV431.pdf
  • NCP3063-D.PDF
  • Топ224пн.pdf
  • BTA41_ST.pdf
  • Atmega128.pdf
  • ATMega16.pdf
  • Atmel-8127-avr-8-битный микроконтроллер-attiny4-attiny5-attiny9-attiny10_datasheet.pdf
  • BC807_BC807W_BC327.pdf
  • STM32x7 Кэш Appnote.pdf
  • Микро-USB_1_01.pdf
  • AD820.pdf
  • S700-AT070TN92.pdf
  • Ир2108.pdf
  • Мифаре 1К.pdf
  • Topswitch-hx_family_datasheet.pdf
  • Ne555.pdf
  • Atmel-ICE_UserGuide.pdf
  • ATmega 48 88 168.pdf
  • Atmega8.pdf
  • АН-Д25.pdf
  • Инструкция ОТ 24022024024 ДИМ П.pdf
  • ATXMEGA-32A4U.pdf
  • SIM900_Проектирование оборудования_V2. 00.pdf
  • MC14584B-D.pdf
  • Tektronix-TDS520-Осциллограф-Руководство по эксплуатации.pdf
  • W5500 Ethernet IC.pdf
  • BC817_BC817W_BC337.pdf
  • HER501-508.pdf
  • LTC4411.pdf
  • Дг408-09.pdf
  • РЕЛЕ ЛУ.pdf
  • Lwip.pdf
  • ATMega32.pdf
  • 128mb_x32_sdram.pdf
  • EPS-15.pdf
  • CD4042.pdf
  • Управление симисторами с помощью Phototriacs.pdf
  • Bq2057.pdf
  • Ир2184.pdf
  • IRF7314.pdf
  • ACS712.pdf
  • ATTiny2313.pdf
  • MC74HC14A.pdf
  • TIP48.pdf
  • TSOP4836_ds.pdf
  • IRF840.pdf
  • TLV431.pdf
  • Ktc945b.pdf
  • Кта733б (1).pdf
  • AP65550.pdf
  • ELM327DS.pdf
  • ATMega64.pdf
  • HER201-HER207.pdf
  • ADXL345.pdf
  • WIMA_FKP1.pdf
  • Bluetoothdual_en. pdf
  • ATXMEGA-32A4.pdf
  • Irf7311.pdf
  • ATxmega64A1-ATxmega128A1_Технические данные.pdf

  • Драйвер параллельного порта Windows 64bit
  • Пользовательский изолированный источник питания
  • Счетчик воды с прошивкой для подключения к мобильным устройствам
  • Приложение для управления веб-камерой
  • Программирование контроллера двигателя Texas Instruments
  • Пользовательский блок питания для миникомпьютера
  • C++ для разработки под Windows
  • Программное обеспечение для интеграции браузера
  • Проект кодирования C++
  • Программное обеспечение для Windows
  • Машины GoScribe
  • Программное обеспечение для автоматизации для компании потребительских товаров
  • Прототип инкубатора для животноводства для технической фирмы
  • Автоматизированный модуль управления питанием для производственной компании

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

3 ноября 2020 — 0 комментариев

          ATtiny2313 Микроконтроллер AVR
          ATtiny2313 Распиновка

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

       

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

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

      Название контакта

      Описание

      1

      СБРОС/dW/PA2

      Порт A, бит 2 или СБРОС используется в основном для программирования или dW

      2

      ПД0/RXD

      Двунаправленный ввод-вывод порта D, бит 0 или UART DATA Receive

      3

      ПД1/ТСД

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

      4

      PA1/XTAL2

      Порт A, бит 1 или Crystal Out

      5

      PA0/XTAL1

      Порт A, бит 0 или Crystal In

      6

      PD2/CKOUT/XCK/INT0

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

      7

      PD3/INT1

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

      8

      ПД4/Т0

      Контакт двунаправленного ввода-вывода порта D, бит 4 или таймер 0, выход/счетчик

      9

      ПД5/ОС0Б/Т1

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

      10

      ЗЕМЛЯ

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

      11

      ПД6/ИКП

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

      12

      PB0/AIN0/PCINT0

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

      13

      PB1/AIN1/PCINT1

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

      14

      ПБ2/ОС0А/ПКИН2

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

      15

      PB3/OC1A/PCINT3

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

      16

      PB4/OC1B/PCINT4

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

      17

      PB5/MOSI/DI/SDA/PCINT5

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

      18

      ПБ6/МИСО/ДО/ПКИНТ6

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

      19

      ПБ7/УКСК/СКЛ/ПКИНТ7

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

      20

      ВКЦ

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

       

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

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

      ЦП

      8-битный AVR

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

      20

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

      1,8-5,5 В

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

      18

      Модуль АЦП

      нет

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

      8-битный(1), 16-битный(1)

      Компараторы

      1

      Модуль ЦАП

      нет

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

      1-UART, 2-SPI, 1-I2C

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

      Да

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

      8 МГц

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

      2 КБ

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

      20 MIPS

      байт ОЗУ

      128

      ЭСППЗУ данных

      128 байт

       

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

       

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

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

      1. ATtiny2313A (Точная альтернатива новой версии)
      2. АТтини417
      3. АТтини28Л
      4. АТтини48
      5. ATmega88PA
      6. ATmega8A
      7. ATmega8515
      8. ATmega8535
      9. ATmega645A
      10. ATmega6490

       

      Знакомство с 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

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

      ЦП

      8-битный AVR RISC

      Архитектура

      8

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

      2

      ОЗУ (байт)

      128

      ЭСППЗУ/HEF

      128

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

      20

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

      20

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

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

      4 МГц

      Количество компараторов

      1

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

      0

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

      0

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

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

      0

      Номер преобразователя ЦАП

      0

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

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

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

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

      1

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

      1

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

      0

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

      0

      Количество выходов ШИМ

      4

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

      1024

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

      0

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

      № модуля UART

      1

      № модуля SPI

      2

      № модуля I2C

      1

      № USB-модуля

      0

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

      CRC/скан

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

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

      4

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

      0

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

      -40

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

      85

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

      1,8 / (2,7 до 10 МГц) / (4,5 до 20 МГц)

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

      5,5

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

       

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

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

       

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

       

      IDE: Atmel Studio 7

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

       

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

       

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

      alexxlab

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

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