Почему не Arduino (На примере Energia для TI MSP430)



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


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

Доступ к битам через указатель на структуру или манипулирование битами периферии в gdb

Вначале посмотрим как это делается на arm-none-eabi.

При отладке программ под arm-none-eabi, для просмотра регистров в отладчике
arm-none-eabi-gdb в тексте программы описываю структуру регистра,
объявляю указатель на структуру и присваиваю указателю адрес регистра и вуаля,
в arm-none-eabi-gdb print печатает содержимое регистра и позволяет менять
значения битов и все в человеческом виде.

На msp430 не все так радужно.



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

MSP430 макросы для работы с GPIO + бонус: режим Open Drain

Вдохновившись макросами для работы с линиями ввода-вывода для STM32 уважаемого ZiB , написал похожие для MSP430. Данный набор макросов упрощает работу с линиями ввода-вывода, позволяет писать более читаемый код, исключает некоторые ошибки (например — попытка изменения состояния порта, настроенного на вход) и в качестве бонуса — добавляет эмуляцию режима «открытый сток» (Open Drain).

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

Аналоговые мультиплексоры, ADC

Однажды понадобилось 16-ть каналов АЦП, при 8-ми имеющихся у MSP430G2553 ...

И это могло бы стать проблемой, не будь аналоговых мультиплексоров (коммутаторов, ключей)
Для примера приведена структурная схема TS5A3157 от TI

Так как он является одноканальным, то имеет всего два мультиплексируемых входа (Vnc и Vno).
Вывод Vcom — общий и всегда соединен с одним из аналоговых входов.
Вывод Vi определяет в каком состоянии будет находится «переключатель».
Мультиплексоры пропускают ток в обоих направлениях и в идеале должны вести себя как выключатель, но реальность вносит своих коррективы.

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

Не так страшен makefile

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

Итак, makefile — сценарий сборки для процедуры GNU make, являющейся неотъемлемой частью любого GCC-тулчейна.

Я мог бы цитировать главы из документации по GNU make или пересказать своими словами замечательную статью Владимира Игнатова, однако не хочу да и не вижу особого смысла, ибо все это любой заинтересованный читатель может изучить самостоятельно. Вместо этого я по пунктам разберу мой рабочий makefile, который с небольшими вариациями служит мне верой и правдой около 5 лет во многих проектах.

Поехали.


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

Простая реализация Модбас-стека на MSP430. Часть третья: улучшаем библиотеку

Продолжаю тему работы простых МК-устройств с Модбасом. В предыдущих частях я кратко описал сам Модбас, а также первый вариант библиотеки. После обсуждения с коллегами я подверг библиотеку некоторому рефакторингу, который, ИМХО, существенно улучшил читабельность и сделал процесс заимствования либы более простым. Какие-то численные параметры библиотеки существенно не изменились. Самым заметным я бы назвал реализацию парсинга в прерывании (об этом ниже)

Читать дальше
  • +5
  • 08 декабря 2013, 15:14
  • drvlas
  • 1

Простая реализация Модбас-стека на MSP430. Часть вторая: Библиотека

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

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

Простая реализация Модбас-стека на MSP430. Часть первая: Modbus (RTU)

Простая реализация Модбас-стека на MSP430. Часть первая: Modbus (RTU). Часть вторая здесь
А потом пришла третья часть — с подчищеной библиотекой.

Что бы там ни говорили о «старости» Модбаса, он является очень хорошим и заслуженно популярным протоколом в системах промышленной автоматизации. Поэтому полезно иметь возможность использовать Модбас в МК-девайсах, согласных на скромную роль Слейва. Для такого Слейва я и написал Модбас стек. И хотя мой МК — это достаточно новый и еще не очень популярный ФРАМ-камешек из семейства MSP430FR57xx, программу можно портировать и на другие МК.

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

RTOS и управление режимами энергосбережения.

В предыдущем посте про litenkjerne-430
спрашивали про krn_uthread_idle и где-же в ней энергосбережение. На тот момент это была просто заглушка и я обещал в скором времени запостить пример.
Посмотрим, как же ОС помогает нам управлять энергосбережением.


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

RTOS теперь для MSP430

Как-то я тут публиковал про самодельую litenkjerne — RTOS для STM8(003S).
Теперь пришло время пересесть на MSP430 (16 бит + очень низкое потребление). Ну и, собственно, почему бы не перенести на MSP430 свою RTOS? Неделя вечеров — и всё готово. Что же она умеет?


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