среда, 20 июля 2011 г.

Дисплейный шилд.


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

Для проверки платы была запущена тестовая программа дисплея на Amicus18. Загоревшаяся строка «Hello Word», порадовала и показала работоспособность палаты. Осталось проверить кнопки и шину I2C.
Дисплей несколько выходит за границы шилда, но считаю это не страшным, так как Arduino-подобные платы больше являются платформой разработки, чем окончательными устройствами.

суббота, 2 июля 2011 г.

LPCXpresso - проблемы и русский подход.

В последнее время переключился с изучения STM32 на LPC1114. Данный контроллер попроще да и готовые библиотеки периферийных устройств значительно облегчают задачу. Хотя в принципе, все изучение сводится к прочтению информации о регистрах и освоению языка С со всеми его прибамбасами. Последнее даже больше сдерживает, чем структура МК.
В процессе работы решил сделать бегущие огни. Самая примитивная задача, но тем не менее позволяет получить от контроллера реальную работу. К плате LPCXpresso были припаяны штыревые разъемы PLS, для установки ее на макетную плату. В качестве порта был выбран GPIO2. И здесь возникла проблема. Светодиоды, подключенные к ножкам 4 и 5 никак не хотели зажигаться. Разбирался долго, часа 3. Вначале вдоль и поперек прошерстил программу. Ничего не помогало. Светодиоды не реагировали даже на прямое включение. Затем настала пора мультиметра и даташита. Измерения показали стабильный уровень на контактах разъема. Стал прозванивать дорожки, и вот здесь обнаружилось несоответствие линий МК и маркировки на плате. Оказалось, что GPIO2_4 и GPIO2_5 подключены к совсем другим контактам, обозначаемым USB-DM, USB-DP. А на промаркированном их именами месте, разведены GPIO3_4 и GPIO3_5. Ради интереса решил посмотреть доки на LPCXpresso и там нашел описание этой особенности плат. В общем все по русски - вначале долго разбирался, все исправил и только потом стал читать инструкцию. Тем не менее есть удовлетворение от собственноручного получения результата.

суббота, 25 июня 2011 г.

LPCXpresso - первые впечатления.

Наконец руки дошли попробовать плату LPCXpresso. Скачал и установил бесплатную среду программирования CodeRed. По сути тот же Eclipse, только несколько доработанный. Вызвало недовольство только необходимость регистрации на официальном сайте для скачивания среды, а потом еще и ее активации. Дальше все поставилось без проблем.
Принцип работы с CodeRed практически совпадает с Atollic от STMicroelectronics. Но CodeRed в целом и его доработки под LPCXpresso понравились больше.
На моей LPCXpresso установлен процессор LPC1114. При выборе в IDE дополнительно необходимо указывать версию, в моем случае 302. По структуре данный процессор относится к семейству Cortex-M0, что делает его более простым по сравнению с STM32. Еще больше упрощает работу наличие большого числа библиотек, и примеров в стандартной поставке. Например библиотека gpio содержит "человеческие" функции работы с портами. Ее использование позволяет обойтись без страшных выражений на языке С. Конечно, это только мнение человека, привыкшего к ассемблеру и паскалю, но мне так программировать приятнее. Хотя конечно все равно потребуется изучать регистры и структуру процессора.
Единственной проблемой с Codered оказалось что он не понимает русских букв в названии папок. Но это не особо проблемно.

суббота, 4 июня 2011 г.

Применение микроконтроллеров STM32.

Одним из самых интересных применений микроконтроллеров STM32 стал проект квадрокоптера "Крэйзикоптер"с сайта http://www.daedalus.nu/category/crazycopter/crazyflie/. Для тех кто не в курсе, квадрокоптер это маленькая модель вертолета с четырьмя несущими винтами и соответственно четырьмя двигателями. Особенностью полета подобных устройств является невозможность достижения устойчивой траектории без применения дополнительных технических средств. В данном проекте использованы два гироскопа и акселерометр. Их задача - удержать вертолет на месте в горизонтальном положении, при отсутствии сигналов с пульта управления.

Подобных этому проектов, сегодня существует великое множество. Главная уникальность "Крэйзикоптера" - очень маленькие размеры. Вся конструкция с легкостью умещается на ладони. Ее сердцем является микроконтроллер серии STM32F103, обрабатывающий сигналы с датчиков и регулирующий обороты двигателей. Управление полетом выполняется через модули 2.4ГГц nRF24L01.

В проекте задействовано множество возможностей STM32. В частности используются АЦП, интерфейсы SPI и I2C. К сожалению на сайте не выложены ни печатная плата, ни прошивки процессора. Соблазн построить точно такое же устройство очень велик, но пока решиться на полностью самостоятельное изготовление не могу.

четверг, 26 мая 2011 г.

MicroPascalPRO

Неделя была омрачена полным отказом материнской платы основного домашнего ПК. Долгие муки выбора - Что делать? - разрешились покупкой нового системника. Соответственно пришлось переустанавливать кучу программ. В качестве эксперимента решил обновить MicroPascal от Mikroelektronika. Зайдя на официальный сайт обнаружил совсем новую версию пакета, предназначенную в первую очередь для разработки программ на EasyPIC6. Тем не менее скачал и установил. Подключив свою плату EasyPIC5 успешно откомпилировал и загрузил простую управляющую программу. Проблем не возникло.

Теперь про отличия MicroPascalPRO. В первую очередь поменялся интерфейс. Он стал более современным, все необходимые панели расположены по бокам и легко убираются. Добавилось несколько новых модулей. Например появился терминал HID-устройств. Но больше всего понравился преобразователь систем счисления, позволяющий легко получить данные в двоичной, шестнадцатеричной и других системах с нужной разрядностью и знаком. Также добавились библиотеки периферийных устройств.
Про объем и качество получаемого кода пока ничего сказать не могу. Максимальный объем демо-режима остался прежним - 2 кБ. При желании получить полнофункциональную версию понадобиться 199 долларов.

суббота, 21 мая 2011 г.

Дисплейный шилд. Печатная плата.

Набросал в SprintLayout предварительный эскиз печатной платы. По габаритам вылез с одной стороны за пределы контура Arduino. Разводка выполнялась под односторонний текстолит и технологию ЛУТ. Поэтому некоторые моменты не нравятся, но без них никуда не деться. Для повышения универсальности предусмотрел два разъема для индикаторов разного типа.
Недостатком стало расположение батарейки резервного питания и подстроечного конденсатора под дисплеем. Сейчас думаю, может отказаться от второго разъема, и вывести все более доступно.
Также на плате есть место под микросхему памяти с шиной I2C. Хотел установить термометр DS1621, но передумал, так как возможный нагрев элементов исказит показания.

Так как плата, по определению, будет самой верхней, решил не устанавливать вторые разъемы расширения, а все свободные линии и линии от кнопок вывел на двухрядный разъем.

среда, 18 мая 2011 г.

Дисплейный шилд - следующий проект.

Закончив предыдущий проект, долго думал что делать дальше. Есть желание разработать какую-нибудь плату под 32-разрядные микроконтроллеры, но пока нет определенности с задачей. Поэтому пока остановился на дисплейном шилде для Arduino и Amicus18. Использовать его можно будет во многих проектах, а также создавать готовые пользовательские устройства.
Шилды для Arduino являются отличительной особенностью этого проекта. К сожалению в России не самый большой выбор таких плат, а заказывать за границей не всегда удобно. Остается разрабатыватьтакие платы самостоятельно.
Одним из самых необходимых шилдов, является дисплейный модуль. Его использование возможно в большом количестве разнообразных проектов. На плате шилда планируется установить двухстрочный ЖК-дисплей, микросхему часов реального времени с резервной батареей и минимум 4 кнопки. Подобная конфигурация, теоретически, должна позволить создавать устройства операторского интерфейса.
В качестве часов реального времени мне нравится микросхема PCF8583, оснащенная шиной I2C. Реализация этой шины в проекте, позволит подключать дополнительные устройства, например датчики температуры или расширители портов. Также возможно использование специализированных микросхем радиоприемников или обработки аудиосигналов. Так как дисплейный шилд в любом проекте будет самым верхним устройством, он не требует установки дублирующих разъемов. Все свободные линии планируется вывести на отдельный штыревой разъем.