вторник, 6 декабря 2011 г.

V850 против ARM

Получив набор V850 Starter Kit, потихоньку изучаю процессор. Информации не очень много, но в принципе достаточно. Появились первые выводы, особенно если сравнивать с архитектурой ARM.
1. Процессор V850 выполнен по Гарвардской RISC архитектуре. Это означает разделение памяти программ и данных, при сокращенном наборе команд. Теоретически, V850 должен работать быстрее, при этом его проще программировать.
2. Набор периферийных устройств у обеих архитектур примерно одинаков и не содержит больших особенностей. Это значит что можно решать одинаковые задачи.
3. Объем памяти программ в старших моделях V850 достигает 1Мб. Здесь преимущество на стороне V850, так как больший объем позволяет решать более сложные задачи.
4. V850 поддерживает 32 и 16 разрядные команды, тогда как ARM семейства Cortex работает только с 16-разрядными. Такой подход повышает производительность, хотя большой разницы для обычного пользователя нет, так как большую часть забот берет на себя компилятор.
5. V850 поддерживает битовые инструкции и аппаратное умножение 16-разрядных чисел. А вот здесь уже ARM сильно отстает, так как не содержит подобных команд.

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

четверг, 1 декабря 2011 г.

Штыревой ARM.

ARM микроконтроллеры при всей их мощности, создают впечатление обилия недостатков. Здесь  можно отметить и отсутствие битовых операций и тяжелые среды разработки. Но пожалуй главным недостатком в радиолюбительской практике является отсутствие микросхем в корпусах штыревого монтажа. Во всяко случае нигде такие устройства не попадались, может быть их кто-то и производит. Конечно при некоторых навыках можно создать в домашних условиях плату и  в нее запаять корпус TQFP, но усилий такой вариант потребует много при высокой вероятности неудачи.
Подобная ситуация видимо стала понятна инженерам NXP, и они объявили о разработке ARM-микроконтроллера в корпусе DIL-28. В этом корпусе будет выпускаться один из вариантов LPC1114, устанавливаемый в платы LPCXpresso.
Пока о сроках выхода ничего не известно, но хочется надеяться что это произойдет достаточно быстро. Появление подобного варианта может существенно поднять популярность ARM и упростить разработку любительских устройств.

пятница, 21 октября 2011 г.

Отладочная плата V850ES/Jx3-L Starter Kit.

Увидев на одном из сайтов, объявление о новом микроконтроллере и возможности заказать бесплатную отладочную плату, сразу же заинтересовался. микроконтроллером оказался V850, выпускаемый фирмой Renesas. Регистрация на ихнем сайте прошла без проблем, но через некоторое время мне пришло письмо, что отладочных плат нет в наличии и ничего отправить мне не смогут.
Какое же было удивление, когда через три месяца, пришел пакет с платой  V850ES/Jx3-L Starter Kit!  Видимо господа из Renesas передумали. 

В комплекте с платой идет компакт-диск, чего не было у других подобных устройств. На диске записано программное обеспечение - IAR для V850, программатор, документация и примеры. В общем комплектация порадовала.
Сама плата  V850ES/Jx3-L Starter Kit имеет практически стандартную схемотехнику. На ней присутствуют целевой процессор и процессор отладчика, а также все необходимые элементы обвязки. Установлен большой разъем USB (Тип А), что позволяет подключать плату непосредственно к порту компьютера, без дополнительного кабеля. К особенностям платы можно отнести установленный датчик влажности SHT21 и некий аналог корпуса, позволяющий удобно оперировать с подключением к ПК. Из недостатков - отверстия под периферийные разъемы маленькие, с частым шагом, что усложняет подключение самодельных устройств.
В целом плата достаточно стандартна и несколько напоминает LPCXpresso и STM32Discovery. Радует наличие документации и программ. Буду запускать и пробовать программировать.

пятница, 30 сентября 2011 г.

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

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

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

пятница, 23 сентября 2011 г.

Оптимизация кода.

Одной из проблем использования языков высокого уровня является объем получаемого в результате компиляции машинного кода. Особенно остро эта проблема ощущается для микроконтроллеров. Если для больших ПК, с их гигабайтами памяти и HDD, объем кода практически не имеет значения, то ограниченность ресурсов даже топовых МК предъявляет особые требования. Так, например, объем одного и того же алгоритма на ассемблере и языке высокого уровня может отличаться в десятки раз. В качестве примера можно привести IDE Arduino, в которой даже простейший код занимает очень много места.
К счастью, многие разработчики стали встраивать в свои компиляторы оптимизаторы кода. Так в системе программирования Amicus18 IDE, оптимизатор идет дополнительной опцией, при этом глубину оптимизации можно настраивать. Несколько иной подход в среде MicroPascal, предлагаемой фирмой Microelectronica. Оптимизация там выполняется в процессе компилирования. при этом более новые версии имеют более компактный код. Для опыта была откомпилирована одна и та же программа термометра на микроконтроллере PIC12F629. Использовались среды MicroPascal ver.6 и MicroPascalPro ver.4.6. В первом случае объем кода составил 844 команды, во втором 743. Прогресс явный, хотя все то же самое можно вполне уместить пару сотен ассемблерных команд. Меньший объем у версии PRO порадовал, учитывая ограничение в бесплатной версии на 2 кб.

среда, 14 сентября 2011 г.

Первый опыт запуска GSM-модема.

Долгое время купленный GSM-модем лежал без дела. Попробовать его руки не доходили. За это время на основной службе были получены два модема MC35i от Siemens. Естественно запустить их надо стало срочно. И тут выяснилось, что всех знаний в области микропроцессорной техники не хватает, так как беспроводная связь несколько более сложна, чем представлялось ранее.
В итоге куча опробованных вариантов не привела к нормальной работе. Модемы мигали лампочкой, чуть слышно свистели, но ничего не делали.
Придя домой решил продолжить опыты, но уже со своим WISMO228. Воткнув питание и запустив HyperTerminal, получил все ту же картину отсутствия связи. Пришлось разбираться и читать документацию. Первая проблема оказалась просто в не включенном модеме. Кнопка ON перевела его в нормальный режим, загорелась зеленая лампочка. Как не странно, тут же запустился HyperTerminal. Дальше пришлось разбираться с AT-командами. Первые попытки связи и отправки SMS ни к чему не привели. К счастью, проблема оказалась в синтаксисе команд и их перепутывании между собой, так как они имеют практически одинаковое написание. В итоге первая смска ушла на телефон дочери. Туда же был сделан первый звонок. Осталось разобраться с передачей данных. Пока есть желание попробовать режим CSD, так как именно он используется в оборудовании.
В процессе изучения было перерыто множество сайтов и некоторые варианты повергли в шок. Особенно напугали длинные числовые последовательности. Видимо придется разбираться и с этим.

пятница, 9 сентября 2011 г.

Arduino на базе 32-разрядных микроконтроллеров.

Одна из самых известных фирм - производителей отладочных и ознакомительных плат OLIMEX, не так давно приступила к выпуску Arduino-совместимых плат. При этом в ее линейке, кроме классических вариантов на базе процессоров от AVR, появились и варианты на базе STM32 и PIC32. Оба варианта изготавливаются в форм-факторе Arduino UNO.
Плата на базе STM32 получила название OLIMEXINO-STM32. Ее основу составляет контроллер STM32F103. Кроме стандартных для Arduino устройств, плата содержит кнопку, держатель карт SD/MMC, CAN-интерфейс, UEXT-коннектор, контроллер заряда Li-Ion аккумуляторов, а также дополнительный разъем для выводов. Для программирования используется клон родной среды под названием MAPLE IDE.
Olimexino-STM32. Фото с olimex.com
Плата под процессор PIC32 изготавливается в двух вариантах - простом и OTG. Первый содержит PIC32MX440F256H, оснащенный 256KB Flash и 32KB RAM. Из устройств - часы реального времени, UEXT-коннектор, контроллер заряда Li-Ion аккумуляторов. Имеется также несколько дополнительных отверстий для портов ввода-вывода. Вариант OTG отличается наличием держателя карт SD/MMC и некоторыми другими особенностями. Для программирования предлагается среда PINGUINO. На сайте производителя olimex.com доступны схемы и описания плат. Сами платы есть в Терраэлектронике по цене, примерно 2000 рублей.
PINGUINO-PIC32 Фото с Olimex.com




суббота, 20 августа 2011 г.

GSM-модем TE-WISMO228


Уже достаточно давно зрело желание попробовать GSM-модем. При этом ни на службе, ни где-нибудь еще, возможность повозиться с такой штукой не выпадала. Одно время смотрел на микросборки GSM, но в виду отсутствия опыта работы, взять их не решился. В частности присматривался к такой модели, как WISMO228. В процессе сбора информации появился вариант в виде готового модуля TE-WISMO228, от конторы «Терраэлектроника». Обрадовало, что за весьма скромную стоимость можно получить готовый GSM-модем, а в дальнейшем попробовать собрать такую штуку самому. Заказанный модуль пришел всего через неделю после оплаты.  Отличная упаковка порадовала, удивила большая коробка, явно не соответствующая размерам модуля. В комплекте оказалась плата модема, съемная антенна, кабель последовательного интерфейса и отдельная розетка для телефонной трубки. Напечатанное на цветном принтере Руководство по эксплуатации следовало бы назвать «Общие сведения» - информации в нем крайне мало, только общие характеристики и описание конструкции. В принципе ничего страшного, все равно придется изучать даташит на WISMO.
Модуль TE-WISMO228 изготовлен на печатной плате размерами 80х50мм. Кроме самой GSM-микросборки, на плате установлены разъем последовательного интерфейса с микросхемой преобразователя уровней, разъем интерфейса WISMO228, разъемы питания и антенны, держатель SIM-карт, звуковой излучатель, светодиоды работы и две кнопки – сброса и включения. Также на плате предусмотрены посадочные места для преобразователя USB и розетки телефонной трубки.
TE-WISMO228
GSM-микросборка оказалась выполнена в весьма удобном, для пайки, корпусе, что позволяет в будущем использовать ее для других разработок. Напряжение питания микросборки от 3.2 до 4.8 вольт. При этом плата модуля питается от напряжения +5 вольт, либо от батарей.
Модуль TE-WISMO228
Общее впечатление от модуля весьма высокое. Единственный минус, обнаруженный на данный момент – примитивное руководство пользователя, не позволяющее произвести проверку работоспособности модуля без дополнительной литературы. 

вторник, 16 августа 2011 г.

Покупка радиодеталей.


Давно прошли времена, когда покупка радиодеталей напоминала детективную историю. Когда найти какую-либо микросхему, было сродни подвигу. Сегодня элементы предлагает множество фирм. При этом даже человеку, живущему в глубинке, доступен весь ассортимент, благодаря сети Интернет. Личный опыт приобретения деталей в нескольких подобных магазинах описан ниже.

ЧИП и ДИП. http://www.chipdip.ru/ Исторически сложилось, что ЧИП и ДИП – первая сеть магазинов, в которой приобретались детали в розницу и через Интернет. К сожалению, частые поездки в Москву и Санкт-Петербург невозможны, поэтому заказы делаются в основном через сеть. Первый такой заказ был более 5 лет назад и вызвал негативное впечатление от работы менеджеров, в отличие от розничной сети. Поэтому долгое время в ЧИП и ДИП ничего не заказывалось. Последние два года ситуация поменялась и данный магазин стал достаточно привлекательным. В первую очередь этому способствовало наличие доставки почтой России, что снижало стоимость заказа, во вторую – большое количество вариантов оплаты, в том числе и через электронные платежные системы. Недостатком данного магазина можно считать только относительно высокие цены.

МЕГАЧИП. http://megachip.ru/ Данный магазин стал одной из альтернатив ЧИП и ДИП. Пара заказов из него дошла нормально. Больше ничего сказать не могу.

Терраэлектроника. http://www.terraelectronica.ru/ Последний Интернет-поставщик, с которым пришлось работать. Самое главное достоинство – богатый ассортимент средств разработки. Еще один плюс – относительно низкие цены. Из минусов магазина можно назвать только высокую стоимость доставки, так как отгрузка производится только транспортной компанией, хотя для крупных городов эта стоимость будет много ниже. Об этом факте сообщила девушка – менеджер, буквально через пару часов после оформления заказа. При этом предложила несколько вариантов для удешевления цены доставки. Еще один небольшой минус – оплата только через Сбербанк. Посылка доехала всего за 7 дней, после совершения заказа.

Промэлектроника. http://promelec.ru/. Магазин, географически расположенный в Екатеринбурге. На некоторое время стал отличной заменой ЧИП и ДИП. Достоинства – большой ассортимент и низкие цены. Очень удобна программа для заказа, представляющая собой обновляемую базу данных элементов, имеющихся в наличии, часто с характеристиками. Недостатки – ориентированность на крупных покупателей. Минимальная стоимость заказа составляет 1500 рублей. Оплата через банк.

Десси. http://dessy.ru Данный магазин, одно время был основным для заказов. К сожалению, сроки исполнения  оставляли желать лучшего. Возможно сейчас ситуация изменилась.

Тритон. http://trt.ru/ Заказывал один раз модули от Microchip. Отправили почтой, с оплатой через Сбербанк. Проблем не было.

Farnell. http://farnell.com/ Единственный зарубежный магазин, где заказывались радиодетали. Большой выбор компонентов и средств разработки. К сожалению, часть деталей для отправки в Россию не доступна, особенно находящихся в США, но об этом сразу предупреждают. Отличный сервис. После регистрации позвонил менеджер из Англии и на русском языке уточнил параметры заказа. Оплата по карте VISA. Стоимость доставки в Россию фиксирована в размере 20 евро. Срок прихода посылки составил порядка двух недель. В принципе отличный вариант для заказов. Единственное, что следует смотреть и сравнивать цены. В отечественных магазинах, например в той же Терраэлектронике, часто встречаются более дешевые детали.


среда, 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. Реализация этой шины в проекте, позволит подключать дополнительные устройства, например датчики температуры или расширители портов. Также возможно использование специализированных микросхем радиоприемников или обработки аудиосигналов. Так как дисплейный шилд в любом проекте будет самым верхним устройством, он не требует установки дублирующих разъемов. Все свободные линии планируется вывести на отдельный штыревой разъем. 

понедельник, 16 мая 2011 г.

Термометр на 8-ми выводном микроконтроллере.


Идея сделать термометр на микроконтроллере без динамической индикации зрела давно. Хотелось использовать очень маломощный процессор и создать компактное устройство. Для индикации в таком случае очень удобно было использовать регистры сдвига. Результатом стал двухточечный термометр на PIC12F629. Еще одной особенностью данной конструкции является широкое использование элементов поверхностного монтажа. Это позволило выполнить весь термометр на печатной плате размерами 30х64мм.
Термометр на PIC12F629 
Так как данная разработка первая, выполненная с использованием поверхностных элементов, было изготовлено два прототипа, на которых отрабатывалась конструкция и устранялись ошибки. В дальнейшем эти платы подверглись демонтажу, а элементы использованы в последнем варианте.
В качестве датчиков применены широко распространенные DS18B20. Первый же вариант конструкции показал склонность датчиков к саморазогреву, поэтому в дальнейшем их питание было выполнено от одного из выходов микроконтроллера, включаемого на время измерения.
Программа МК отрабатывалась с использованием отладочной платы EasyPIC5. Для этого PIC12F629 был установлен на EasyPIC5, и соединен перемычками с пустой панелькой на плате термометра. В качестве языка программирования выбран MicroPascal.
Одна из особенностей термометра получена благодаря сдвиговым регистрам. Последовательный сдвиг информации приводит к отображению на дисплее изменяющейся «абракадабры», из которой вдруг появляются цифры, отображающие температуру.
Файлы проекта можно скачать на сайте "Микроконтроллеры". 


понедельник, 9 мая 2011 г.

Arduino – клоны наступают.


Одним из признаков популярности в любой области, является появление двойников. Такая ситуация произошла и с платформой Arduino. Правда, следует отметить, что немаловажную роль в этом сыграла ориентация на бесплатное программное обеспечение. Устройств, в той или иной степени, реализующих идеологию Arduino хватало и раньше, есть они и сейчас.
Сегодня существует три основных вида плат Arduino: Uno, Mega, Nano. Существуют и другие варианты, но они менее распространены. Наиболее массовым можно считать вариант Uno и его предшественника Duemilanove. Эти платы и стали наиболее копируемыми во всем семействе. При этом копии могут серьезно отличаться от базового варианта.
Главным достоинством Arduino является очень простой язык программирования, не требующий серьезного знания аппаратной базы микроконтроллеров и очень простая плата. Многие любители изготавливают эту плату самостоятельно, даже не смотря на то, что стоимость ее очень низка. Единая среда программирования позволяет реализовывать все необходимые функции на любой плате. Именно она является связующим звеном для всех вариантов устройства. Отличия начинаются при попытке загрузки программы в Arduino. В фирменных вариантах для этого используется порт USB и установленный на плате переходник USB-COM. Этот переходник представляет собой микросхемы в корпусе для планарного монтажа, что делает весьма сложным его установку в любительских условиях. Поэтому многие самодельные, а иногда и промышленные варианты используют для загрузки COM-порт.
Второй причиной, породившей множество клонов, стала регистрация товарного знака Arduino. В итоге все остальные производители могут выпускать подобные платы, но под другими именами. Так появились Freeduino, Carduino и много чего еще. Не стесняются использовать фирменное название только китайцы, во множестве плодящие разнообразные подделки.
Отдельным особняком стоят клоны Arduino, реализованные на других процессорах. Такие платы не используют микроконтроллеры Atmel, а работают с элементами других производителей. При этом аппаратная часть практически полностью копирует Arduino. Например, проект Amicus18, реализован на PIC18F25K20. Разработчики несколько отошли от стандартов Arduino, с целью полной реализации возможностей микропроцессора. Программируется Amicus18 на языке ProtonBASIC. Еще один вариант на PIC называется Chipino. В нем полностью отсутствуют элементы, отвечающие за загрузку. Предлагается выполнять ее с помощью программатора PICKit2. Программирование Chipino выполняется в стандартной среде MPLAB, или любой другой, предназначенной для МК Microchip.
Отдельно стоящим, уникальным вариантом является платформа Netduino. Взяв у Arduino, принципы построения аппаратной части, она использует для программирования возможности среды .NET от Microsoft. Естественно, что микроконтроллер используется совсем другой, а именно 32 разрядный ARM от ATMEL.
Несмотря на старания других производителей, реальной альтернативы Arduino пока не создано. Большая популярность и простота, низкая стоимость плат и обилие программ, сделали его практически неуязвимым перед конкурентами, во всяком случае, в ближайшее время.

воскресенье, 1 мая 2011 г.

Amicus18 - аналог Arduino на контроллере PIC18

Одной из самых популярных платформ для разработки электронных устройств является Arduino. Но данная платформа ориентирована в первую очередь на использование микроконтроллеров Atmel. Фанатам других производителей оставалось довольствоваться изучением Arduino. Но, тем не менее, имеются аналоги, использующие контроллеры других производителей. Одной из таких платформ стала Amicus18, построенная на базе процессора PIC18F25K20 от Microchip.
Отладочная плата Amicus18 
Производитель -   английская фирма Crownhill Associates.Сайт проекта - http://www.myamicus.co.uk/
Amicus18 копирует основные решения Arduino. Точно такая же по размерам плата и расположение разъемов позволяют использовать одни и те же  шилды. При этом, благодаря использованию другого процессора, Amicus18 имеет большее количество линий ввода вывода.
Основное отличие заключается в среде программирования. Amicus18 использует собственную IDE и язык программирования ProtonBASIC. Данный язык прост в изучении, но сильно отличается от современных языков высокого уровня. IDE распространяется бесплатно, компилятор может быть интегрирован в MPLAB и имеет оптимизатор кода.
Достоинством платформы Amicus18 можно считать поддержку программатора PICKit2, выпускавшегося Microchip. Фактически это позволяет создавать готовые устройства любого конструктива, предварительно отработав их на отладочной плате.
К сожалению, производитель Amicus18 выпускает только один вариант платформы, по возможностям примерно соответствующий Arduino Uno. Также количество шилдов для Amicus18 пока не велико.
Хочется надеяться, что данная платформа постепенно наберет популярность сравнимую с Arduino.

четверг, 28 апреля 2011 г.

32-битная "халява".


Многие фирмы сегодня рассылают бесплатные ознакомительные образцы своей продукции. Не остались в стороне и производители электроники. Продвигая свои новые разработки, они готовы делиться весьма серьезными вещами. Первой такой фирмой стала STMicroelectronics, рассылавшая плату STM32 Discovery. Делалось это под "соусом" конкурса разработчиков микроконтроллерных систем. Второй фирмой стала NXP. Изначально она также устраивала конкурс на лучший видеоролик уничтожения процессора от любого производителя. Но затем стала предлагать свой набор LPCXpresso без каких-либо условий.

После заказа LPCExpresso прошло порядка месяца. STM32 прислали через две недели. Сегодня с почты принесли два пакета от NXP. В первом лежала сама плата LPCXpresso, во втором только один микропроцессор LPC1102 в упаковке. Немного огорчили размеры последнего, так как поставить его для изучения в какое-либо устройство не представляется возможным - "домашних" технологий не хватит. Остается только использовать в качестве демонстрационного образца, маленького 32-разрядного микропроцесс
В принципе правильность такого шага – как рассылка бесплатных отладочных средств, пусть и самых простых и дешевых не вызывает сомнения. Возможность изучить продукцию и попробовать что-то создать самому является великолепным ходом поддержки будущих продаж. Лично я врядли бы в ближайшее время решился поробовать ARM-контроллеры, не будь подобных акций. Да и после получения удовольствия от разбирательства с STM32 Discovery, возникли мысли – а не забросить ли 8-ми битные системы. Сейчас буду пробовать LPC, а дальше посмотрим.

воскресенье, 10 апреля 2011 г.

Утро вечера мудрее или первый проект на ARM.

Проснуышись утром, почувствовал, что вчерашние впечатления от Atollic не совсем верны. За ночь мозг отдохнул и многие вещи встали на свои места.
Первое, о чем пришло осознание - в шаблонах проекта много лишней информации. Куча различных опрделителей позволяют использовать единый шаблон для разных устройств. Но в целом он вызывает отрицательное впечатление от сложной структуры. Убрал все лишнее и проблем не возникло.
Atollic TrueSTUDIO

Второе озарение связано с отладчиком. несколько неправильно к нему подходил, поэтому реальной работы не увидел. На самом деле все функционирует и процесс даже понравился.
Единственно что напрягает - постоянно выскакивающее окно, требующее обновить программу.
Окно отладчика
Следующим этапом стало создание первого проекта для ARM - микроконтроллера. Изучив исходные коды приложенных демонстрационных программ, написал свою, мигющую встроенными светодиодами. Использовал специальную библиотеку для STM32Discovery, поэтому пока напрямую к процессору не обращался. Задержка тоже реализована простым циклом. Дальше буду разбираться как все это сделать в командах процессора. Тем не менее плата STM32Discovery заработала и начала перемигиваться зеленым и синим светодидами.

Код первой программы для STM32Discovery:


#include <stddef.h>
#include "stm32f10x.h"
#include "STM32vldiscovery.h"
 static __IO uint32_t TimingDelay;
void Delay(uint32_t nTime);
int main(void)
{
STM32vldiscovery_LEDInit(LED3);
STM32vldiscovery_LEDInit(LED4);
STM32vldiscovery_PBInit(BUTTON_USER, BUTTON_MODE_GPIO);
STM32vldiscovery_LEDOff(LED3);
STM32vldiscovery_LEDOff(LED4);
while (1)
{
STM32vldiscovery_LEDOn(LED3);
STM32vldiscovery_LEDOff(LED4);
Delay(500000);
STM32vldiscovery_LEDOff(LED3);
STM32vldiscovery_LEDOn(LED4);
Delay(500000);
}
}
void Delay(uint32_t nTime)
{
TimingDelay = nTime;
while(TimingDelay != 0)
{
TimingDelay--;
}
}

суббота, 9 апреля 2011 г.

Первый запуск ARM проекта

Наконец-то решился запустить плату STM32 Discovery с ARM микроконтроллером. Под запуском понимается прошивка нового проекта. До этого плату только подключал кабелем к USB. В качестве среды разработки выбрал Atollic TrueStudio. Скачав ограниченную версию, установил на компьютер. Дальше пошли проблемы.
Без прочтения документации разобраться с ПО практически невозможно, во всяком случае новичку. Потыкавшись в кнопки Atollic, начал читать доки от STMicroelectronics. Самым первым стал файл UM0987 Developing your STM32VLDISCOVERY application using the Atollic TrueSTUDIO® software. В нем показано как настроить и запустить первый проект. Выполнив все действия, в итоге получил работающую программу. Решиться на создание собственного проекта, пока не смог. Испугала сложность структуры проекта, большое количество разнообразных файлов. Да и с языком С не очень пока дружу. Вполне возможно, что через какое-то время все эти "дебри" не будут представлять особой сложности. Кстати примерно так и было, когда начинал изучать 8-ми битные МК.
Сейчас пока есть желание попробовать другие среды разработки для ARM микроконтроллеров. Atollic  не понравился. Пусть у IAR или Keil есть ограничения на размер кода, думаю, для начала этого хватит. Да и поддерживают они не только STM32.

вторник, 29 марта 2011 г.

Про MPLAB

Микроконтроллеры MICROCHIP пользуются заслуженной популярностью. Высоконадежные и простые в освоении они отлично подходят для решения разнообразных задач. Программирование этих микросхем осуществляется в программе MPLAB. В отличие от контроллеров среда не всегда стабильно работает. Проблемы (во всяком случае у меня) начались с выхода версии 8. Заключались оин в невозможности установки и каких-то глюках при запуске. Изучение форумов ни к чему не привело. В основном там указывалось на непонимание MPLABом русского языка в названиях папок и файлов, а также в имени пользователя. Предложенные решения ни к чему хорошему не приводили. Версия 8.63 не захотела запускаться ни на одном из 4 компьютеров с разными сборками Windows.
Еще одной проблемой стало отсутствие на официальном сайте предыдущих стабильных версий, как это делается для многих программ. Либо последняя, либо ничего. Единственное что дополнительно предлагает MICROCHIP - новая версия MPLABX, выполненная на базе IDE NetBeans. Пока опять же сырая бета-версия.
К моему удовольствию разработчики от MICROCHIP все таки соизволили сделать стабильно запускающуюся версию. Скачанная вчера 8.66 номально и без ошибок встала и запустилась. Это радует.

пятница, 11 марта 2011 г.

Российские ARM микроконтроллеры


Случайно наткнулся на новость, которая реально обрадовала. Российская компания ЗАО "ПКК Миландр" из города Зеленоград, объявила о завершении проектных работ над ARM микроконтроллером. Это, похоже, первый отечественный 32-разрядный микроконтроллер. Общее название проекта 1986ВЕ9х. По своей структуре это будет 32-разрядный микроконтроллер на базе процессорного ядра ARM Cortex-M3. Ближайшим аналогом процессора называют STM32F103x.
Радует, что не вся наша электронная промышленность полностью загнулась. Хочется верить, что данные изделия будут востребованы и станут первыми моделями в линейке отечественных микросхем.
Выпуск первых образцов назначен на март 2011 года. Официальный сайт компании http://milandr.ru/

пятница, 25 февраля 2011 г.

Плата STM32 Discovery

Не так давно две иностранные фирмы - EBV Elektronik и STMicroelectronics начали конкурс проектов с использованием 32-х разрядных микроконтроллеров STM32. Самым интересным условием этого конкурса, стала возможность получить плату с установленным процессором и отладчиком ST-Link. Плата рассылается бесплатно. Главным призом конкурса является мотоцикл Harley Davidson.

С момента заказа, до получения посылки на почте прошло чуть менее трех недель. Кроме платы и двух рекламных листов в посылке ничего не было. Плата была упакована в прозрачный блистер. На плате установлен ARM-микроконтроллер STM32F100. К нему подключены две кнопки и два светодиода. Кварцевый резонатор имеет частоту 8 МГц. Рядом установлен еще один часовой резонатор. Все выводы контролера подключены к штыревым разъемам. Также на плате дополнительно стоит еще один контроллер STM32F103, выполняющий функции отладчика.Есть возможность использовать его для работы с внешними устройствами.
 Соединение с компьютером выполняется через интерфейс miniUSB. Через него выполняется и питание устройства. Для этого на плате установлен преобразователь напряжения L1117, позволяющий получить необходимые 3.3 В.
 В целом плата оставила неплохие впечатления. Теперь требуется разобраться с тем, как ее запрограммировать и самое главное чем.

суббота, 19 февраля 2011 г.

Подключение ЖК-дисплея к Arduino


После мигания светодиодом захотелось получить от Arduino что-то более существенное. Выбор пал на ЖК-дисплей. В комплекте ArduinoIDE22 существует библиотека LiquidCrystal, предназначенная для упрощения организации обмена информацией с подобными устройствами.

В качестве дисплея использован двухстрочный индикатор WH1602B-AEI от фирмы Winstar. Данная модель имеет маленькую особенность, отличающую ее от предыдущих вариантов – для управления контрастностью требуется минусовой вывод регулятора подключать не к минусу питания, а к выводу Vee индикатора. Если этого не сделать на экране ничего отображаться не будет. Именно по этой причине данный индикатор не стал работать совместно с устройством EasyPIC5, где все необходимые элементы уже разведены на плате.

Для пробного запуска был выбран стандартный пример из имеющихся в ArduinoIDE. Схема собрана с помощью перемычек по описанию, имеющемуся в тексте скетча. После компиляции и загрузки индикатор засветился желтым цветом и начал выполнять  положенную задачу.
Единственной проблемой стало отображение русских букв. В знакогенераторе WH1602B имеется дополнительная таблица изображений символов, отличающихся от латинских. Соответственно не все русские буквы выделены отдельно и требуется дополнительный перевод строки в коды дисплея.

суббота, 12 февраля 2011 г.

Arduino UNO

Данная плата был приобретена в Великобритании в интенет-магазине компании Farnell.
Arduino UNO был упакован в небольшую картонную коробку. Кроме самой платы в ней находилась длинная лента «паспорта» и лист с 6 наклейками.

Само  Arduino UNO произвело не лучшее впечатление. Огорчили плохо обработанные края печатной платы устройства и текстолитовая пыль. Также хотелось бы видеть разноцветные светодиоды. На полученной плате только индикатор питания светился зеленым цветом. Все остальные светодиоды – оранжевые.

Описаний Arduino UNO  в сети имеется достаточно много. Основное отличие от предыдущих версий – преобразователь USB-COM выполнен на микроконтроллере ATMEGA8U2. При первом включении потребовалась установка новых драйверов. Найти драйвер можно в комплекте поставки ARDUINO IDE версии 22. В процессе установки операционная система предупредила, что этот драйвер не тестировался на совместимость с XP. В остальном проблем не возникло.
Запуск ARDUINO IDE и заливка первого скетча прошли без проблем, плата заработала.

понедельник, 7 февраля 2011 г.

Микроконтроллеры.

Первый раз о том что такое микроконтроллеры, я узнал пятнадцать лет назад, учась в институте. В журнале "Радио" тогда начали публиковаться первые проекты с использованием этой техники. В те дни доступность микроконтроллеров была весьма ограничена, особенно для бедного студента. Настоящее знакомстов состоялось только через 7 лет. Тогда в интернете был куплен первый программатор и микросхема PIC16F84.
Сейчас очень активно занимаюсь изучением и реализацией микроконтроллерных проектов на уровне хобби. Есть несколько серъезных проектов, но в основном все делаю для себя. Приглашаю всех к обсуждению данной интересной темы.