вторник, 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