Процессоры risc и cisc — файл 1.doc

Какую литературу читать о микроконтроллерах AVR для начинающих?

Для обучения молодых специалистов написаны горы литературы, давайте рассмотрим некоторые из них:

Евстифеев А.В. «Микроконтроллеры AVR семейства Mega». В книге подробно рассмотрена архитектура микроконтроллера. Описано назначение всех регистров и таймеров, а также их режимы работы. Изучена работа интерфейсов связи с внешним миром SPI и т. д. Система команд раскрыта для понимания радиолюбителю среднего уровня

Материал книги «Микроконтроллеры avr семейства mega: руководство пользователя» поможет изучить структуру чипа и назначение каждого из его узлов, что, безусловно, важно для любого программиста микроконтроллеров.
Белов А.В. – «Микроконтроллеры AVR в радиолюбительской практике»

Как видно из названия, эта книга, в большей степени, посвящена практической стороне работы с микроконтроллерами. Подробно рассмотрен ставший классическим микроконтроллер ATiny2313, а также многие схемы для сборки.
Хартов В.Я. «Микроконтроллеры AVR. Практикум для начинающих». Поможет разобраться в AVR studio 4, а также стартовом наборе STK Вы научитесь работать с последовательными и параллельными интерфейсами, такими как UART, I2C и SPI. Книга «Микроконтроллеры AVR. Практикум для начинающих» написана преподавателем МГТУ им. Н.Э.Баумана и используется там для изучения этой темы.

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

Среди радиолюбителей начального уровня есть только один конкурент AVR – PIC микроконтроллеры.

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

История создания архитектуры AVR

Идея разработки нового RISC-ядра принадлежит двум студентам Norwegian University of Science and Technology (NTNU) из норвежского города Тронхейма (Trondheim) — Альфу Богену (Alf-Egil Bogen) и Вегарду Воллену (Vegard Wollen). В 1995 году Боген и Воллен решили предложить американской корпорации Atmel, которая была известна своими чипами с Flash-памятью, выпускать новый 8-битный RISC-микроконтроллер и снабдить его Flash-памятью для программ на одном кристалле с вычислительным ядром.

Идея была одобрена Atmel Corp., и было принято решение незамедлительно инвестировать в данную разработку. В конце 1996 года был выпущен опытный микроконтроллер AT90S1200, а во второй половине 1997-го корпорация Atmel приступила к серийному производству нового семейства микроконтроллеров, к их рекламной и технической поддержке.

Новое ядро было запатентовано и получило название AVR. Существует несколько трактовок данной аббревиатуры. Кто-то утверждает, что это Advanced Virtual RISC, другие полагают, что не обошлось здесь без Alf Egil Bogen Vegard Wollan RISC.

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

Итак, что же даёт нам ядро помимо выбора настроек МК? Можно программировать МК всё теми же командами, что и раньше! Мигать светодиодами через digitalWrite, измерять напряжение через analogRead и прочее прочее. Давайте напишем классический Blink:

void setup() {
  pinMode(PB3, OUTPUT);
}

void loop() {
  digitalWrite(PB3, HIGH);
  delay(500);
  digitalWrite(PB3, LOW);
  delay(500);
}

PB3 – это номер пина, прямо как на распиновке. Всё! Осталось загрузить прошивку. Для этого нажимаем Скетч/Загрузить через программатор:   Я подключил светодиод через резистор на 220 Ом и он мигает два раза в секунду, всё как написано.   Что следует помнить при работе с тиньками: у них мало памяти, а все вот эти Ардуино-функции являются кошмаром индуса и занимают очень много места в памяти. Если тини85 ещё как-то переживёт такие издевательства и сможет уместить в себе вполне интересный проект из Ардуино-функций, то в тини13 уже сложно уместить что-то серьёзное. Напомню: всего 64 байта оперативной памяти и 1 кб флэша!

Важный момент по работе с ядрами для других МК, у которых больше 8 ног. Для сохранения удобства работы с IO функциями ядра (digital/analog/Read/Write) к пину можно обращаться как PIN_ + имя_ноги на распиновке, например подадим высокий сигнал на пин PC3: . Все остальные нюансы расписаны на странице ядер по ссылкам выше.

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

“Загрузить через программатор”

Одноимённый пункт в меню “Скетч” в Arduino IDE загружает скетч через выбранный программатор, а также затирает загрузчик! Если в проекте было решено использовать загрузчик – не используйте загрузку через программатор после его прошивки!

Описание

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

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

Большое распространение получили микроконтроллеры с RISC-архитектурой (англ. Reduced Instruction Set Computer — вычисления с сокращённым набором команд). Сокращенный набор команд позволяет выполнять большинство инструкций за один такт, что обеспечивает высокое быстродействие даже при относительно низкой тактовой частоте.

Кроме ОЗУ, микроконтроллер может иметь встроенную энергонезависимую память для хранения программы и данных. Во многих контроллерах вообще нет шин для подключения внешней памяти. Наиболее дешёвые типы памяти допускают лишь однократную запись. Такие устройства подходят для массового производства в тех случаях, когда программа контроллера не будет обновляться. Другие модификации контроллеров обладают возможностью многократной перезаписи энергонезависимой памяти. В отличие от процессоров общего назначения, в микроконтроллерах часто используется гарвардская архитектура памяти, то есть раздельное хранение данных и команд в ОЗУ и ПЗУ соответственно.

Неполный список периферии, которая может присутствовать в микроконтроллерах, включает в себя:

  • универсальные цифровые порты, которые можно настраивать как на ввод, так и на вывод
  • различные интерфейсы ввода-вывода, такие как UART, I²C, SPI, CAN, USB, IEEE 1394, Ethernet
  • аналого-цифровые и цифро-аналоговые преобразователи
  • компараторы
  • широтно-импульсные модуляторы
  • таймеры
  • контроллеры бесколлекторных двигателей
  • контроллеры дисплеев и клавиатур
  • радиочастотные приемники и передатчики
  • массивы встроенной флеш-памяти
  • встроенный тактовый генератор и сторожевой таймер

Программирование микроконтроллеров обычно осуществляется на языке ассемблера или Си, хотя существуют компиляторы для других языков, например, Форта. Используются также встроенные интерпретаторы Бейсика. Для отладки программ используются программные симуляторы (специальные программы для персональных компьютеров, имитирующие работу микроконтроллера), внутрисхемные эмуляторы (электронные устройства, имитирующие микроконтроллер, которые можно подключить вместо него к разрабатываемому встроенному устройству) и интерфейс JTAG.

ATtiny2313 Pinout

Following diagram shows the pinout of the ATtiny2313 AVR Microcontroller:

ATtiny2313 Pin Configuration

Let us discuss the pinout of the ATtiny 2313 AVR microcontroller. The pin configuration detail in tabular is mentioned below:

Number Pin Name Function
1 Reset/dW/PA2 PortA2/Reset/debug wire pin
2 PD0/RXD Dual I/O PortD0/UART Reception pin
3 PD1/TXD Dual I/O PortD1/UART Transmission pin
4 PA1/XTAL2 PortA1/Oscillator out pin
5 PA0/XTAL1 PortA0/Oscillator in pin
6 CKOUT/XCK/INT0/PD2 Clock Output/USART Clock/Interrupt0/Dual I/O PortD2 pin
7 PD3/INT1 Dual I/O PortD3/Interrupt1 pin
8 PD4/T0 Dual I/O PortD4/Timer0 output pin
9 PD5/OC0B/T1 Dual I/O PortD5/Output compare B output/TImer1 pin
10 GND Ground
11 PD6/ICP Dual I/O PortD6/Input Capture pin
12 PB0/AIN0/PCINT0 Dual I/O PortB0/Analog comparator0/Pin change interrupt0 pin
13 PB1/AIN1/PCINT1 Dual I/O PortB1/Analog comparator1/Pin change interrupt1 pin
14 PB2/OC0A/PCINT2 Dual I/O PortB2/Output compare0 A/Pin change interrupt2 pin
15 PB3/OC1A/PCINT3 Dual I/O PortB3/Output compare1 A/Pin change interrupt3 pin
16 PB4/OC1B/PCINT4 Dual I/O PortB4/Output compare1 B/Pin change interrupt4 pin
17 PB5/MOSI/DI/SDA/PCINT5 Dual I/O PortB5/MOSI/SDA/Pin change interrupt2 pin
18 PB6/MISO/DO/PCINT6 Dual I/O PortB6/MISO/Data output/Pin change interrupt6 pin
19 PB7/UCSK/SCL/PCINT7 Dual I/O PortB7/universal serial interface/SCL/Pin change interrupt7 pin
20 VCC Power supply pin
  • GPIO pins: It has a total of 20 GPIO pins, out of which 18 are  input-output pins and 3 ports
  • Interrupts: Interrupts are subroutines used to execute particular instructions before routine instructions.
  • Oscillators/XTAL: ATtiny2313 has an internal oscillator of 4 MHz, but it can be customized by providing a clock through external oscillators pin for fast processing
  • MOSI/MISO: These pins are for serial communication and interfacing of controllers and devices.MOSI is used to send data from the microcontroller to peripherals, whereas MISO is used to receive data.
  • ICP: Input capture pin is used to capture for pulse measurement of timers
  • dW: It is used to control the program execution flow by reading and writing to all memory blocks
UART Pin number
RXD PD0
TXD PD1

Структурная схема конвейера AVR32

Основой архитектуры AVR32 является семистадийный конвейер (рис. 7), обеспечивающий высокую производительность. Семистадийный конвейер AVR32 состоит из трех модулей, подготавливающих команду и четырех модулей, производящих выполнение.

Рис. 7. Схема конвейера AVR32

На первом этапе инструкции выбираются из кэш-памяти.

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

Совместно с высокой плотностью кода это позволяет снизить использование памяти и производить переходы без потери циклов.

Третий этап — декодирование команды. В зависимости от содержания команды она попадает в целочисленный модуль, который состоит из трех конвейеров:

  • конвейер умножения, состоящий из двух блоков умножения;
  • конвейер АЛУ, состоящий из двух блоков вычислений;
  • конвейер данных, состоящий из модуля адресации и модуля доступа к данным.

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

Три перечисленных конвейера поддерживают одновременное исполнение независимых инструкций с изменением последовательности (рис. 8). То есть, например, пока модуль умножения в течение 32 тактов занят, в модуле АЛУ может выполняться следующая операция.

Рис. 8. Плотность кода AVR32 AP в тестах EEMBC (оптимизация по скорости)

Использование RISC-архитектур

Архитектуры RISC теперь используются на различных платформах, от смартфонов и планшетных компьютеров до некоторых из самых быстрых суперкомпьютеров в мире, таких как Fugaku , самый быстрый в списке TOP500 по состоянию на ноябрь 2020 года, и Summit , Sierra и Sunway TaihuLight , следующие три. в этом списке.

Младшие и мобильные системы

К началу 21 века большинство недорогих и мобильных систем основывались на архитектурах RISC. Примеры включают:

  • Архитектура ARM доминирует на рынке маломощных и недорогих встроенных систем (обычно 200–1800 МГц в 2014 г.). Он используется в ряде систем, таких как большинство систем на базе Android , Apple iPhone и iPad , Microsoft Windows Phone (бывший Windows Mobile ), устройства RIM , Nintendo Game Boy Advance , DS , 3DS и Switch , Raspberry Pi и т. Д.
  • IBM «s PowerPC был использован в GameCube , Wii , PlayStation 3 , Xbox 360 и Wii U игровых консолей.
  • Линия MIPS (когда-то использовалась во многих компьютерах SGI ) использовалась в игровых консолях PlayStation , PlayStation 2 , Nintendo 64 , PlayStation Portable и домашних шлюзах, таких как серия Linksys WRT54G .
  • Hitachi «s SuperH , первоначально широко используется в Сега Супер 32X , Saturn и Dreamcast , в настоящее время разработаны и продаются Renesas как SH4 .
  • Atmel AVR используется в различных продуктах, от портативных контроллеров Xbox и платформы микроконтроллеров с открытым исходным кодом Arduino до автомобилей BMW .
  • RISC-V , пятая RISC ISA Berkeley с открытым исходным кодом , с 32- или 64-битными адресными пространствами , небольшим базовым целочисленным набором инструкций и экспериментальной «сжатой» ISA для плотности кода, разработанная для стандартных и специальных расширений.

Настольные и портативные компьютеры

  • IBM «s PowerPC архитектура была использована в компании Apple Macintosh компьютеров с 1994 года , когда они начали переход от Motorola 68000 семьи процессоров, к 2005 году , когда они перешли на процессоры Intel x86 .
  • Некоторые хромбуки используют платформы на базе ARM с 2012 года.
  • Apple использует процессоры собственной разработки на основе архитектуры ARM для своей линейки настольных и портативных компьютеров с момента перехода от процессоров Intel, и первые такие компьютеры были выпущены в ноябре 2020 года.
  • Microsoft использует процессоры Qualcomm на базе ARM для своей линейки Surface .

Рабочие станции, серверы и суперкомпьютеры

  • MIPS от Silicon Graphics (прекратил производство систем на базе MIPS в 2006 году).
  • SPARC от Oracle (ранее Sun Microsystems ) и Fujitsu .
  • IBM «s IBM POWER набор команд архитектура , PowerPC , и мощность ISA была и используется во многих суперкомпьютерах IBM, серверах среднего уровня и рабочих станциях.
  • Hewlett-Packard «s PA-RISC , также известный как HP-PA (прекращено в конце 2008 года).
  • Alpha , используемая в одноплатных компьютерах , рабочих станциях, серверах и суперкомпьютерах от Digital Equipment Corporation , затем Compaq и, наконец, HP (производство прекращено с 2007 года).
  • RISC-V , пятая Berkeley RISC ISA с открытым исходным кодом , с 64- или 128-битными адресными пространствами и целочисленным ядром, расширенным с помощью обработки с плавающей запятой, атомарной и векторной обработкой и предназначенного для расширения с помощью инструкций для работы в сети, ввода-вывода, и обработка данных. Доступна для загрузки 64-битная суперскалярная разработка «Ракета». Он реализован в процессоре European Processor Initiative .

Interfacing LEDs to the ATtiny2313

Two example circuits are used to show how to set up pins on the ATtiny2313 as outputs.

LED Flasher Circuit

In this circuit, two pins from port D of the ATtiny2313 are interfaced to LEDs (current sourcing).


ATtiny2313 LED Flasher Circuit — click for a bigger image

LED Knight Rider Display Circuit

This circuit is used to make a five LED knight rider display. The LEDs are also interfaced in a current sourcing configuration, but are connected to port B this time.


ATtiny2313 Interfaced to Five LEDs — click for a bigger image

For a current sinking example, see the circuit diagram and C source code from the Starting AVR 8-bit Development tutorial.

Switching Bits on and Off in C

Both the above examples use the C OR operator | to switch bits on and the C AND operator & to switch bits off.

In this line of code, the |= operator performs a read-modify-write.

DDRD |= ((1 << PD0) | (1 << PD5));

The contents of the DDRD register are read (read), the value that was read is then ORed with the value to the right of the |= operator (modify). The new value is then written back to the DDRD register (write).

On

The read-modify-write shown below performs a C bitwise OR operation which sets bit 0 of the PORTD register.

PORTD |=  (1 << PD0);           // switch PD0 LED on

This code reads the PORTD register and then changes only the PD0 bit in the byte read from it by setting it to 1. The modified byte is then written back to the register. Because the OR operator is being used, all other bits in the register, whether 1’s or 0’s will remain unchanged as they are all being ORed with 0. Only the PD0 bit is being ORed with 1.

Off

To switch a bit off, the C bitwise AND operator must be used. To prevent changing any other bit in the register when performing an AND operation, all the other bits must be ANDed with 1, except the bit that is to be cleared. The bit to be cleared is ANDed with 0.

PORTD &= ~(1 << PD0);           // switch PD0 LED off

In the above line of code, the PD0 bit is cleared. The C bitwise invert operator ~ is used to invert all the bits in the value that is ANDed with PORTD. This makes the bit to be cleared 0 and all the rest of the bits 1 so that the corresponding bits will remain unchanged in the register (bits 7 to 1 will remain unchanged, bit 0 will be cleared).

In this example, the value ANDed with the PORTD register would be 00000001b, but after inverting the value it becomes 11111110b, so that only bit 0 is cleared when the AND operation is performed.

UART и ISP

Для подключения прошиваторов к голому чипу нам нужно будет изучить распиновку (pinout) на нужный микроконтроллер. Распиновки бывают цветные и красивые (часто с ошибками), а бывают более серьёзные и правильные. Лучше всего открыть даташит на нужный МК и на второй же странице найти 100% правильную распиновку. Например для ATmega328, ATtiny85 и ATtiny13:

На данных “схемах” подписаны все функции пинов МК. Чтобы загрузить прошивку через USB-TTL, то есть при помощи “живущего в памяти” загрузчика (bootloader), МК должен иметь на борту аппаратный UART, то есть пины RX и TX. Если таких пинов нет – прошивку можно загрузить только через ISP программатор. Вы спросите, а как же Digispark? Там стоит МК ATtiny85, у которого нет UART, но прошивка загружается через USB! Верно, но там хитрые разработчики сделали не менее хитрый загрузчик, который имитирует USB, и прошивка на Digispark загружается при помощи специальной программы, которая запускается в фоне, когда вы нажимаете кнопку “Загрузить” в Arduino IDE. Резюмируя для общего случая:

  • Если в МК прошит загрузчик (bootloader) и на борту имеется аппаратный UART (пины RX TX), прошивку можно загрузить через USB-TTL “загружатор”, также через него можно заниматься отладкой кода при помощи Serial.
  • Если в МК нет пинов RX TX, значит прошивку можно загрузить только при помощи ISP программатора, да и о загрузчике в целом можно забыть, не нужен он. Отладкой всё ещё можно пользоваться, подключив USB-TTL и подняв на МК “программный” UART. Например в ядре для ATtiny85 (об этом ниже) уже идёт встроенный SoftwareSerial и можно им пользоваться.

Характерные особенности RISC-процессоров:

·Фиксированная длина машинных инструкций
(например, 32 бита) и простой формат команды.

·Специализированные команды для операций с
памятью — чтения или записи. Операции вида «прочитать-изменить-записать»
отсутствуют. Любые операции «изменить» выполняются только над содержимым
регистров (т. н. load-and-store архитектура).

·Большое количество регистров общего назначения
(32 и более).

·Отсутствие поддержки операций вида «изменить»
над укороченными типами данных — байт, 16-битное слово. Так, например,
система команд DEC Alpha содержала только операции над 64-битными словами, и
требовала разработки и последующего вызова процедур для выполнения операций над
байтами, 16- и 32-битными словами.

·Отсутствие микропрограмм внутри самого
процессора. То, что в CISC процессоре исполняется микропрограммами, в RISC
процессоре исполняется как обыкновенный (хотя и помещенный в специальное
хранилище) машинный код, не отличающийся принципиально от кода ядра ОС и
приложений. Так, например, обработка отказов страниц в DEC
Alpha и интерпретация таблиц страниц содержалась в так называемом PALCode (Privileged Architecture Library), помещенном
в ПЗУ. Заменой PALCode можно было превратить
процессор Alpha из 64-битного в 32-битный, а также изменить порядок байт в
слове и формат входов таблиц страниц виртуальной памяти.

Первые RISC-процессоры были
разработаны в начале 1980-х годов в Стэнфордском и
Калифорнийском университетах США. Концепция RISC разработана Джоном Коком (John Cocke) из IBM Research, название придумано Дэвидом Паттерсоном (David Patterson). Они выполняли
небольшой (50−100) набор команд, тогда как обычные CISC (Complex Instruction Set Computer) выполняли 100—200.
Среди первых реализаций этой архитектуры были процессоры MIPS, PowerPC, SPARC,
Alpha, PA-RISC. В мобильных устройствах широко используются ARM-процессоры.

Другие архитектуры[]

За годы после появления архитектуры RISC были реализованы и другие альтернативы — например, VLIW, MISC, OISC, массово-параллельная обработка, Шаблон:Translation2, Шаблон:Translation2, Шаблон:Translation2.

  • Суперскалярные архитектуры (первоначально — большие ЭВМ конца 1960-х годов, в микропроцессорах — Sun SPARC, начиная с Pentium использованы в семействе x86). Распараллеливание исполнения команд между несколькими устройствами исполнения, причём решение о параллельном исполнении двух или более команд принимается аппаратурой процессора на этапе исполнения. Эффективное использование такой архитектуры требует специальной оптимизации машинного кода в компиляторе для генерации пар независимых команд (когда результат одной команды не является аргументом другой).
  • Архитектуры VLIW (very long instruction word — очень длинное слово команды). Отличаются от суперскалярной архитектуры тем, что решение о распараллеливании принимается не аппаратурой на этапе исполнения, а компилятором на этапе генерации кода. Команды очень длинны и содержат явные инструкции по распараллеливанию нескольких субкоманд на несколько устройств исполнения. Элементы архитектуры содержались в серии PA-RISC. VLIW-процессором в его классическом виде является Itanium. Разработка эффективного компилятора для VLIW является сложнейшей задачей. Преимущество VLIW перед суперскалярной архитектурой заключается в том, что компилятор может быть более развитым, нежели устройства управления процессора, и он способен хранить больше контекстной информации для принятия более верных решений по оптимизации.

Архитектура Intel P6

В 1995 году на смену архитектуре P5 пришла, вы ни за что не поверите, архитектура P6 — CISC-платформа с RISC-ядром. Для разбиения сложных операций на простые в процессорах имелся специальный декодер. P6 являлась суперскалярной и поддерживала изменения порядка выполнения операций. Ее конвейер имел целых 12 стадий. Также в архитектуре был предусмотрен блок предсказания ветвлений. Процессоры использовали двойную независимую шину, которая значительно увеличила пропускную способность памяти. P6 имела самый производительный на то время блок вычислений с плавающей запятой.

В том же 1995 году были представлены процессоры следующего поколения Pentium Pro. Кристаллы работали на частоте 150-200 МГц, имели 16 Кбайт кэш-памяти первого уровня и до 1 Мбайт кэша второго уровня. Нужно отметить, что Pentium Pro не поддерживал набор инструкций MMX. Во многом из-за этого чипы уступали в производительности процессорам Pentium в 16-битных приложениях. В настольном сегменте Pentium Pro откровенно провалились, и вскоре Intel «переквалифицировала» их в серверные. А для обычных пользователей в 1997 году были представлены Pentium II.

Related Datasheets

Номер в каталоге Описание Производители
ATTINY2313 8-bit AVR Microcontroller with 2K Bytes In-System Programmable Flash ATMEL Corporation
ATTINY2313 8-bit AVR Microcontroller with 2K Bytes In-System Programmable Flash ATMEL Corporation
ATtiny2313 8-bit Microcontroller ATMEL Corporation
ATtiny2313-16MI 8-bit AVR Microcontroller with 2K Bytes In-System Programmable Flash ATMEL Corporation
Номер в каталоге Описание Производители
6MBP200RA-060

Intelligent Power Module

Fuji Electric
ADF41020

18 GHz Microwave PLL Synthesizer

Analog Devices
AN-SY6280

Low Loss Power Distribution Switch

Silergy
DataSheet26.com    |    2020    |   Контакты    |    Поиск  

Что такое микроконтроллер

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

Проще всего сравнить микроконтроллер с персональным компьютером. Как и ПК, микроконтроллер имеет процессор, оперативную и постоянную память. Однако, в отличие от ПК, все эти элементы расположены на одном-единственном чипе.

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

Существует несколько популярных семейств микроконтроллеров, которые используются для различных целей. Наиболее распространенными из них являются  семейства микроконтроллеров 8051, PIC и AVR. И о последнем семействе мы и собираемся вам рассказать подробнее.

ATtiny2313 Pin Current Drive (Sink / Source)

We can find out how much current the pins of the ATtiny2313 can sink or source by looking at the datasheet for the ATtiny2313.

From the datasheet, the absolute maximum DC current that I/O pins can handle (source or sink) is 40mA each.

We do not want to use the absolute maximum value when designing a circuit as any current drawn beyond this value can cause permanent damage to the microcontroller. Any design must ensure that current drawn from any pin will be much less than the 40mA absolute maximum.

I/O pin current capabilities from the datasheet:

  • The sum of all IOL, for all ports, should not exceed 60 mA. (current sinking)
  • The sum of all IOH, for all ports, should not exceed 60 mA. (current sourcing)

The datasheet also states that a port can source or sink 20mA at 5V (these were test conditions used):

  • Output Low Voltage (Port A, Port B, Port D) IOL = 20 mA, VCC = 5V
  • Output High-voltage (Port A, Port B, Port D) IOH = -20 mA, VCC = 5V
  • If IOL exceeds the test condition, VOL may exceed the related specification. Pins are not guaranteed to sink current greater than the listed test condition.
  • If IOH exceeds the test condition, VOH may exceed the related specification. Pins are not guaranteed to source current greater than the listed test condition.

So any one port must not source or sink more than 20mA.

To keep within the specified current limits of the ATtiny2313, this means that:

  • A good design should not draw more than about 10mA from any pin. A maximum of 6 pins would be able to draw 10mA each at any one time (60mA ÷ 6). This would have to be limited to 2 pins at 10mA per port to keep within the 20mA port limit.
  • Despite the above statement, it should be safe to source/sink 20mA from a pin as this is half of the absolute maximum rating for a pin. In this case, only one pin per port could source/sink 20mA to keep within the 20mA per port limit.
  • If you set up all 18 pins as outputs, to stay within the 60mA limit and the 20mA per port limit, each pin can source/sink the following: Port A pins – 6.667mA per pin (20 mA ÷ 3 pins), Port B pins – 2.5mA per pin (20 mA ÷ 8 pins), Port D pins – 2.857mA per pin (20 mA ÷ 7 pins).
Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Семинар по технике
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: