29 January 2011

USB Toolstick, или программирование микроконтроллеров «для самых маленьких»

Programming microcontrollers


Статья адресована начинающим разработчикам радиоэлектронной аппаратуры и посвящена линейке отладочных средств USB Toolstick компании Silicon Laboratories (Silabs), позволяющих осущуствить быстрый и безболезненный старт в области изучения и программирования микроконтроллеров.

На хабре регулярно появляется множество статей, адресованных начинающим любителям радиоэлектроники, описывающих минимальную последовательность действий, необходимую для приобщения читателя к таинственному и притягательному миру программирования микроконтроллеров.
В качестве нескольких выборочных примеров:
  • недавняя статья, отсылающая к приобретению программатора PICKit2, макетной платы с дырками и конструированию переходника из скрепок;
  • пост, посвященный программированию PICов и предполагающий (частую в подобных случаях) пайку «шнурка»-программатора на COM-порт;
  • статья, автор которой предлагает обойтись «малой кровью» и делать первые шаги не экспериментируя с паяльником и микросхемами, а в виртуальной среде симуляционного САПРа Proteus VSM.
Бегло пробегаясь по комментам, следующим за топиками данного типа, я обратил внимание на существующий неподдельный интерес к подобной тематике среди хабраюзеров, но катастрофическое нежелание, не смотря на это, включать паяльник. Стоит отметить, что среди разработчиков «железа» — закупка программаторов, микросхем, паяльных станций, пайка переходников и организация рабочего места для монтажно-креативного процесса – это важная и неотъемлемая составляющая, если хотите, радиоэлектронной романтики. Однако именно эта составляющая является своего рода входным барьером для отдельной категории «интересующихся», интерес которых не перевешивает необходимый для «быстрого старта» объем усилий.

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

Компания Silicon Laboratories предлагает целую линейку отладочных средств для начинающих разработчиков (для большинства моделей кристаллов).
Следует отдельно отметить, что у микроконтроллеров Silabs есть целый набор отличительных особенностей, выгодно выделяющих их на фоне «народных» Atmel-ов и PIC-ов. В их числе:
  • Прецизионные аналоговые блоки (до 32 каналов АЦП с разрядностью до 24 бит и до 2 каналов ЦАП с разрядностью до 12 бит)
  • Самые высокие показатели производительности среди 8-разрядных микроконтроллеров (до 100 MIPS)
  • Малое энергопотребление (0,3-0,6 мА/MIPS)
  • Малые габариты (до 3х3 мм)
  • Гибкий и мощный блок цифрового ввода/вывода (до 64 линий)
Более подробно о преимущeствах чипов Silabs (в частности, с АЦП) можно почитать, например, здесь.

Итак, наименее искушенным в области электроники неофитам в качестве средства для самого быстрого старта поспешу отрекомендовать Silabs Toolstiсk Evaluation Kit, стоящий 14.80 долларов, например, в питерском «Электроснабе».



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



В схему устройства включены два микроконтроллера: вспомогательный С8051F321 (чип с интегрированным usb-интерфесйом), осуществляющий программирование и внутрисхемную отладку по интерфейсу USB второго микроконтроллера — С8051F300, одного из самых недорогих чипов фирмы Silabs, обладающего, тем не менее, достаточной функциональностью для многих стандартных микроконтроллерных решений.

Кроме того, на плате размещены 4 светодиода: светодиод PWR, отображающий наличие питания по USB; светодиод RUN/STOP, отображающий активность процесса внутрисхемной отладки; два пользовательских светодиода, подключенных у цифровым портам ввода-вывода общего назначения микроконтроллера C8051F300. Собственно с ними и предлагается «поиграть» начинающему разработчику.

Замечу, что Silabs предлагает довольно подробное (для функционала данного устройства) руководство.



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

Кроме того, доступны готовые исходники на C в Application note's на сайте Silabs, которые можно разбирать для ускорения процесса обучения.

В целом, с помощью подобного девайса можно в одночасье решить целый спектр самообразовательных задач и закрепить знания на практике:
  • изучить интегрированную среду разработки фирмы Silicon Laboratories
  • изучить типовой набор команд микропроцессоров C8051Fxxx c 8051-архитектурой
  • написать программы для C8051F300 на ассемблере и C
  • изучить принцип работы встроенного коммутатора ресурсов Crossbar
  • изучить работу конфигурационного мастера для автоматической инициализации микроконтроллерной периферии
  • разобраться с настройкой цифровых портов общего назначения и принципами работы с ними
  • изучить систему прерываний
  • изучить принципы работы и поэкспериментировать со встроенными таймерами
  • разобраться с широтно-импульсной модуляцией и реализовать ее на базе встроенных таймеров
Пользовательские светодиоды (красный и зеленый), размещенные на плате, подключены к портам цифрового ввода-вывода микроконтроллера C8051F300. Из состояние изменяется из программного кода. Таким образом, изменяя состояние светодиодов в прерывании от встроенного таймера, можно заставить их поочередно мигать с заданным временным периодом. Реализовав на базе встроенного таймера широтно-импульсную модуляцию можно управлять интенсивностью их свечения. Подобных экспериментов более чем достаточно для хорошего практического закрепления знаний из приведенного выше списка.

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

Однако функциональности данного устройства становится недостаточно для более продвинутых задач. Изучив вдоль и поперек Silabs Toolstiсk Evaluation Kit, пора переходить на Silabs Toolstick Base adapter и Silabs Toolstick Daughter card с выбранным Вами микроконтроллером. Полный список отладочный устройств — на сайте производителя.



Базовый адаптер реализует функции USB-программатора/внутрисхемного отладчика, а также содержит индикацию питания и процесса отладки.



На дочерней плате микроконтроллера C8051F311 предоставлен доступ ко всем выводам микроконтроллера (зона Full Pin Access на плате). Это позволяет подключать к чипу любые дополнительные электрические цепи. (Можно, например, поуправлять электромотором или нагрузкой «пощелкать» через реле, только желательно через гальваническую развязку.) На плате установлена кнопка, подключенная к одному из выводов микроконтроллера. Кроме того, на плате присутствует потенциометр, подключенный ко входу аналого-цифрового преобразователя.
С помощью такого решения можно легко и непринужденно изучить весь функционал выбранного Вами кристалла.



Дочерние платы для различных микроконтроллеров могут различаться между собой. Например, дочерняя плата чипа C8051F321, содержащего интерфейс USB, содержит разъем microUSB.



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



Отмечу, что Silicon Laboratories — не единственный производитель подобных отладочных средств. Выше приведено изображениe отладочного устройства компании Texas Instruments EZ430-F2013, содержащего микроконтроллер популярного семейства MSP430.

Напоследок, желаю всем больших успехов в области изучения и программирования новых микроконтроллеров в частности и проектирования качественной радиоэлектронной аппаратуры в целом!
Tags:микроконтроллерыпрограммировaниепрограмматоротладкаmcuusbtoolsticksilicon laboratoriessilabstimsp430eZ430
Hubs: Programming microcontrollers
+77
23.6k 151
Comments 55
Popular right now
MCU Developer - Разработчик встраиваемых систем
from 100,000 to 120,000 ₽TekvelМоскваRemote job
Lead Mobile Developer (Android)
from 200,000 to 250,000 ₽UpTeam Inc.Санкт-Петербург
Инженер-программист ПЛК / SCADA
from 40,000 to 95,000 ₽GAFSYNRemote job
Web Developer (Kotlin Sites)
from 150,000 ₽JetBrainsСанкт-Петербург
Web Developer (Kotlin Sites)
from 150,000 ₽JetBrainsМосква