Выбрать главу

На плате все эти порты выведены на штырьковые контакты.

К тактовым контактам микроконтроллера ATmega подключен кварцевый резонатор на 16 МГц.

С помощью кнопки сброса выполнение вашей программы можно перезапустить.

Рис. 1.1. Компоненты платы Arduino Uno

1. Кнопка сброса

2. USB — разъем

3. Конвертер - последовательного и USB интерфейсов

4. Разъем для подключения внешнего источника питания 7-12 В

5. Цифровые контакты ввода-вывода

6. Светодиод, предназначенный для отладки

7. Контакты интерфейса ICSP для программирования микроконтроллера

8. Микроконтроллер ATmega 328

9. Входы аналого-цифрового преобразователя

10. Контакты питания и вспомогательные контакты

- 30 -

Большинство плат Arduino оснащено светодиодом отладки (Debug), подсоединенным к контакту 13, который позволит реализовать нашу первую программу (мигающий светодиод) без дополнительных компонентов.

1.4. Интерфейсы программирования

Обычно программы микроконтроллера ATmega, написанные на С или Ассемблере загружаются в микроконтроллер через интерфейс ICSP с помощью программатора (рис. 1.2). Возможно, самая важная особенность Arduino - непосредственное программирование через USB-порт, без дополнительного программатора. Эту функцию обеспечивает загрузчик Arduino, записанный в микроконтроллер ATmega на заводе-изготовителе, и позволяющий загружать пользовательскую программу на плату Arduino по последовательному порту USART.

В случае Arduino Uno и Mega 2560 интерфейсом между кабелем USB и контактами USART на основном микроконтроллере служит дополнительный контроллер (ATmega 16U2 или 8U2 в зависимости от версии платы). На плате Arduino Leonardo установлен основной микроконтроллер ATmega 32U4, имеющий встроенный контроллер USB. В более старых платах Arduino функцию сопряжения между последовательным портом ATmega и интерфейсом USB выполняла специальная микросхема.

Загрузчик - это фрагмент программного кода, который записан в зарезервированное пространство памяти программы Arduino. Микроконтроллеры AVR обычно программируются с помощью ICSP, который взаимодействует с микроконтроллером через последовательный периферийный интерфейс (SPI). Этот способ предполагает наличие программатора, например, STK500 или ISP MKII ( см. рис. 1.2).

Рис. 1.2. AVR программатор ISP MKII

Сразу после включения платы Arduino запускается загрузчик, который работает в течение нескольких секунд. Если за это время загрузчик получает команду программирования от IDE по последовательному интерфейсу UART, то он загружает программу в свободную область памяти микроконтроллера. Если такая команда не поступает, запускается последняя программа, находящаяся в памяти Arduino.

- 31 -

При подаче команды загрузки от IDE Arduino вспомогательный контроллер (ATmega 16U2 или 8U2 в случае Arduino Uno) сбрасывает основной микроконтроллер, подготавливая его к загрузке. Затем внешний компьютер начинает отправлять код программы, который микроконтроллер получает через соединение UART.

Загрузчики занимают в памяти довольно много места, потому что они реализуют простое программирование через USB без внешних аппаратных средств. Однако у них есть два основных недостатка: + они занимают место в памяти (приблизительно 2 Кбайт), которое могло бы пригодиться при написании программ; + при наличии загрузчика выполнение вашей программы всегда будет задерживаться на несколько секунд при начальной загрузке, поскольку загрузчик обрабатывает запрос на программирование.

Если у вас есть программатор (или другая плата Arduino, запрограммированная как программатор), то можно удалить загрузчик из своего контроллера ATmega и программировать его с помощью внешнего программатора.

1.5. Цифровые и аналоговые контакты ввода-вывода

У контроллеров Arduino к большинству контактов ввода-вывода можно подключить внешние схемы. Все контакты могут служить цифровыми входами и выходами. Часть контактов Arduino могут также действовать в качестве аналоговых входов. Многие из контактов работают в режиме мультиплексирования и выполняют дополнительные функции: различные коммуникационные интерфейсы, последовательные интерфейсы, широтно-импульсные модуляторы и внешние прерывания.

1.6. Источники питания

Для большинства проектов достаточно 5-вольтового питания, получаемого по кабелю USB. Однако, при необходимости разработки автономного устройства, схема способна работать от внешнего источника от 6 до 20 В (рекомендуется напряжение 7-12 В). Внешнее питание может подаваться через разъем DC или на контакт Vin.