Рейтинг
17.13
голосов: 14

О блоге

О контроллерах msp430 компании Texas Instrumentals

Администраторы (1)

Модераторы (0)

Модераторов здесь не замечено

Читатели (78)

_YS_ SerjT Tabke Ultrin Vga mzw Reverb dievgen neiver CrazyCrazer anwi bdpcvit Anatol SShiva geovas Lifelover fehtr akl madmazy mvb

Все читатели блога

Дуплексный UART на таймере Timer_A

Привет всем поклонникам MSP430!

Заметил в этом блоге статью по реализации UART'а на таймере Timer_A и решил поделиться своим опытом. Я работаю с MSP430 уже довольно давно и знаю «из первых рук», что отсутствие аппаратного UART'а в серии Value Line этого семейства значительно усложняет работу с этим чипом, особенно для новичков. Так что тема действительно актуальная, даже для более продвинутых чипов семейства MSP430, поскольку лишнего UART'a, как мы знаем, не бывает, а Timer_A есть всегда.


Читать дальше
  • +6
  • 29 января 2012, 23:49
  • geko
  • 1

Точный частотомер на MSP-EXP430G2 с выводом значений в UART



Спасибо TI за наше счастливое детство! Точнее, за LaunchPad Rev1.5. Наконец-то в наборе появился контроллер MSP430G2553 с HW-UART, а не тупые огрызки, как раньше.

Понадобилось тут частотомер на скорую руку сваять. Беглый поиск по яндексу дает отсылки на atmega/pic-частотомеры. Да еще со всякими заморочками, типа точного вычисления промежутков, да с индикацией, да со всякими счетчиками-делителями частоты.

Чего городить огород, если достаточно дать сигнал на счетный вход MSP430, и он сам все посчитает. А мы посмотрим, что он там насчитал за 1 секунду :)



Читать дальше
  • 0
  • 24 января 2012, 14:07
  • hexus
  • 1

Нестандартное использование UART в качестве генератора частоты

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

1. Пьезоэлектрическая сущность новой качалки выливается в очень узкую полосу рабочих частот. Буквально 150-200Гц вправо-влево и качалка превращается в бестолковую шипелку и даже в стакане воды на глубине 2-3 см не может выдавить пузырик.
2. Рабочая частота 25,4кГц. С учетом п.1 получаем полосу в районе 25250-25600Гц.

Вроде бы, «как два пальца об асфальт». Заряжаем таймер, вешаем на хардварный выход одной из защелок нашу пищалку качалку (через повышающий драйвер, естественно, и с дифференциальным выходом), загоняем в CCR0 период, в CCR нужной защелки — полпериода, — профит!
Однако, не все так просто.


Читать дальше

MSP430G2553 (QFN32) + LaunchPad = АЦП -> ШИМ

Появились-таки контроллеры у TI в Value Line с UARTом (G2xx3), я сгонял на кафедру попросил и через 2 недели пришли мне самые толстые

Читать дальше

MSP430. Начало. MSP-FET через LPT порт

Вообще, есть такой мегабонус как LaunchPad с его Spy-Bi-Wire (собственно теперь им и пользуюсь, т.к. комп с lpt пожелал долго жить) и поддерживают его не все контроллеры, но вот такую штуку должны поддерживать все MSP430.

Читать дальше
  • +1
  • 23 декабря 2011, 21:27
  • X-Antr
  • 1

MSP430. Демо-программа для MSP-EXP430G2 LaunchPad с исходниками

Навеяно сначала обзором часов ez430-chronos, а потом заказом демо-платки от TI (доехало за 4 дня из Техаса!).

Собственно, демо-плата поставляется с 2 микроконтроллерами, один из которых прошит демо-программой (о ней и идет речь ниже). В дальнейшем разработчик пускается в свободное плавание — «Идите на вики и ищите как хотите». Есть, конечно, учебный курс по msp430, но на английском языке, и находится вроде не совсем тривиально :)

Ну IDE мы, предположим, поставили: для Windows7 x64 рекомендую сначала поставить vc2005 и vc2008 redistributable из комплекта IDE, ибо автоматом он их не подхватывает и ругается, что IAR, что CCS. Вообще, ставил CCS4 и CCS5. Сразу виден значительный шаг вперед — если IAR вызывает сдвиг крыши при первом знакомстве, то CCS4 выглядит просто недоработанным. CCS5 поставил все на свое место (ну почти все — в любом случае в тонкости надо везде вдаваться). Может он и не шустрый у кого-то, но мне 4 ядер и 8гб оперативки хватает за глаза.

Что первым делом приходит в голову? — «А давайте напишем свою программу! И зашьем ее!».

После курения исходников это ограничивается обычно либо пустой программой, либо дерганием ножки.

И внезапно оказывается, что теперь МК чист, и надо двигаться дальше :) А раньше он так красиво мигал…

В общем, TempDemo для MSP (одна из лабораторных работ для LaunchPad):
1. Призывно мигает диодиками.
2. Жмем кнопку P1.3 — температура начинает считываться, первый результат после нажатия запоминается как эталонный (в ком-порт сбрасывается значение 248 для индикации нажатия).
3. Текущее значение температуры выдается в сэмулированный UART 2400/8/N/1.
4. Если температура больше порогового значения — начинает мигать красный диод, если меньше — зеленый.

Для этой демки TI прилагает PC-программу на яве, некрасивую и беспонтовую :) На которую были нарекания «я нажимаю, и ничего не происходит». Собственно, когда не происходит ничего — это значит, что программа ничего и не приняла. И дело может быть как в подключении к компьютеру (у меня через хаб на мониторе и клавиатуре глючила несчадно — плата шьется, а данные не могу переслать в 9/10 случаев), так и может в корявости самой программы. Поэтому будет наглядная программка на BC с исходниками.



Собственно, причесал лабу (были косяки), температуру эмпирически подогнал под вывод в градусах цельсия (отрицательные значения не понимает), написал гуевую программу под windows на C++ Builder 6 (вполне работает под win7 x64) — которая хоть что-то дельное выводит.

TempDemo C++ Builder 6"  alt="TempDemo C++ Builder 6

Пользуйтесь — выкладываю с исходниками. Может и сыровато, но работает.

depositfiles.com/files/z987b7izk
  • +1
  • 08 декабря 2011, 16:28
  • hexus
  • 1

Touch-candle

Все началось с того, что примерно полгода назад я по ошибке заказал три штуки MSP430G2121. В этих МК мало памяти и нет почти ничего. Присутствуют только один таймер и USI — полуфабрикат, из которого не сделать даже UART. И потому я долго думал, куда бы их применить. По зрелом размышлении мне показалось, что лучше всего будет произвести что-нибудь сувенирного толка; и в конце концов я сделал электронную свечу, управляемую касанием.

*Топик обновлен*

Вот она какая, свеча XXI века:





Читать дальше
  • +4
  • 06 ноября 2011, 17:40
  • _YS_
  • 1

Софтовый i2c и общение с датчиком DS1624

Возник на горизонте один проект, в котором было решено использовать новые контроллеры с продвинутым Сигма-дельта АЦП 24бит (!) MSP430AFE253. У контроллера встроенно три(!) независимых сигма-дельта АЦП, и это чудо в компеле стоит около 2$.
Заказал у TI some Free samples и попросил заказчика купить небольшую партию для установочного производства… Срок поставки 3 недели. Решил пока поэксперементировать с недавно пришедшими по FedEx в наши *ня двумя новыми MSP430G2452, которые дружат с Launchpad после обновления прошивки. На них и отработаю soft i2c.
Проблема у 253 следующая: там нет аппаратного модуля i2c. Но этот кристалл также должен управлять цифровыми потенциометрами по этому протоколу. Сначала я пригорюнился, но потом храбро решил реализовать i2c программно. В режиме мастера это не так сложно…


Читать дальше

Grace спешит на помощь

Когда я только начинал работать с замечательными контроллерами msp430 мой мозг готов был взорваться от сложности инициализации клоков и прочей перефирии. Большое количество тактирующих сигналов очень полезно для энергосбережения, но отпугивает от этих замечательных и дешевых кристаллов.
Семплы шлют бесплатно, доходит по федексу до Уфы за 4(!) дня. После появления дешевой серии G2 в user-friendly корпусах и отличного отладочного набора за 4.30$ проекты на msp430 должны сыпатся как пирожки. Они и сыпятся, но в основном, за рубежом. Им проще понять даташит, где описана инициализация периферии :)
Но суровые техасцы решили не сдаваться. И запилили утилиту настройки Grace для народной серии G2.
Хочу рассказать об этой штуке.

Читать дальше

MSP430GXXXX timerA UART v1.1

В процессе использования своего софтового UART'a для MSP430 я обнаружил в нем баг — огромное время переключения с приема на передачу. Это было вызвано непродуманной инициализацией регистра совпадения таймера в функции UART_SetTxMode(). В версии 1.1 это поправлено.

Кроме того, добавлена функция UART_DefaultTimerConfig(), выполняющая настройку тактирования таймера для его использования с UART'ом. Внимание — параметры конденсатора кварца выставляются для того экземпляра, который идет с LaunchPad'ом.

В аттаче лежит демонстрационный проект для IAR.
  • +2
  • 24 июля 2011, 17:16
  • _YS_
  • 1