среда, 1 мая 2013 г.

msp430: адаптер для SMD чипов msp430

Довольно часто возникает задача протестировать микроконтроллер не только на плате разработчика типа launchpad, но и в поле, в виде отдельного чипа. Если этот чип с большими ножками в DIP корпусе это не является существенной проблемой. Но что делать, когда микросхема размером с пол ногтя на мизинце, а до полноценной платы со всей разводкой еще далеко?

В сети я подглядел видео, где человек как раз такую штуку изготовил.

Затем был долгий этап, у меня не было ничего, химикаты, сплавы, ламинатор (подарок), даже принтер - раньше дома я обходился без него, печатал всегда на работе, а тут решил приобрести, теперь занимает место на столе. Плюс, Почта России впала в ступор, и многое заказанное у китайцев шло очень медленно, некоторые вещи больше трех месяцев. Например, я заказал тепловую пушку в январе, она пришла только сейчас, еще даже не забрал. В местных магазинах два раза делал заказ, в основном микросхемы и химию. Паяльная станция, стеклотекстолит, мелкие электронные компоненты пришли от китайцев. Наконец все было собрано, закуплены емкости под токсичные компоненты, даже защитные очки взял (правда пока не пользовался).

Первый этап - изготовление схемы, сделал в geda pcb. Распечатал на простой глянцевой бумаге от LOMOND:

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

Прокатал, размешал хлористое железо и закинул плату вытравливаться. Тогда мне казалось, что это почти что конец. Вот, что получилось после травления:

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

На этом этапе я решил прозвенеть дорожки на предмет наличия контакта. Выяснилось, что где-то треть дорожек без контакта. Плохо. Взял в руки паяльник (почти впервые в жизни, а этот китайский впервые уж точно) и начал пытаться налить побольше свинца на слабые места. Большим открытием было то, как собственно себя ведет припой на дорожках. Но все же удалось получить контакт по всем дорожкам. Дальше в кривые дырки были впаяны ножки. Получилось весьма позорно:
Пришло время попытаться использовать мое творение. Для этого я слегка распотрошил стандартный launchpad msp430, приделал микроконтроллер к своему адаптеру с помощью прищепки, на макетной плате сделал pull up к reset линии. Запустил прошивалку и... не увидел определения микроконтроллера. Уныние меня не долго мучало, так как этот микроконтроллер банально не поддерживал spy-by-wire интерфейс. К счастью, у меня был еще более мелкий микроконтроллер, воткнул его, и о чудо - mspdebug его замечательно увидел. Прошил, светодиод замигал, ура! Вот все в собранном виде:

Разводку для этого дела я брал отсюда http://www.kerrywong.com/2012/04/02/using-msp430-launchpad-as-programmer/ и отсюда http://www.43oh.com/2011/11/tutorial-to-use-your-launchpad-as-a-programmer/ Ничего сложного.

Итого. Задуманное получилось. Но плохо. Наверно, для первого раза неплохо, ведь результат был достигнут. Но я не доволен.

Что дальше? Дальше, я хочу кроме spy-by-wire использовать BSL для прошивки тех микроконтроллеров, что я пробовал сначала. Тем более, у меня есть маленькая прошивалка отдельная специально для BSL. Затем, подбор бумаги для печати шаблона. Адаптер тоже можно сделать сильно лучше и я уже знаю как, ну и число сокетов поддерживаемых надо увеличить. Плюс, кроме msp430 серии, у меня еще один atmel завалялся. С ним бы тоже было неплохо разобраться, хотя и не горит.

вторник, 8 января 2013 г.

msp430 + mspgcc: первые шаги 02 - кнопка-выключатель

После первых опытов с выводом сигнала необходимо научиться считывать сигнал извне. Для экспериментов на плате уже есть кнопка-выключатель, доступная на 3-й ножке 1-го порта. Остается только правильно ее подключить и проанализировать состояние. Минимальный пример такого подключения и анализа приведем:

После сборки и прошивки на LaunchPad мы сможем увидеть смену состояния светодиода с нажатием на кнопку. Ура!

воскресенье, 6 января 2013 г.

msp430 + mspgcc: первые шаги 01 - мигаем светодиодом

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

Однако, на этом радость немного омрачается, так как предлагаемые средства разработки в основном либо лимитированы ограничениями бесплатной версии, либо имеют ограничения при работе в Linux (либо, совсем в Linux не работают). Однако, последняя опция в виде mspgcc всех этих ограничений лишена. Есть свои тонкости, поэтому я решил эксперименты с msp430 и mspgcc фиксировать в виде записей в блоге.

Итак, сделаем простой стандартный blink. В лоб, по простому. Делать я буду как обычно на Ubuntu и малыше Asus Eee 901. Для начала поставим парочку утилит, включая mspgcc. Может в команде указано что-то лишнее, но так на 12.10 работает, так что приведем:
sudo apt-get install mspdebug msp430-libc msp430mcu binutils-msp430 gcc-msp430 gdb-msp430

Далее, создаем файлик Makefile:
CC=msp430-gcc
CFLAGS=-Os -Wall -g -mmcu=msp430g2553

OBJS=main.o

all: $(OBJS)
 $(CC) $(CFLAGS) -o main.elf $(OBJS)

%.o: %.c
 $(CC) $(CFLAGS) -c $<

clean:
 rm -fr main.elf $(OBJS)

Далее, создаем файлик main.c:
Выполняем сборку:
$ make
msp430-gcc -Os -Wall -g -mmcu=msp430g2553 -c main.c
msp430-gcc -Os -Wall -g -mmcu=msp430g2553 -o main.elf main.o

Теперь остается только воткнуть плату в usb и прошить ее утилитой mspdebug:
sudo mspdebug rf2500 "prog main.elf"
Все, готово, оригинальная прошивка с функциями анализа температуры заменена нашей, мигающей светодиодом на плате. Счастью нет предела. Я видел более продвинутые примеры, в том числе тот самый пример для анализа температуры, так что далее будем отрабатывать и такие сценарии. Прерывания, экономия энергии и другие вещи, которые выглядят уже не так просто, но это именно то, из-за чего мне интересен этот msp430.

суббота, 26 мая 2012 г.

node.js в ubuntu

sudo apt-get install nodejs
sudo apt-get install npm
Это работает уже с 2010 года, и большинству людей вполне достаточно (ну во всяком случае тем, кто ищет по запросу "nodejs ubuntu").

вторник, 17 апреля 2012 г.

Вязаная птичка, но не Angry Birds

Невероятная и забавная птичка с веселым хохолком. Помогает мне работать :)



пятница, 27 января 2012 г.

iriver e300 - кодирование видео с mencoder

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

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

Создаем файлик convert.sh следующего содержимого:
mencoder -noodml "$1" -o "$2" -vf-add dsize=320:240:0 -vf-add scale=0:0 -srate 44100 -ovc xvid -xvidencopts bitrate=1000 -oac mp3lame -lameopts vbr=0 -lameopts br=96 -lameopts mode=0 -lameopts aq=7 -af volnorm -xvidencopts max_bframes=0 -xvidencopts nogmc -xvidencopts noqpel -mc 1
Затем меняем права на файлик:
chmod u+x convert.sh
Теперь мы можем спокойно перекодировать наше видео:
./convert.sh source/spongebob/s01e01.avi spongebob_s01e01.avi
Копируем результат в папку Video на плеере и наслаждаемся результатом:
Приобрести iriver e300 можно на ozon.ru, как это сделал я, воспользовавшись баллами от предыдущей покупки, и тем самым снизив цену до самой выгодной :)

среда, 25 января 2012 г.

Android vs MeeGo: почему я перешел на Nokia N9

Больше года я провел на Android и честно говоря думал, что никогда не захочу что-то менять. Тем более на платформу, которая прошла столько болезненный путь - MeeGo. Так почему же я сейчас пользуюсь этим телефоном? Причин тут много. Пройдусь по ним.

  1. Я убедился, что по прежнему пользуюсь телефоном как телефоном. Возможность установить все что угодно и делать что угодно ничего не изменила. Телефон остался телефоном. Правда, в последнее время ездил на метро и мне помогли игрушки на Android - позволяют выйти из реальности на время поездки.
  2. Я люблю необычные вещи. iPhone - пошло и дорого. Android - пошло и дешево. Microsoft - да ни за что! MeeGo? А вот это выглядит интересным, дайте ка посмотреть, что это там у вас получилось?
  3. Он большой, но не страшный, можно назвать это - стильный. Кажется более легким по сравнению с legend.
  4. Мне нравится Nokia. Всегда нравилось, что часы у них на экране всегда и в этом телефоне это не исключение.
  5. Разработка происходит на Qt. На работе мы тоже пользуемся Qt. Шансы написать что-то возрастают.
В общем, как-то решил я посмотреть, почем сейчас Nokia N9. Оказалось, около 18 тысяч за версию с 16Гб, дорого конечно, но в прошлый раз, когда я смотрел, было больше 20 тысяч. Оказалось, что в ozon.ru проходила акция, и цена там получалась самой низкой и доставка бесплатная. Плюс, можно заплатить банковской карточкой. Пара кликов и новый телефон отправляется ко мне. Хорошо все же иметь иногда несколько сотен зеленых в каком-нибудь банке. Через дня три аккурат после православных праздников я получил заветную коробочку.

В аппарате используется microSIM - пришлось ножницами по металлу вырезать из своей симки микросимку :)

Включил, игрался, что-то там не получилось с обновлением. Решил сбросить все настройки в ноль и снова все начать. Тут я крупно прокололся - выбрал функцию очистки аппарата перед утилизацией (не специально!). В результате на экране только стрелочка крутилась и ничего не включалось. Думал все - придется менять. Оказалось, он просто очень тщательно очищался, минут 30.

Затем все настроил и начался кайф, глупо звучит, но телефон очень приятный на ощупь. Софт необходимый есть. Все социальные сети, нет такой глубокой интеграции с google, но та, что имеется вроде достаточна. Кнопок нет, интерфейс весь на экране. Это или очевидные кнопки, или не такие очевидные движения по экрану пальцем в разных направлениях. Подкачал twitter-клиент, он как-то плохо интегрируется с галереей и ломает кодировку при попытке воспользоваться вставкой изображения в сообщение. Зато есть родной терминал, никаких хаков - вполне стандартный функционал. Расстроило, что нет такой простой возможности использовать телефон как модем, как в Android. Здесь есть доступ к нему, как к модему, но надо специально настраивать соединение. Зато так же как и в Android можно превратиться в wi-fi точку, что в основном снимает вопросы. Остальное пока что только радует. Игры есть даже более продвинутые, чем у меня были на legend, но это просто потому что аппарат посильнее, трехмерные игрушки есть. В магазине приложений с приложениями не сильно густо, но парочку игрушек я доставил. Плюс появились идейки, что бы можно было понаписать, чтобы порадовать любителей N9 да и себя. Сейчас изучаю Qt применительно к написанию приложений для N9.

Отдельно напишу про ozon.ru: для меня этот магазин дорогой, но у него есть плюсы большой организации (как и минусы), он много чего поддерживает, там проходят акции и есть системы скидок. Для меня это вылилось в покупку телефона по выгодной цене - проходила акция. Для блогеров есть партнерская программа, так что теперь я буду рекламировать товары ссылками с озон, есть рациональный смысл и там иногда прикупать товары :) Поэтому вот ссылка на товар в озоне, заходите, смотрите, выбирайте: