среда, 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.