Главная » Микроконтроллеры
Призовой фонд
на январь 2017 г.
1. 1000 руб.
Radio-Sale
2. Регулируемый паяльник 60 Вт
Паяльник
3. 600 руб.
От пользователей
4. Тестер компонентов LCR-T4
Паяльник

Начинаем работать с микроконтроллерами MSP430

Целью данной статьи является помощь в начале освоения микроконтроллеров MSP430 фирмы Texas Instruments.

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

Преимущества MSP430:

1. Очень широкая линейка для практически любых задач.

2. Очень широкий ряд корпусов, от DIP до очень мелких типа pqfp.

Весь доступный ряд можно посмотреть с помощью удобной странички от TI:

mc165-1.png

Перейдя по ссылкам слева и выбирая нужную серию попадаем в каталог:

Каталог микроконтроллеров MSP430

Где можно выбрать нужный себе кристалл по объему Flash-памяти, ОЗУ, наличию USART, АЦП, корпуса и т.д. Сразу скажу, что я не использовал корпуса типа DIP. Корпус типа SOIC легко распаивается на самодельную плату изготовленную по технологии ЛУТ. Достаточно стабильно у меня получаются платы и для корпусов типа PW (расстояние между ногами 0,65мм).

3. Сверхнизкое потребление питания (бывает ну крайне важно). На этом остановимся поподробнее ниже с примерами и цифрами.

4. Мне также например нравиться то, что для одного и того же типа корпуса расположение ног для разных серий и типов в пределах серии одинаково. Это дает возможность легко заменить один тип на другой без изменения печатной платы.

5. Немаловажно, что все типы микроконтроллеров можно бесплатно заказать у TI для освоения.

В качестве примера два разных MSP430 в одинаковом корпусе, MSP430f2619 и MSP430f149:

MSP430f2619 и MSP430f149

Для начала освоения выберем msp430f1232 или msp430f1222, они отличаются только объемом flash памяти и абсолютно идентичны по расположению ног. Я считаю этот микроконтроллер самым ходовым в радиолюбительской практике. Его плюсом можно также назвать наличие модели его младшего брата msp430f1121 (без usart) в Proteus.

На этой странице есть даташит, а по этой ссылке прочие документы.

Документация от TI имеет особенность (для тех кто уже знаком с микроконтроллерами от, например AVR ATMEL). В даташите указываются специфичные именно для этого камня особенности (количество памяти, наличие USART, электрические характеристики и т.д.). А описание регистров находятся в документе MSP430x1xx Family User's Guide (Rev. F) для серии msp430f1xx. Этот документ общий для всей серии.

Есть также настольные книги "руководство пользователя" и "рекомендации по применению".

А также примеры исходных кодов для семейства msp430f1x по ссылке.

Итак, начнем.

Минимальная обвязка для включения микроконтроллера:

Минимальная обвязка для включения микроконтроллера

Сперва нам понадобятся макетка и программатор.

Пример моей макетки в файле к статье.

Печатная плата

Теперь небольшое отступление на предмет программатора.

Микроконтроллеры msp430 могут быть запрограммированы следующим образом:
4-х проводной JTAG (прошивка и отладка (очень удобно)) бывает LPT и USB.
2-х проводной JTAG, так называемый Spyi-Bi-wire (прошивка и отладка) только USB.
BSL - последовательный интерфейс (только прошивка). COM или USB-COM.

Не все микроконтроллеры могут быть зашиты всеми указанными программаторами. Смотреть надо в даташите на каждый камень. (Так рекомендуемые для начала работы MSP430F1232 можно шить только по 4-х проводному JTAGу или по BSL) .

Где взять программатор? Естественно можно купить. Есть дорого фирменные от TI или от Olimex, а также море китайских клонов.

Например BSL (хотя bsl можно сделать из любого шнурка от сотового в котором есть линии RTS и DTR) можно найти на AliExpress.
JTAG через USB
JTAG через LPT

Также на сайте TI можно почти за даром заказать LaunchPad:

LaunchPad

Который в своем составе имеет 2-х проводной JTAG Spy-Bi-Ware USB, но к сожаленью этот Spy-Bi-Wire есть не во всех камнях. Я поигрался. Мне не пригодилось (у меня практически не было камней с поддержкой spy-bi-wire) и я его отдал другу для освоения.

Также программатор можно сделать и самостоятельно. Где взять детали, смотрите в конце статьи.

В архиве программатор bsl.rar схема BSL программатора на переходнике USB-COM

В архиве программатор JTAG LPT-FET.rar схема и печатка для программатора LPT-FET. Необходимо отметить, что это упрощенная мной схема LPT-FET от Olimex

Схема LPT-FET программатора от Olimex

mc165-8.jpg

И ей требуется внешнее питание 3.3В от платы микроконтроллера. Плата получилась компактная и умещается в корпус DB-25.

Плата программатора

Для BSL программатора корпуса еще нет, но скорее всего это будет кусок кабель-канала нужного сечения.

Схема BSL программатора

mc165-11.jpg

BSL программатор

Выходные сигналы BSL программатора выведены на разъемы типа PLS. И отдельно выведено питание 3.3В (бонусом так сказать)

Оба типа мной собраны и работают.

Программировать через JTAG можно из среды разработки. А для программирования через BSL используется бесплатная и удобная программа от Kurt-а MSPFET. (Приложена в архиве или может быть скачана по ссылке)

Разработка кода может вестись в различных средах

Например:
http://sourceforge.net/apps/mediawiki/mspgcc/index.php?title=MSPGCC_Wiki
http://www.ti.com/tool/iar-kickstart с ограничение размера кода до 4кБ
http://www.ti.com/tool/ccstudio-msp430 IDE от TI
И другие…

Я использую IAR. Причем я не беру IAR от TI с ограничением кода, а спокойно зарегистрировавшись на iar.com скачиваем 30 дневную полнофункциональную версию IAR для msp430. (а потом можно и еще раз скачать и т.д.) по ссылке

Итак, допустим макетка сделана (нам в первую очередь нужно запаять стабилизатор на 3.3Вольта, светодиод на ножку P1.0 и разъем для LPT-FET. Кварц и прочее можно допаять позже). Программатор LPT-FET тоже.

Устанавливаем и запускаем IAR. Нажимаем create new project:

mc165-13.jpg

Выбираем шаблон:

mc165-14.jpg

Даем свое название и вот окно проекта с типовым шаблоном.

Перво наперво правой кнопкой мыши кликаем по: название - debug -> option

mc165-15.jpg

Выбираем наш микроконтроллер

mc165-16.jpg

Меняем тип отладчика

mc165-17.jpg

Задаем, что у нас программатор lpt от olimex на lpt1

mc165-18.jpg

В окне сишного кода меняем весь на код из файла demo led.c, нажимаем F7 и видим:

mc165-19.jpg

Нажимаем зеленый треугольник и происходит заливка кода в микроконтроллер:

mc165-20.jpg

В открывшемся окне нажимаем "GO" старт программы:

mc165-21.jpg

В итоге, видим мигающий светодиод на плате.

Если у вас программатор типа BSL, то порядок действий следующий: в IAR выбираем нужный контроллер. Пишем код (например demo led.с).

Правой кнопкой по debug, option и ставим настройки в пункте linker как на рисунке:

mc165-22.jpg

Жмем F7. Запускаем MSPFET от Kurta. Открывается окно. Нажимаем Setup. Выбираем программатор BSL.

mc165-23.jpg

Ставим настройки для выходных ног, патча бутлодера (есть фишка, но нам сейчас не надо), скорости (тоже пока не надо) и т.д.

Для программатора сделанного из TUSB3410 настройки выглядят так.

mc165-24.jpg

В выпадающем списке выбираем нужный микроконтроллер.

Меню, открыть, и идем в каталог где лежит наш тестовый проект. В нем ищем каталог Debug. В нем ищем каталог EXE:

mc165-25.jpg

И там выбираем файл прошивки с расширением .a43:

mc165-26.jpg

Открываем. Нажимаем кнопку auto. Все процесс пошел. В случае удачных действий получаем картинку

mc165-27.jpg

И мигающий светодиод. (Если в настройках msp-fet от Kurta поставить галочку перегружать файл, то в дальнейшем нет необходимости повторять все действия. Изменил прошивку в IAR. Нажал F7. Зашел в MSPFET. Нажал auto.)

Теперь вкратце об особенностях микрконтроллеров msp430.

Супер гибкая система тактирования. В примере мы использовали внутренний генератор на 750кГц. Можно изменять его частоту регистрами настройки DCO (смотри руководство пользователя). Можно на ноги XIN XOUT повесить кварц часовой или высокочастотный (причем для часового кварца конденсаторы уже есть внутри камня и их номинал можно выбирать). В программе можно легко переключаться с одного источника тактирования на другой. В купе с разными режимами спячки можно обеспечить беспрецедентное снижение энергопотребления. Например, затактировать таймер от ACKL настроенный на 32768Гц от часового кварца. Разрешить прерывание от таймера. В прерывании разбудить ядро и настроить тактирование ядра на максимальную частоту, быстро сделать необходимые вычисления и уйти опять в глубокий сон. Подробное описание систем тактирования и режимов питания смотрите в руководстве пользователя.

Вот простой пример для повторения.

Зашьем код из файла norma.c

Включаем через миллиамперметр и видим, что в моменты когда светодиод не горит ток потребления 230мкА.

Зашьем код из файла LPM0.c

Включаем через миллиамперметр и видим, что ток потребления 50мкА. (Данные замеры проводились тестером на пределе 20мА, но в качестве иллюстрации сойдет). Особенно целесообразно применение данных микроконтроллеров в паре с ЖК экранами, где столь малое энергопотребление проявляется в полной мере.

Кстати такое низкое потребление порождает и соответствующие проблемы, связанные с паразитным питанием. Особенно если учесть, что для питания достаточно 1.8В. При довольно насыщенной схеме, контроллер стартует от всего подряд, вплоть до usart. Поэтому будьте внимательны. Часто, микроконтроллер не выходит на связь с JTAG, пока не отключишь внешние схемы (если не приняты меры по исключению паразитного питания и согласования уровней).

Что не очень понравилось в MSP430 0- так это неудобно реализованная работа с Flash памятью для хранения каких либо переменных пользователя. Так называемая память info разбита на сегменты по 128 байт и беда в том, что записать можно в каждую ячейку отдельно, но только один раз. Для изменения ранее записанной ячейки необходимо стереть весь сегмент и заново записать в нужную ячейку. Это приводит к тому, что перед изменением любой ячейки необходимо сначала прочитать в ОЗУ все используемые ячейки, изменить необходимую, стереть весь сегмент и записать из ОЗУ все во info flash.

Итак, первый проект Вы удачно сделали и зашили в контроллер. Что дальше?

Для освоения периферии мне очень помогли примеры использования MSP430 от TI, ранее упомянутые в статье. Много примеров и проектов есть в книге "рекомендации по применению" от КОМПЭЛ.

Раздел на форуме по MSP430

Если вы решили сами собрать программатор для MSP430, то я рекомендую зарегистрироваться на сайте TI с указанием своего реального номера телефона и может быть даже выдуманным местом работы.

Заказать в качестве бесплатных образцов следующие компоненты:
-   MSP430F1222IDW корпус soic
-   MSP430F1232IDW корпус soic
-   преобразователь COM-usb tusb3410 (для bsl программатора)
-   стабилизатор reg104-3.3 в корпусе SOT223-5

Привезут в течении недели, возможно перед этим позвонят и спросят на русском языке зачем Вам это необходимо. Тут уж каждый сам за себя. Придумывайте что хотите. Как привезут, позвонят еще раз из службы доставки. Именно поэтому должен быть правильный телефон и адрес.

Скачать файлы к статье

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
Программатор JTAG LPT-FET
U2 ИС буфера, драйвера
SN74HC244
1 Поиск в FivelВ блокнот
T1 Биполярный транзистор
BC846
1 Поиск в FivelВ блокнот
С6 Конденсатор0.1 мкФ1 Поиск в FivelВ блокнот
R1-R5, R12, R15--R17, R19 Резистор
33 кОм
10 Поиск в FivelВ блокнот
R6 Резистор
82 Ом
1 Поиск в FivelВ блокнот
R7-R9 Резистор
330 Ом
3 Поиск в FivelВ блокнот
R18 Резистор
3.3 кОм
1 Поиск в FivelВ блокнот
РазьемDB25-MALE1 Поиск в FivelВ блокнот
Разьем для подключения к программируемой схеме1 Поиск в FivelВ блокнот
BSL программатор
Линейный регулятор
REG104-33
1 Поиск в FivelВ блокнот
U2 ИС USB интерфейса
TUSB3410
1 Поиск в FivelВ блокнот
U5 Микросхема24LC1281/SN1 Поиск в FivelВ блокнот
С6 Конденсатор1 мкФ1 Поиск в FivelВ блокнот
С9, С10 Конденсатор33 пФ2 Поиск в FivelВ блокнот
С11, С12, С15 Конденсатор0.1 мкФ3 Поиск в FivelВ блокнот
Электролитический конденсатор0.1 мкФ1 Поиск в FivelВ блокнот
Сout(1) Электролитический конденсатор1 Поиск в FivelВ блокнот
R17 Резистор
10 кОм
1 Поиск в FivelВ блокнот
R18 Резистор
15 кОм
1 Поиск в FivelВ блокнот
R20, R27, R28 Резистор
1.5 кОм
3 Поиск в FivelВ блокнот
R21, R22 Резистор
33 Ом
2 Поиск в FivelВ блокнот
R25 Резистор
470 Ом
1 Поиск в FivelВ блокнот
R31 Резистор
47 кОм
1 Поиск в FivelВ блокнот
Q2 Кварцевый резонатор12 МГц1 Поиск в FivelВ блокнот
Jp1 Джампер1 Поиск в FivelВ блокнот
J1 Разьем микро-USB1 Поиск в FivelВ блокнот
Добавить все

Скачать список элементов (PDF)

Теги:

Трухов Виктор Павлович Опубликована: 2012 г. 0 1
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (7) | Я собрал (0) | Подписаться

0
Максим #
А что дальше делать новичкам типа меня, которые раньше не работали с МК и не знают Си, но в руках есть несколько MSP430 и программатор?
Ответить
0
Виктор #
Вы по статье попробовали хотя бы демо пример сделать с мигающим светодиодом?
Ответить
0
Anton #
А подойдет ли в качестве программатора конвертер на 2303?
Ответить
0
andrej #
Собрал Ваш упрощенный вариант, не видит мсп430ф415.
Ответить
0
yuri #
В схеме номинал резистора R16 должен быть 330 кОм, ошибка от Олимекса, пришлось лезть к TI и все заработало
Ответить
0
yuri #
Пардон и R17 тоже 330K, сразу не заметил, просто под F149 еще более упрощал
Ответить
0
Valerii #
R16 и R17 по-моему должны быть 330R
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Pickit 2 - USB-программатор PIC-микроконтроллеров
Pickit 2 - USB-программатор PIC-микроконтроллеров
Модуль радиореле на 4 канала Конструктор - Гитарная педаль Remote Delay 2.5
вверх