Безусловно, самый простой способ – это использование «Ардуино». Чипы Atmel легко программировать, и вы можете сделать это даже на самой простой «Ардуино UNO» без какого-либо постороннего инструментария. Микросхемы AVR, производимые с 1996 года до настоящего времени, многочисленны: от небольших ATtiny13, ATtiny85, ATtiny45, ATtiny2313 (который также имеет последовательный порт) до самых мощных ATmega328, ATmega644, ATmega1284 и ATmega2560.
Таблица 9.1.
Характеристики некоторых микрочипов AVRДля программирования AVR-чипов вы должны использовать ISP-программатор, т. е. In-System Programming, это означает, что нет необходимостиснимать микропроцессор из схемы, в которой он установлен, для его программирования. Эта возможность экономит много времени в процессе производства. Чипы, которые поддерживают систему ISP, содержат схему, необходимую для выполнения записи и стирания операций прошивки. Таким образом, программатор может быть очень простым и экономичным. Мы можем перепрограммировать эти микроконтроллеры около десятков тысяч раз.
Самое дешевое решение для программирования AVR – это использование «Ардуино» в качестве программатора ISP. В описанных примерах с «Ардуино» приведен скетч, называемый ArduinoISP. Загрузив его в «Ардуино», вы можете превратить плату в программатор для AVR-чипов по практически нулевой цене!
В FabLab MIT был разработан проект с открытым исходным кодом под названием Fab-ISP для построения ISP-программатора. Инструкции по созданию FabISP можно найти на сайте MIT (http://bit.ly/makefabisp). FabISP использует ATtiny44 чип, оснащен USB-разъемом для подключения к компьютеру и 6 контактами, которые соединяют чип с программатором. Чтобы построить FabISP… нужен FabISP! Или другой программатор для AVR. К сожалению, вы не можете использовать ArduinoISP, потому что он не поддерживает некоторые функции для настройки ATtiny44. Если вы не знаете специалиста, который сможет помочь вам, вы всегда можете купить коммерческую версию проекта FabISP по цене чуть больше десяти евро. Наконец, вы можете подумать о покупке официального комплекта для разработки ATMEL – AVR Studio.
Рис. 9.7.
Цоколевка микроконтроллеров ATtiny85, 45 и 25Программатор подключается к микросхеме с помощью четырех контактов, которые называются MOSI, MISO, SCK (или UCK), RESET, и подается питание Vcc (положительное) и GND (земля). Эти выводы выступают в качестве последовательного порта и передачи и приема информации с чипом. Наименования разъемов расшифровываются как:
• MISO – вход ведущего, выход ведомого (Master In Slave Out);
• MOSI – выход ведущего, вход ведомого (Master Out Slave In);
• SCK – последовательный тактовый сигнал (Serial Clock);
• RESET – активирует программирование чипа; когда он подключен к напряжению питания, чип может выполнять программу.
Каждый микроконтроллер, в дополнение к внутренней памяти (RAM – Оперативная, EEPROM – ЭСППЗУ и Флэш), имеет специальные зарезервированные байты (также называемые регистры), которые служат для настройки его поведения. Эти регистры называются «fuse» и могут быть изменены по желанию с помощью программатора ISR Для записи fuse используются такие программы, как Avr-dude или WinAVR для платформы Windows. Fuse – это последовательности битов, которые могут быть вычислены в соответствии с инструкциями в паспорте или с помощью онлайн-калькулятора fusecalc (http://www.Engbedded.com/fusecalc/).
AVR имеют три байта для fuse. Основными параметрами являются:
• Clock Selection – каждому процессору необходим тактовый сигнал для работы. Тактовый сигнал, представляет собой прямоугольный сигнал, регулярную и точную, задающий ритм операций. Тактовый сигнал может поступать из внешнего источника (External Clock) или быть сформирован внутри чипа (Internal Clock). Внутренний тактовый сигнал не очень точен, и его частота может зависеть от напряжения питания и температуры. Если точность не имеет большого значения, выбрав внутренний источник, мы сохраняем два контакта, так нет необходимости подключения дополнительных компонентов к микросхеме. Внутренняя тактовая частота может быть установлена на 8 МГц, 4 МГц или 128 кГц. Заводские настройки обеспечивают тактовую частоту в 8 МГц. Если мы выберем внешний тактовый сигнал, необходимо подключить дополнительный компонент, такой как кварц или керамический резонатор, занимающие два контакта. С кристаллом кварца тактовый сигнал может достигать 20 МГц.
• Startup time – это промежуток времени, который микроконтроллер будет ждать перед выполнением прошивки. Необходимо подождать определенное количество миллисекунд до того, как сигнал синхронизации будет стабильным и точным. Лучше всего подождать как можно больше времени (14 СК + 65 мс = 14 тактовых импульсов и 65 миллисекунд).
• Clock Output – тактовый сигнал также может быть перенесен на выход чипа. Данное действие будет полезным, если вы хотите синхронизировать несколько чипов. Если активировать эту опцию (выключено по умолчанию), тактовый сигнал будет присутствовать на одном из выводов (D2 для ATtiny85).