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

Спасибо TI за наше счастливое детство! Точнее, за LaunchPad Rev1.5. Наконец-то в наборе появился контроллер MSP430G2553 с HW-UART, а не тупые огрызки, как раньше.
Понадобилось тут частотомер на скорую руку сваять. Беглый поиск по яндексу дает отсылки на atmega/pic-частотомеры. Да еще со всякими заморочками, типа точного вычисления промежутков, да с индикацией, да со всякими счетчиками-делителями частоты.
Чего городить огород, если достаточно дать сигнал на счетный вход MSP430, и он сам все посчитает. А мы посмотрим, что он там насчитал за 1 секунду :)
Читать дальше
Нестандартное использование UART в качестве генератора частоты
Недавно понадобилось подключить к устройству на MSP430 ультразвуковую микропомпу вместо привычной электромагнитной.
В общем-то, ничего особенного, нужно выдавать пачки меандра заданной частоты и в зависимости от требуемой интенсивности прокачки менять соотношение длительности пачек и пауз между ними. Если бы не пара нюансов.
1. Пьезоэлектрическая сущность новой качалки выливается в очень узкую полосу рабочих частот. Буквально 150-200Гц вправо-влево и качалка превращается в бестолковую шипелку и даже в стакане воды на глубине 2-3 см не может выдавить пузырик.
2. Рабочая частота 25,4кГц. С учетом п.1 получаем полосу в районе 25250-25600Гц.
Вроде бы, «как два пальца об асфальт». Заряжаем таймер, вешаем на хардварный выход одной из защелок нашупищалку качалку (через повышающий драйвер, естественно, и с дифференциальным выходом), загоняем в CCR0 период, в CCR нужной защелки — полпериода, — профит!
Однако, не все так просто.
Читать дальше
В общем-то, ничего особенного, нужно выдавать пачки меандра заданной частоты и в зависимости от требуемой интенсивности прокачки менять соотношение длительности пачек и пауз между ними. Если бы не пара нюансов.
1. Пьезоэлектрическая сущность новой качалки выливается в очень узкую полосу рабочих частот. Буквально 150-200Гц вправо-влево и качалка превращается в бестолковую шипелку и даже в стакане воды на глубине 2-3 см не может выдавить пузырик.
2. Рабочая частота 25,4кГц. С учетом п.1 получаем полосу в районе 25250-25600Гц.
Вроде бы, «как два пальца об асфальт». Заряжаем таймер, вешаем на хардварный выход одной из защелок нашу
Однако, не все так просто.
Читать дальше
MSP430G2553 (QFN32) + LaunchPad = АЦП -> ШИМ
Появились-таки контроллеры у TI в Value Line с UARTом (G2xx3), я сгонял на кафедру попросил и через 2 недели пришли мне самые толстые
Читать дальше
Читать дальше
MSP430. Начало. MSP-FET через LPT порт
Вообще, есть такой мегабонус как LaunchPad с его Spy-Bi-Wire (собственно теперь им и пользуюсь, т.к. комп с lpt пожелал долго жить) и поддерживают его не все контроллеры, но вот такую штуку должны поддерживать все MSP430.
Читать дальше
Читать дальше
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) — которая хоть что-то дельное выводит.

Пользуйтесь — выкладываю с исходниками. Может и сыровато, но работает.
depositfiles.com/files/z987b7izk
Собственно, демо-плата поставляется с 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) — которая хоть что-то дельное выводит.

Пользуйтесь — выкладываю с исходниками. Может и сыровато, но работает.
depositfiles.com/files/z987b7izk
Touch-candle
Все началось с того, что примерно полгода назад я по ошибке заказал три штуки MSP430G2121. В этих МК мало памяти и нет почти ничего. Присутствуют только один таймер и USI — полуфабрикат, из которого не сделать даже UART. И потому я долго думал, куда бы их применить. По зрелом размышлении мне показалось, что лучше всего будет произвести что-нибудь сувенирного толка; и в конце концов я сделал электронную свечу, управляемую касанием.
*Топик обновлен*
Вот она какая, свеча XXI века:

Читать дальше
*Топик обновлен*
Вот она какая, свеча XXI века:

Читать дальше
Софтовый i2c и общение с датчиком DS1624
Возник на горизонте один проект, в котором было решено использовать новые контроллеры с продвинутым Сигма-дельта АЦП 24бит (!) MSP430AFE253. У контроллера встроенно три(!) независимых сигма-дельта АЦП, и это чудо в компеле стоит около 2$.
Заказал у TI some Free samples и попросил заказчика купить небольшую партию для установочного производства… Срок поставки 3 недели. Решил пока поэксперементировать с недавно пришедшими по FedEx в наши *ня двумя новыми MSP430G2452, которые дружат с Launchpad после обновления прошивки. На них и отработаю soft i2c.
Проблема у 253 следующая: там нет аппаратного модуля i2c. Но этот кристалл также должен управлять цифровыми потенциометрами по этому протоколу. Сначала я пригорюнился, но потом храбро решил реализовать i2c программно. В режиме мастера это не так сложно…
Читать дальше
Заказал у TI some Free samples и попросил заказчика купить небольшую партию для установочного производства… Срок поставки 3 недели. Решил пока поэксперементировать с недавно пришедшими по FedEx в наши *ня двумя новыми MSP430G2452, которые дружат с Launchpad после обновления прошивки. На них и отработаю soft i2c.
Проблема у 253 следующая: там нет аппаратного модуля i2c. Но этот кристалл также должен управлять цифровыми потенциометрами по этому протоколу. Сначала я пригорюнился, но потом храбро решил реализовать i2c программно. В режиме мастера это не так сложно…
Читать дальше
- +3
- 13 сентября 2011, 10:04
- DeusExMachina
- 45
- 1
Grace спешит на помощь
Когда я только начинал работать с замечательными контроллерами msp430 мой мозг готов был взорваться от сложности инициализации клоков и прочей перефирии. Большое количество тактирующих сигналов очень полезно для энергосбережения, но отпугивает от этих замечательных и дешевых кристаллов.
Семплы шлют бесплатно, доходит по федексу до Уфы за 4(!) дня. После появления дешевой серии G2 в user-friendly корпусах и отличного отладочного набора за 4.30$ проекты на msp430 должны сыпатся как пирожки. Они и сыпятся, но в основном, за рубежом. Им проще понять даташит, где описана инициализация периферии :)
Но суровые техасцы решили не сдаваться. И запилили утилиту настройки Grace для народной серии G2.
Хочу рассказать об этой штуке.
Читать дальше
Семплы шлют бесплатно, доходит по федексу до Уфы за 4(!) дня. После появления дешевой серии G2 в user-friendly корпусах и отличного отладочного набора за 4.30$ проекты на msp430 должны сыпатся как пирожки. Они и сыпятся, но в основном, за рубежом. Им проще понять даташит, где описана инициализация периферии :)
Но суровые техасцы решили не сдаваться. И запилили утилиту настройки Grace для народной серии G2.
Хочу рассказать об этой штуке.
Читать дальше
- +1
- 28 августа 2011, 10:36
- DeusExMachina
- 22
MSP430GXXXX timerA UART v1.1
В процессе использования своего софтового UART'a для MSP430 я обнаружил в нем баг — огромное время переключения с приема на передачу. Это было вызвано непродуманной инициализацией регистра совпадения таймера в функции UART_SetTxMode(). В версии 1.1 это поправлено.
Кроме того, добавлена функция UART_DefaultTimerConfig(), выполняющая настройку тактирования таймера для его использования с UART'ом. Внимание — параметры конденсатора кварца выставляются для того экземпляра, который идет с LaunchPad'ом.
В аттаче лежит демонстрационный проект для IAR.
Кроме того, добавлена функция UART_DefaultTimerConfig(), выполняющая настройку тактирования таймера для его использования с UART'ом. Внимание — параметры конденсатора кварца выставляются для того экземпляра, который идет с LaunchPad'ом.
В аттаче лежит демонстрационный проект для IAR.