Arduino примеры проектов. Китайская Arduino DUE. Схема и исходный проект

Arduino примеры проектов. Китайская Arduino DUE. Схема и исходный проект

11.03.2019

Упрощенная внутренняя архитектура типового 8-разрядного микропроцессора показана на рисунке 3. В структуре микропроцессора можно выделить три основных части:

1) Регистры для временного хранения команд, данных и адресов;

2) Арифметико-логическое устройство (АЛУ) , которое реализует арифметические и ло-гические операции;

3) Схема управления и синхронизации - обеспечивает выборку команд, организует функционирование АЛУ, обеспечивает доступ ко всем регистрам микропроцессора, воспринимает и генерирует внешние управляющие сигналы.

Рисунок 3 - Упрощенная внутренняя архитектура 8-разрядного микропроцессора

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

Программный счетчик (PC) - регистр, содержащий адрес следующего командного байта. Процессор должен знать, какая команда будет выполняться следующей.

Аккумулятор – регистр, используемый в подавляющем большинстве команд логической и арифметической отработки; он одновременно является и источником одного из байт данных, которые требуются для операции АЛУ, и местом, куда помещается результат операции АЛУ.

Регистр признаков (или регистр флагов) содержит информацию о внутреннем состоянии микропроцессора, в частности о результате последней операции АЛУ. Регистр флагов не является регистром в обычном смысле, а представляет собой просто набор триггер-защелок (флаг поднят или опущен. Обычно имеются флажки нуля, переполнения, отрицательного результата и переноса.

Указатель стека (SP) - следит за положением стека, т. е. содержит адрес последней его использованной ячейки. Стек – способ организации хранения данных.

Регистр команды содержит текущий командный байт, который декодируется дешифратором команды.

Линии внешних шин изолированы от линий внутренней шины с помощью буферов, а основные внутренние элементы связаны быстродействующей внутренней шиной данных.

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

На современном этапе основным направлением повышения производительности является разработка многоядерных процессоров , т.е. объединение в одном корпусе двух и более процессоров, с целью выполнения нескольких операций параллельно (одновременно).



Лидирующими компаниями по разработке и изготовлению процессоров являются Intel и AMD.

18. Перспективы развития микропроцессорных систем.

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

Современный уровень развития микропроцессорной техники достиг такого уровня что, в течение 5 лет происходит смена двух-трех поколений микропроцессоров. По прогнозам аналитиков к 2012 году число транзисторов в микропроцессоре достигнет 1 млрд., тактовая частота возрастет до 10 ГГц, а производительность достигнет 100 млрд. оп/с.

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

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

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

Микропроцессоры

Введение

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

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

В 1970 году Маршиан Эдвард Хофф из фирмы Intel сконструировал интегральную схему, аналогичную по своим функциям центральному процессору большой ЭВМ - первый микропроцессор Intel-4004, который уже в 1971 году был выпущен в продажу.

Это был настоящий прорыв, ибо МП Intel-4004 размером менее 3 см был производительнее гигантской машины ENIAC. Правда работал он гораздо медленнее и мог обрабатывать одновременно только 4 бита информации (процессоры больших ЭВМ обрабатывали 16 или 32 бита одновременно), но и стоил первый МП в десятки тысяч раз дешевле.

Кристалл представлял собой 4-разрядный процессор с классической архитектурой ЭВМ гарвардского типа и изготавливался по передовой p-канальной МОП технологии с проектными нормами 10 мкм. Электрическая схема прибора насчитывала 2300 транзисторов. МП работал на тактовой частоте 750 кГц при длительности цикла команд 10,8 мкс. Чип i4004 имел адресный стек (счетчик команд и три регистра стека типа LIFO), блок РОНов (регистры сверхоперативной памяти или регистровый файл - РФ), 4-разрядное параллельное АЛУ, аккумулятор, регистр команд с дешифратором команд и схемой управления, а также схему связи с внешними устройствами. Все эти функциональные узлы объединялись между собой 4-разрядной ШД. Память команд достигала 4 Кбайт (для сравнения: объем ЗУ миниЭВМ в начале 70-х годов редко превышал 16 Кбайт), а РФ ЦП насчитывал 16 4-разрядных регистров, которые можно было использовать и как 8 8-разрядных. Такая организация РОНов сохранена и в последующих МП фирмы Intel . Три регистра стека обеспечивали три уровня вложения подпрограмм. МП i4004 монтировался в пластмассовый или металлокерамический корпус типа DIP (Dual In-line Package ) всего с 16 выводами.

В систему его команд входило всего 46 инструкций.

Вместе с тем кристалл располагал весьма ограниченными средствами ввода/вывода, а в системе команд отсутствовали операции логической обработки данных (И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ), в связи с чем их приходилось реализовывать с помощью специальных подпрограмм. Модуль i4004 не имел возможности останова (команды HALT) и обработки прерываний.

Цикл команды процессора состоял из 8 тактов задающего генератора. Была мультиплексированная ША (шина адреса)/ШД (шина данных), адрес 12-разрядный передавался по 4-разряда.

1 апреля 1972 г. фирма Intel начала поставки первого в отрасли 8-разрядного прибора i8008. Кристалл изготавливался по р-канальной МОП-технологии с проектными нормами 10 мкм и содержал 3500 транзисторов. Процессор работал на частоте 500 кГц при длительности машинного цикла 20 мкс (10 периодов задающего генератора).

В отличие от своих предшественников МП имел архитектуру ЭВМ принстонского типа, а в качестве памяти допускал применение комбинации ПЗУ и ОЗУ.

По сравнению с i4004 число РОН уменьшилось с 16 до 8, причем два регистра использовались для хранения адреса при косвенной адресации памяти (ограничение технологии - блок РОН аналогично кристаллам 4004 и 4040 в МП 8008 был реализован в виде динамической памяти). Почти вдвое сократилась длительность машинного цикла (с 8 до 5 состояний). Для синхронизации работы с медленными устройствами был введен сигнал готовности READY.

Система команд насчитывала 65 инструкций. МП мог адресовать память объемом 16 Кбайт. Его производительность по сравнению с четырехразрядными МП возрасла в 2,3 раза. В среднем для сопряжения процессора с памятью и устройствами ввода/вывода требовалось около 20 схем средней степени интеграции.

Возможности р-канальной технологии для создания сложных высокопроизводительных МП были почти исчерпаны, поэтому "направление главного удара" перенесли на n-канальную МОП технологию.

1 апреля 1974 МП Intel 8080 был представлен вниманию всех заинтересованных лиц. Благодаря использованию технологии п-МОП с проектными нормами 6 мкм, на кристалле удалось разместить 6 тыс. транзисторов. Тактовая частота процессора была доведена до 2 Мгц , а длительность цикла команд составила уже 2 мкс. Объем памяти, адресуемой процессором, был увеличен до 64 Кбайт. За счет использования 40-выводного корпуса удалось разделить ША и ШД, общее число микросхем, требовавшихся для построения системы в минимальной конфигурации сократилось до 6 (рис. 1).

Рис. 1. Микропроцессор Intel 8080.

В РФ были введены указатель стека, активно используемый при обработке прерываний, а также два программнонедоступных регистра для внутренних пересылок. Блок РОНов был реализован на микросхемах статической памяти. Исключение аккумулятора из РФ и введение его в состав АЛУ упростило схему управления внутренней шиной.

Новое в архитектуре МП - использование многоуровневой системы прерываний по вектору. Такое техническое решение позволило довести общее число источников прерываний до 256 (до появления БИС контроллеров прерываний схема формирования векторов прерываний требовала применения до 10 дополнительных чипов средней интеграции). В i8080 появился механизм прямого доступа в память (ПДП) (как ранее в универсальных ЭВМ IBM System 360 и др.).

ПДП открыл зеленую улицу для применения в микроЭВМ таких сложных устройств, как накопители на магнитных дисках и лентах дисплеи на ЭЛТ, которые и превратили микроЭВМ в полноценную вычислительную систему.

Традицией компании, начиная с первого кристалла, стал выпуск не отдельного чипа ЦП, а семейства БИС, рассчитанных на совместное использование.

Архитектура микропроцессора

Основные характеристики микропроцессора

Микропроцессор характеризуется:
1) тактовой частотой, определяющей максимальное время выполнения переключения элементов в ЭВМ;
2) разрядностью, т.е. максимальным числом одновременно обрабатываемых двоичных разрядов.

Разрядностть МП обозначается m /n /k / и включает:
m - разрядность внутренних регистров, определяет принадлежность к тому или иному классу процессоров;
n - разрядность шины данных, определяет скорость передачи информации;
k - разрядность шины адреса, определяет размер адресного пространства. Например, МП i8088 характеризуется значениями m /n /k=16/8/20;
3) архитектурой. Понятие архитектуры микропроцессора включает в себя систему команд и способы адресации, возможность совмещения выполнения команд во времени, наличие дополнительных устройств в составе микропроцессора, принципы и режимы его работы. Выделяют понятия микроархитектуры и макроархитектуры .

Микроархитектура микропроцессора - это аппаратная организация и логическая структура микропроцессора, регистры, управляющие схемы, арифметико-логические устройства, запоминающие устройства и связывающие их информационные магистрали.

Макроархитектура - это система команд, типы обрабатываемых данных, режимы адресации и принципы работы микропроцессора.

В общем случае под архитектурой ЭВМ понимается абстрактное представление машины в терминах основных функциональных модулей, языка ЭВМ, структуры данных.

Структура типового микропроцессора

Архитектура типичной небольшой вычислительной системы на основе микроЭВМ показана на рис. 2.1 Т акая микроЭВМ содержит все 5 основных блоков цифровой машины: устройство ввода информации, управляющее устройство (УУ), арифметико-логическое устройство (АЛУ) (входящие в состав микропроцессора), запоминающие устройства (ЗУ) и устройство вывода информации.

Рис. 2.1. Архитектура типового микропроцессора.

Микропроцессор координирует работу всех устройств цифровой системы с помощью шины управления (ШУ). Помимо ШУ имеется 16-разрядная адресная шина (ША), которая служит для выбора определенной ячейки памяти, порта ввода или порта вывода. По 8-разрядной информационной шине или шине данных (ШД) осуществляется двунаправленная пересылка данных к микропроцессору и от микропроцессора. Важно отметить, что МП может посылать информацию в память микроЭВМ или к одному из портов вывода, а также получать информацию из памяти или от одного из портов ввода.

Постоянное запоминающее устройство (ПЗУ) в микроЭВМ содержит некоторую программу (на практике программу инициализации ЭВМ). Программы могут быть загружены в запоминающее устройство с произвольной выборкой (ЗУПВ) и из внешнего запоминающего устройства (ВЗУ). Это программы пользователя.

В качестве примера, иллюстрирующего работу микроЭВМ , рассмотрим процедуру, для реализации которой нужно выполнить следующую последовательность элементарных операций:
1. Нажать клавишу с буквой "А" на клавиатуре.
2. Поместить букву "А" в память микроЭВМ .
3. Вывести букву "А" на экран дисплея.

Это типичная процедура ввода-запоминания-вывода, рассмотрение которой дает возможность пояснить принципы использования некоторых устройств, входящих в микроЭВМ .

На рис. 2.2 приведена подробная диаграмма выполнения процедуры ввода-запоминания-вывода. Обратите внимание, что команды уже загружены в первые шесть ячеек памяти. Хранимая программа содержит следующую цепочку команд:
1. Ввести данные из порта ввода 1.
2. Запомнить данные в ячейке памяти 200.
3. Переслать данные в порт вывода 10.

Рис. 2.2. Диаграмма выполнения процедуры ввода-запоминания-вывода.

В данной программе всего три команды, хотя на рис. 2.2 может показаться, что в памяти программ записано шесть команд. Это связано с тем, что команда обычно разбивается на части. Первая часть команды 1 в приведенной выше программе - команда ввода данных. Во второй части команды 1 указывается, откуда нужно ввести данные (из порта 1). Первая часть команды, предписывающая конкретное действие, называется кодом операции (КОП), а вторая часть - операндом. Код операции и операнд размещаются в отдельных ячейках памяти программ. На рис. 2.2 КОП хранится в ячейке 100, а код операнда - в ячейке 101 (порт 1); последний указывает откуда нужно взять информацию.

В МП на рис. 2.2 выделены еще два новых блока - регистры: аккумулятор и регистр команд.

Рассмотрим прохождение команд и данных внутри микроЭВМ с помощью занумерованных кружков на диаграмме. Напомним, что микропроцессор - это центральный узел, управляющий перемещением всех данных и выполнением операций.

Итак, при выполнении типичной процедуры ввода-запоминания-вывода в микроЭВМ происходит следующая последовательность действий:
1. МП выдает адрес 100 на шину адреса. По шине управления поступает сигнал, устанавливающий память программ (конкретную микросхему) в режим считывания.
2. ЗУ программ пересылает первую команду ("Ввести данные") по шине данных, и МП получает это закодированное сообщение. Команда помещается в регистр команд. МП декодирует (интерпретирует) полученную команду и определяет, что для команды нужен операнд.
3. МП выдает адрес 101 на ША; ШУ используется для перевода памяти программ в режим считывания.
4. Из памяти программ на ШД пересылается операнд "Из порта 1". Этот операнд находится в программной памяти в ячейке 101. Код операнда (содержащий адрес порта 1) передается по ШД к МП и направляется в регистр команд. МП теперь декодирует полную команду ("Ввести данные из порта 1").
5. МП, используя ША и ШУ, связывающие его с устройством ввода, открывает порт 1. Цифровой код буквы "А" передается в аккумулятор внутри МП и запоминается.В ажно отметить, что при обработке каждой программной команды МП действует согласно микропроцедуре выборки-декодирования-исполнения.
6. МП обращается к ячейке 102 по ША. ШУ используется для перевода памяти программ в режим считывания.
7. Код команды "Запомнить данные" подается на ШД и пересылается в МП, где помещается в регистр команд.
8. МП дешифрирует эту команду и определяет, что для нее нужен операнд. МП обращается к ячейке памяти 103 и приводит в активное состояние вход считывания микросхем памяти программ.
9. Из памяти программ на ШД пересылается код сообщения "В ячейке памяти 200". МП воспринимает этот операнд и помещает его в регистр команд. Полная команда "Запомнить данные в ячейке памяти 200" выбрана из памяти программ и декодирована.
10. Теперь начинается процесс выполнения команды. МП пересылает адрес 200 на ША и активизирует вход записи, относящийся к памяти данных.
11. МП направляет хранящуюся в аккумуляторе информацию в память данных. Код буквы "А" передается по ШД и записывается в ячейку 200 этой памяти. Выполнена вторая команда. Процесс запоминания не разрушает содержимого аккумулятора. В нем по-прежнему находится код буквы "А".
12. МП обращается к ячейке памяти 104 для выбора очередной команды и переводит память программ в режим считывания.
13. Код команды вывода данных пересылается по ШД к МП, который помещает ее в регистр команд, дешифрирует и определяет, что нужен операнд.
14. МП выдает адрес 105 на ША и устанавливает память программ в режим считывания.
15. Из памяти программ по ШД к МП поступает код операнда "В порт 10", который далее помещается в регистр команд.
16. МП дешифрирует полную команду "Вывести данные в порт 10". С помощью ША и ШУ, связывающих его с устройством вывода, МП открывает порт 10, пересылает код буквы "А" (все еще находящийся в аккумуляторе) по ШД. Буква "А" выводится через порт 10 на экран дисплея.

В большинстве микропроцессорных систем (МПС) передача информации осуществляется способом, аналогичным рассмотренному выше. Наиболее существенные различия возможны в блоках ввода и вывода информации.

Подчеркнем еще раз, что именно микропроцессор является ядром системы и осуществляет управление всеми операциями. Его работа представляет последовательную реализацию микропроцедур выборки-дешифрации-исполнения. Однако фактическая последовательность операций в МПС определяется командами, записанными в памяти программ.

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

Общие сведения

Arduino Due - это устройство на основе микропроцессора Atmel SAM3X8E ARM Cortex-M3 (datasheet). Это первая плата Ардуино на базе 32-разрядного микроконтроллера ARM. В ее состав входят 54 цифровых вывода (из которых 12 могут работать в качестве ШИМ-выходов), 12 аналоговых входов, 4 UART (аппаратных приемопередатчика, осуществляющих последовательную передачу данных), генератор тактовой частоты на 84 МГц, USB с поддержкой технологии OTG, 2 ЦАП (цифро-аналоговых преобразователя), 2 TWI, разъем питания, разъем SPI, разъем JTAG, кнопка сброса и кнопка очистки памяти.

Внимание: в отличие от других плат Ардуино, рабочее напряжение Arduino Due составляет 3.3В. Соответственно, максимальное напряжение, которое могут выдержать его выводы, равно 3.3В. Подача на вывод большего напряжения (например, 5В) может привести к выходу платы из строя.

В состав устройства входит все необходимое для обеспечения работы микроконтроллера; для начала работы достаточно просто подать питание от AC/DC-адаптера или батарейки, либо подключить его к компьютеру посредством USB-кабеля. Arduino Due совместим со всеми платами расширения, работающими от 3.3В, и соответствует требованиям распиновки 1.0:

  • Выводы SDA и SCL (TWI) расположены возле вывода AREF.
  • Присутствует вывод IOREF, позволяющий платам расширения подстраиваться под рабочее напряжение Ардуино. Благодаря этому, платы расширения могут быть совместимы как с 3.3В-Ардуино (подобными Due), так и с 5В-Ардуино на основе микроконтроллеров AVR.
  • Предусмотрен свободный вывод, зарезервированный для будущих целей.

Преимущества использования ядра ARM

Благодаря использованию 32-разрядного ядра ARM, Arduino Due во многом превосходит типичные платы на базе 8-разрядных микроконтроллеров. Наиболее существенные отличия заключаются в следующем:

  • 32-битное ядро позволяет обрабатывать 4х-байтовые данные всего за один такт. (Для получения более подробной информации см. описание типа int).
  • Тактовая частота - 84 МГц.
  • Объем оперативной памяти SRAM составляет 96 КБайт.
  • Объем флеш-памяти программ - 512 КБ.
  • Наличие DMA-контроллера, позволяющего разгрузить центральный процессор от выполнения ресурсоемких операций с памятью.

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

Характеристики

Микроконтроллер AT91SAM3X8E
Рабочее напряжение 3.3В
Напряжение питания (рекомендуемое) 7-12В
Напряжение питания (предельное) 6-16В
Цифровые выводы 54 (из них 12 могут работать как ШИМ-выходы)
Аналоговые входы 12
Аналоговые выходы 2 (ЦАП)
Суммарный выходной ток всех выводов (максимальный) 130 мА
Максимальный выходной ток вывода 3.3V 800 мА
Максимальный выходной ток вывода 5V 800 мА
Flash-память 512 КБ в полном объеме доступна пользовательским программам
SRAM 96 КБ (два банка памяти: 64 КБ и 32 КБ)
Тактовая частота 84 МГц

Питание

Arduino Due может быть запитан от USB либо от внешнего источника питания - тип источника выбирается автоматически.

В качестве внешнего источника питания (не USB) может использоваться сетевой AC/DC-адаптер или аккумулятор/батарея. Штекер адаптера (диаметр - 2.1мм, центральный контакт - положительный) необходимо вставить в соответствующий разъем питания на плате. В случае питания от аккумулятора/батареи, ее провода необходимо подсоединить к выводам Gnd и Vin разъема POWER.

Напряжение внешнего источника питания может быть в пределах от 6 до 20 В. Однако, уменьшение напряжения питания ниже 7В приводит к уменьшению напряжения на выводе 5V, что может стать причиной нестабильной работы устройства. Использование напряжения больше 12В может приводить к перегреву стабилизатора напряжения и выходу платы из строя. С учетом этого, рекомендуется использовать источник питания с напряжением в диапазоне от 7 до 12В.

Ниже перечислены выводы питания, расположенные на плате:

  • VIN. Напряжение, поступающее в Arduino непосредственно от внешнего источника питания (не связано с 5В от USB или другим стабилизированным напряжением). Через этот вывод можно как подавать внешнее питание, так и потреблять ток, когда устройство запитано от внешнего адаптера.
  • 5V. На вывод поступает напряжение 5В от стабилизатора напряжения на плате, вне независимости от того, как запитано устройство: от адаптера (7 - 12В), от USB (5В) или через вывод VIN (7 - 12В). Запитывать устройство через выводы 5V или 3V3 не рекомендуется, поскольку в этом случае не используется стабилизатор напряжения, что может привести к выходу платы из строя.
  • 3V3. 3.3В, поступающие от стабилизатора напряжения на плате. Данный стабилизатор также обеспечивает питание микроконтроллера SAM3X. Максимальный ток, потребляемый от этого вывода, составляет 800 мА.
  • GND. Выводы земли.
  • IOREF. Этот вывод предоставляет платам расширения информацию о рабочем напряжении микроконтроллера Ардуино. В зависимости от напряжения, считанного с вывода IOREF, плата расширения может переключиться на соответствующий источник питания либо задействовать преобразователи уровней, что позволит ей работать как с 5В, так и с 3.3В-устройствами.

Память

Объем флеш-памяти программ микроконтроллера SAM3X составляет 512 КБ (2 блока по 256 КБ). Устройство выпускается с прошитим загрузчиком, расположенном в отдельной памяти ПЗУ. Объем доступной оперативной памяти SRAM составляет 96 КБ, представляющих собой два смежных банка памяти по 64 КБ и 32 КБ соответственно. Вся доступная память (Flash, ОЗУ и ПЗУ) имеет общее линейное адресное пространство.

Кнопка удаления, расположенная на плате, позволяет очистить Flash-память микроконтроллера SAM3X и стереть текущую загруженную программу. Для этого необходимо нажать и удерживать ее в течение нескольких секунд.

Входы и выходы

  • Цифровые входы/выходы: выводы 0 - 53
  • Интерфейс SPI: выводы SPI (на платах Ардуино разъем ICSP)
  • Интерфейс CAN: выводы CANRX и CANTX

Данные выводы поддерживают протокол связи CAN, однако на данный момент его реализация в Arduino API пока отсутствует.

  • "L" светодиод: вывод 13

Встроенный светодиод, подсоединенный к выводу 13. При отправке значения HIGH светодиод включается, при отправке LOW - выключается. Помимо этого, яркость свечения светодиода можно регулировать, поскольку вывод 13 может работать как ШИМ-выход.

  • Интерфейс TWI 1: выводы 20 (SDA) и 21 (SCL)
  • Интерфейс TWI 2: выводы SDA1 и SCL1

Другие выводы на плате:

  • AREF

Опорное напряжение АЦП. Используется функцией analogReference() .

  • Reset

Формирование низкого уровня (LOW) на этом выводе приведет к перезагрузке микроконтроллера. Обычно этот вывод служит для функционирования кнопки сброса на платах расширения.

Связь

Arduino Due предоставляет ряд возможностей для осуществления связи с компьютером, еще одним Ардуино или другими микроконтроллерами, а также с различными устройствами, такими, как телефоны, планшеты, камеры и т.д. В микроконтроллере SAM3X есть один аппаратный UART и три аппаратных USART для реализации последовательных интерфейсов с TTL-уровнем напряжения 3.3В.

USB-порт для программирования на плате взаимодействует с микросхемой ATmega16U2, выполняющую роль USB-UART преобразователя, который при подключении к компьютеру определяется как виртуальный COM-порт. (Для корректной идентификации на Windows-системах потребуется.inf-файл, на системах с OSX и LINUX плата распознается автоматически). Микросхема 16U2 соединена с аппаратным приемопередатчиком UART микроконтроллера SAM3X. Для программирования микроконтроллера через микросхему ATmega16U2 используются выводы RX0 и TX0. В пакет программного обеспечения Ардуино входит специальная программа, позволяющая считывать и отправлять на Ардуино простые текстовые данные. При передаче данных через микросхему-преобразователь USB-UART во время USB-соединения с компьютером, на плате будут мигать светодиоды RX и TX. (При последовательной передаче данных посредством выводов 0 и 1, без использования USB-преобразователя, данные светодиоды не задействуются).

В микроконтроллере SAM3X также реализована поддержка последовательных интерфейсов TWI и SPI. В программное обеспечение Ардуино входит библиотека Wire, позволяющая упростить работу с шиной I2C; для получения более подробной информации см. документацию. Для работы с интерфейсом SPI используйте библиотеку SPI.

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

Процесс загрузки программ в микроконтроллер SAM3X отличается от процесса прошивки AVR-микроконтроллеров, используемых в других платах Ардуино. Особенность SAM3X заключается в том, что для его перепрошивки требуется предварительно очищать Flash-память контроллера. Такая необходимость обусловлена тем, что процесс загрузки программы контролируется загрузчиком в ПЗУ SAM3X, который запускается только при условии отсутствия программы во Flash-памяти микроконтроллера.

Таким образом, любой из USB-портов может использоваться для прошивки платы. Тем не менее, рекомендуется использовать USB-порт для программирования ("Programming Port" на рисунке) в силу некоторых особенностей процесса очистки памяти микроконтроллера:

  • Порт для программирования: Для использования этого порта в среде разработки Arduino IDE в качестве рабочей платы выберите "Arduino Due (Programming Port)". Подсоедините Due к компьютеру, соединив USB-кабель c разъемом для программирования (расположенным ближе к разъему питания). Порт для программирования взаимодействует с микросхемой 16U2, выполняющей роль преобразователя USB-UART. Микросхема 16U2 в свою очередь соединена с первым UART микроконтроллера SAM3X (выводы RX0 и TX0), а также управляет его выводами Reset и Erase. При открытии и закрытии порта на скорости 1200 бод, на выводах Erase и Reset формируется активный уровень, что приводит к очистке памяти микроконтроллера. Таким образом, срабатывает так называемая процедура "аппаратной очистки" перед взаимодействием с UART SAM3X. Этот способ более надежен, чем "программная очистка" при использовании штатного USB-порта, и работает даже в случае зависания процессора. Именно поэтому для прошивки Arduino Due рекомендуется использовать порт для программирования.
  • Штатный USB-порт: Для использование этого порта в среде разработки Arduino IDE в качестве рабочей платы выберите "Arduino Due (Naive USB Port)". Штатный USB-порт соединен непосредственно с микроконтроллером SAM3X. Подсоедините Due к компьютеру, соединив USB-кабель со штатным USB-разъемом (расположенным ближе к кнопке сброса). Открытие и закрытие порта на скорости 1200 бод приведет к срабатыванию процедуры "программной очистки", во время которой очищается flash-память, перезагружается микроконтроллер и стартует загрузчик. Поскольку эта процедура выполняется исключительно программой самого микроконтроллера SAM3X, то в случае зависания последнего процесс очистки может не произойти. При этом открытие/закрытие штатного порта на различных скоростях не поможет перезагрузить микроконтроллер.

В отличие от других плат Ардуино, для программирования которых используется avrdude, процесс прошивки Arduino Due осуществляется с помощью программы .

Исходный код прошивки микроконтроллера ATmega16U2 доступен в репозитории Ардуино . Прошить микроконтроллер можно через разъем для внутрисхемного программирования ISP с помощью внешнего программатора (в этом случае затрется DFU-загрузчик).

Защита USB от перегрузок

В Arduino Due есть восстанавливаемые предохранители, защищающие USB-порт компьютера от коротких замыканий и перегрузок. Несмотря на то, что большинство компьютеров имеют собственную защиту, такие предохранители обеспечивают дополнительный уровень защиты. Если от USB-порта потребляется ток более 500 мА, предохранитель автоматически разорвет соединение до устранения причин короткого замыкания или перегрузки.

Физические характеристики и совместимость с платами расширения

Максимальная длина и ширина печатной платы Arduino Due составляет 10.2 см и 5.4 см соответственно, с учетом USB-разъемов и разъема питания, выступающих за пределы платы. Три крепежных отверстия позволяют прикреплять плату к поверхности или корпусу. Обратите внимание, что расстояние между цифровыми выводами 7 и 8 не кратно традиционным 2.54 мм и составляет 4 мм.

Arduino Due спроектирован таким образом, чтобы обеспечивать совместимость с большинством плат расширения для Uno, Diecimila или Duemilanove. Расположение основных выводов платы полностью эквивалентно: цифровые выводы 0 - 13 (а также смежные выводы AREF и GND), аналоговые входы 0 - 5, разъем POWER и разъем "ICSP" (SPI) - все выводы расположены на одинаковых расстояниях друг относительно друга. Кроме того, линии основного приемопередатчика UART соединены с одними и теми же выводами (0 и 1). Пожалуйста, обратите внимание, что номера выводов I2C на Arduino Due (20 и 21) отличаются от выводов Duemilanove / Diecimila (аналоговые входы 4 и 5).

Подробная инструкция по работе с Arduino Due (на англ.)

Увлечение платформой Arduino привело меня к устройствам, работающим по шине I2C (сокращение от английских слов Inter-Integrated Circuit) также называемые как "Two-Wire" устройства. Выпускается большое количество микросхем, аппаратно поддерживающих I2C шину. Это и всевозможные датчики, часы реального времени, память, расширители портов и много чего другого. В статье ниже представлена модернизация проекта сканера устройств с шиной I2C на базе Arduino, который описан на странице http://playground.arduino.cc/Main/I2cScanner и пример практической работы с автономным от компьютера прототипом устройства.

Управляющая программа, способы дистанционного управления (bluetooth или APC220), все остаётся прежним.

В статью добавлены схемы и программные коды для переноса проекта на распространенные палаты управления моторами ( и )

Читать

Автоматический полив растений

Пару лет назад увлёкся разведением разных экзотических растений. Благо, подоконники (почти полметра на полтора) позволяют поставить довольно много горшков. Но в прошлом году, как может помнят москивичи, жара была неслабая. Так как работаю я в офисе, то удавалось поливать только утром и вечером. И этого явно было маловато.

Плюс ещё отъезды на дачу на выходные... А один только полметровый куст эвкалипта способен за два дня и ночь испарить 2-3л воды и успеть завянуть.

Фитильная система не понравилась тем, что она нерегулируема и жрёт место на окне. Которого и так мало. Лейки-пипетки типа plant genie не подошли по причине того, что даже познав дао втыкания их в горшок(не так воткнул -- или не капает или вытекает за пару часов), их надо или так много, что не хватает площади горшка или горшок небольшой и просто переворачивается. Ну и на заявленные две недели этих 0.22л тоже не особо хватает.



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows