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



    Статья адресована начинающим разработчикам радиоэлектронной аппаратуры и посвящена линейке отладочных средств 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.

    Напоследок, желаю всем больших успехов в области изучения и программирования новых микроконтроллеров в частности и проектирования качественной радиоэлектронной аппаратуры в целом!
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 55

      0
      Я бы дюже хотел такую же штуку, но для ARM.
        +3
        Посмотрите здесь. Тут большая подборка отладочных средств разных производителей, выполненных в описанном в статье форм-факторе, в том числе есть и устройства с ARM-микроконтроллерами.
        • НЛО прилетело и опубликовало эту надпись здесь
            +1
            Я пробежался по сайту и не заметил там toolstick-ов…
            • НЛО прилетело и опубликовало эту надпись здесь
                +1
                Ну это-то понятно, просто это уже немного другой тип отладочных устройств. Другая весовая категория, что ли… =)
          0
          www.freertos.org/shop/lpcxpresso-with-lpc1768-p-55.html не пойдет? правда не брал сам, брал Blueboard 1768 + олимексовский JTAG
            0
            forum.easyelectronics.ru/viewtopic.php?f=7&t=3114
            В этом топике рассказывается о том где и как намутить STM32 Discovery нахалву. Вроде бы раздача слонов хоть и замедлилась, но еще не прекратилась.
              0
              сегодня получил на почте, не терпится заюзать. за 1 месяц из Германии долетело.
            +3
            Texas Instruments кстати не так давно раздавали до трех экземпляров EZ430-F2013 бесплатно. С бесплатной доставкой в том числе.
              +3
              Кстати, молодцы, хороший PR с целью «подсадить» разработчиков на свои чипы! Я как-то тоже взял поюзать такой и благодаря этому получил прекрасное впечатление о 430-м семействе.
              –5
              как меня убивают эти доисторические IDE для микроконтоллеров, ужас
                +2
                Ну сравните
                  +7
                  Я много работал c silab-ами: на самом-то деле, у них среда довольно удобная. Не знаю, почему Вы так чувствительно реагируете не ее внешний вид. Самое главное, что в ней четко и без малейших сбоев работает весь необходимый функционал: программирование и отладка. И не требуется никаких дополнительных настроек, поставил и сразу подключайся к кристаллу.
                    +2
                    А вы в действительности пользовались всеми этими свистелками-перделками?
                      +2
                      Меня больше удивило вот что:

                      Называется найдите 10 отличий
                        +1
                        ну дык шестую студию давно отдавали по лицензии на создание своих IDE. Visual DSP++ оттуда же, по-моему.
                    –7
                    реально ли на базе такой штуки сделать скиммер для кредитных карт (и получить за это пятак)?
                      +14
                      Скорее в пятак за это можно получить. =)
                        0
                        Вы ресурсом ошиблись… ксу и кбиз в помощь)
                        +1
                        А какие плюсы, помимо компактности?
                        Ну научились писать простенькие (и не только) программки для этих МК. Помигали светодиодами, пообрабатывали потенциометр и кнопку.

                        А теперь захотелось, к примеру, сделать что-то рабочее.
                        В отличие от ардуино — не представляю как использовать это в качестве сердца устройтсва.

                        Ладно, остается у нас это в качестве программатора\отладчика. И вы предлагаете начинать с пайки QFN? Да там даже ног нету. Ну, может есть альтернатива с TQFP — не намного лучше будет.

                        И что в итоге остается? Попробовать да бросить?

                        Как демоборд для изучения — неплохая вещь. Но именно для прощупывания возможностей.
                        Для начинающих, не желающих паять — ардуины, MBED, и пр.
                          0
                          Во-первых, это более user-friendly и дешевле.

                          Во-вторых, если поигрались с функционалом дочерней платы и решили использовать ее в реальном разрабатываемом устройстве, то ничего не мешает вытащить дочернюю плату из сокета базовой платы и использовать.
                          Она меньше по габаритам, чем Arduino! Она меньше, чем люой профессиональный отладочный KIT.
                          Она дешевле на порядок, чем Arduino!
                          На ней выведены все пины чипа. Не нужны кнопка, потенциометр и LED — смело выпаивай!
                          На ней выведены отдельно питание и земля. Отдельно выведены и пины программирования.
                          Так что QFN в ручною паять не потребуется.
                            0
                            Ну, о user-friendly говорить не буду. Не щупал — не знаю что там и как.

                            TOOLSTICK-EK — как его разделить? Она вообще что может делать, кроме как мигать двумя светодиодами? И это за 700р?

                            Меньше по габаритам? Да я же первой строчкой комментария сказал, что не отрицаю этого.
                            Но ардуино — считай что основа, которую можно дополнять необходимым без пайки.
                            MBED (только для примера) — удачно маскируется под DIP-40.

                            Новичкам не нужна компактность. Нужна простота.
                            Как крепить эту Daughter card? Даже отверстия в разнобой (судя по P3, RST, GND).

                            Дешевле? Это по оптовым ценам? В рознице я вижу только что-то за 1000-1500.

                            Про распространенность промолчу. Информации по AVR, PIC, и даже по ARM — куда больше.

                            P.S.
                            Ничего не имею против данных устройств. Просто пытаюсь понять целевую аудиторию. И лично мне кажется, что для новичков — это тупиковый путь развития.
                              0
                              TOOLSTICK-EK действительно не разделить. Но только не за 700 рублей, а за 13.80 * 29.80 = 411 рублей.

                              Daughter card преднадначен для ознакомления как демоборд, но при желании его можно использовать в реальной разработке, хотя это не является его основным предназначением. Этим и обусловлено отсутсвие конструкитвных отверстий для крепления и т.д.

                              На самом деле, по Silabs очень много информации, просто он в народных массах радиолюбителей менее популярен, чем Atmel и PIC. В том числе и из-за корпусировок. Хотя, присмотритесь, по техническим характеристикам Silabs — эффективный выбор для целого ряда задач.

                              Как я уже писал, существуют toolstick-и для других архитектур, в том числе для ARM.

                              P.S.: Я не агитирую за повальное использование таких отладочных средств во всех случаях. Я их не продаю и никак коммерчески не заинтересован в продвижении конкретно этой группы товаров. Но я давал новичкам такие устройства, и они быстро осваивались. А потом — проще переходить на KIT-ы и все остальное. Мне кажется это очень неплохой вариант для quick start-а.
                                0
                                Ну, 700р — это в мегачипе. ЧиД — еще дороже.

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

                                После освоения этих карт упираешься в тупик: или учиться паять QFN, или переходить на более доступные AVR, или пытаться использовать эти карты не по назначению.
                                  0
                                  Если электронные разработки — работа, то пайка QFN (да и BGA) не останавливает, есть профессиональные монтажники и печка.

                                  В домашних условиях QFN тоже паяются, только нужно приноровиться. =) Тоже хорошая практика, если есть способности к этому.

                                  Но у Silaba большинство микросхем есть в корпусах TQFP или LQFP.

                                    0
                                    Работа — это отдельный разговор.
                                    А для хобби — все самому. В домашних условиях. Зачастую — с минимальным набором инструментов. Печка? Да даже о фене зачастую речи не идет.

                                    С QFN пока не встречался, на очереди из безноговых пока только LGA-14.
                                    TQFP паял — вполне реально. Но это явно задача не на первый день дружбы с паяльником. Начинать лучше все-таки с DIP.

                                    Если цель — поиграться с железом без паяльника — ардуино.
                                    Если же в планах самостоятельно платы делать — то лучше начинать с максимально простых AVR|PIC&DIP, и лишь потом переходить на более сложное\мелкое.
                                      0
                                      В этом плане согласен с Вами. DIP-ы в плане пайки для начинающих — лучший выбор.

                                      Я тоже паял TQFP, хотя я отнюдь не являюсь профессиональным монтажником. В свое время получилось с первой попытки.
                                +1
                                В конкретно этих стиках стоят чипы с ядром 8051, с таким же ядром есть чипы, и от Microchip, и от Atmel, и от TI. Это довольно популярное ядро, особенно на западе.
                            0
                            Я не спец, но лучше бы LPCXpresso 1768 взял (20 евро насколько помню), это уже арм будет. Хотя впрочем смотря под какие задачи, свтодиодом мигать так-будет как микроскопом гвозди.
                              0
                              Светодиодом мигать — это же не отдельный проект, а просто экспериментальная задача для изучения микроконтроллера и среды разработки. =)
                                0
                                На самом деле это ритуал.
                                  0
                                  «Hello world» микроконтроллерного мира.
                              +5
                              Если ты, %username%, программист .Net, но всегда боялся микроконтроллеров, то у меня есть хорошая новость!
                              Сейчас появилось навалом «контроллеров», работающих на .NET Micro Framework. От совсем простых для помигать светодиодом и до весьма умных, с поддержкой ethernet, wifi, usb, tohchscreen и всяких других вкусностей.
                              Может кого заинтересует внешний вид «простого» варианта:
                                +1
                                Что-то дорого. помигать светодиодом за 30 баксов, и весьма умные по 300.
                                  0
                                  если вам необходимо лишь помигать светодиодом — то можно купить пару транизсторов с парой конденсоторов.

                                  •Atmel 32-bit microcontroller
                                  •Speed: 48MHz, ARM7
                                  •Code Storage: 152 KB
                                  •RAM: 64 KB
                                  разведены: UART,RS232,SPI,I2C TWI,PWM4x,ADC.

                                  Большинству этого хватит на реализацию всего желаемого. Лишь бы фантазии хватило.
                                    –1
                                    А если учесть, что в розницу только один этот МК стоит 22 евро (farnell), а в местных магазинчиках дешевле 2000р не найти — даже с неразведенными USB,CAN,Ethernet и остальной периферией: 30$ — довольно вкусная цена.
                                      –2
                                      А если учесть, что в розницу только один этот МК стоит 22 евро (farnell), а в местных магазинчиках дешевле 2000р не найти — даже с неразведенными USB,CAN,Ethernet и остальной периферией: 30$ — довольно вкусная цена.
                                    0
                                    А еще есть вот это: www.tinyclr.com/hardware/2/fez-mini/

                                    0
                                    Опыт собственного личного старта начинался с Proteus'а, где на виртуальную AVR (ATMega8) заливал свой код и баловался с «железом». Потом как-то в руки попола отладочная плата EV8031:
                                    opensys.com.ua/ev8031.html
                                    Правда, насколько я знаю, она около 200 у.е. стоит. Но если заниматься МК серьезно, то она того стоит.
                                      +1
                                      И собственно вопрос, как эту хрень паять? Толку в крутости если я плату без гемороя под такой МК не сделаю. Извольте, я лучше на STM8 перейду, там корпуса хоть и мелкие, но паябельные.
                                        0
                                        Практически все чипы Silabs есть в корпусах TQFP или LQFP.
                                        0
                                        Как там с примерами кода и апноутами? Есть что-то близкое по возможностям, как у Atmel для ARM и AVR? Или велосипеды предлагается изобретать самому?
                                          0
                                          На сайте silabs.com есть превеликое множество апнотов.
                                            0
                                            Имхо, прямая ссылка, а еще лучше — обзор примеров не помешали бы статье.
                                        0
                                        Хех самое прикольное что

                                        Киты для ARM Cortex M3 (stm32F103) ST рассылала всем желающим нахаляву. Я уже два притырил.

                                        Texas Instruments EZ430-F2013 тоже высылался нахаляву. Надо было только найти купон с промокодом. Тоже намутил такую игрушку.

                                        LPC Экспрессо продавалась вообще за гроши, но имхо убога чуть более чем полностью.
                                        +1
                                        Одно не понимаю, зачем лезть в программирования МК стараясь избежать паяльника и железных работ? Ну научишься мигать диодиком на демоплатке? А дальше что? Дальше надо делать свое железо. И тут без пайки и создания плат никуда.
                                          0
                                          Arduino>breadboard>макетка>ЛУТ+DIP…

                                          А вот эти брелки куда поставить…
                                            +1
                                            Я с Вами согласен, что надо приучать себя к железу. Но многие просто «боятся» пайки. Или просто «самоучки», которым, в принципе, программирование микроконтроллеров нафиг в жизни не надо.
                                              +1
                                              Так можно сделать процесс перехода к паяльнику более безболезненным для новичков. Есть определенный контингент начинающих, «заходящих» в эту область со стороны программирования, а не электроники. Для них — это идеальный вариант.
                                              0
                                              Не приходилось ли сталкиваться с более полным отладчиком SiLabs USB Debug Adapter EC3?

                                              Суть в чем. Клонов EC3 полно на Aliexpress (под странными именами EC4/EC5/EC6 хотя настоящее имя EC3) но все кривые с одинаковым серийным номером, который похоже забанен в DLL. Мне тут один даже подарили как нерабочий. Родная USB Debug Adapter Reset Utility его видит, софт заливается, USB не пропадает. Но отладка из IDE вообще не идет, не видит Target хоть тресни.

                                              Линуксовая тулза адаптер видит и читает версию софта (версия меняется от разных Reset Utility). Но target-а тоже нету. И тулза давно заброшена.

                                              Вывод: не все китайские клоны одинаково полезны.

                                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                              Самое читаемое