Программатор msp430 своими руками

Добавил пользователь Владимир З.
Обновлено: 04.09.2024

Вот, купил набор разработчика MSP430 LaunchPad.
Фирма Texas Instruments продает его всего за 4,30$, в Украине он стоит ненамного дороже.
В комплекте идут два контроллера: MSP430G2211 и MSP430G2231 в DIP корпусе.

Загрузил бесплатный IAR для написания программы, и "Lite FET-Pro430" от Elprotronic - для заливки программ в контроллер.

Поигрался с миганием светодиодов на плате, оказалось все как в AVR: регистр Dir - для направления порта, и регистр Out - для выводимых данных.

Затем проверил насколько экономичный этот контроллер в действительности.
В программе запустил его от встроенного генератора на 1мгц - ток 300 мка.
Затем напаял кварц 32кгц (идущий в комплекте), и запустил от него - ток 20 мка.

Дальше естественно захотелось узнать максимально экономичный режим.
Переключил сторожевой таймер (WDT) на режим прерывания, а тактовую для WDT задал от встроенного осциллятора с сверхнизким потреблением (VLO). В программе включил режим сбережения LPM3 (все STOP, кроме VLO), получился ток потребления - 0,5 мка (500 На)

И последний тест - режим потребления 0,5 мка и периодическое пробуждение по WDT для мигания светодиодом (при одном пробуждении - светодиод вкл, а при следующем - выкл). Период задал 4 секунды.
В общем все как и ожидалось: 4 секунды - ток 5 ма (светодиод вкл), и еще 4 секунды - ток 0,5 мка (светодиод выкл).

Так что, для приборов с батарейным питанием - весьма привлекательная характеристика.
Кроме того, завалявшийся в хозяйстве MSP430F2013 (программирование по SBW), для которого не нашлось в свое время доступного программатора - прекрасно прошился и тоже помигал светодиодами

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

А при написании собственной программы для сенсорного ввода, разобрался и как работает этот режим. Оказалось все просто!

На каждой ножке ввода-вывода, установлен так называемый Pin-oscillator - генератор из двух логических элементов. Подключить его можно в настроечном регистре порта Psel (в AVR такого нет, но назначение его простое - выбор периферии, которая пользуется ножкой ввода-вывода). Одновременно, для встроенного таймера-счетчика, нужно задать источник тактирования от периферии и измерить количество импульсов за какой нибудь фиксированный отрезок времени.
Например: если сенсорных кнопок не касаться, счетчик отсчитает, скажем 4000 импульсов. А при прикосновении к кнопке - количество импульсов будет равно 2000 - т.е. в два раза меньше.

Пробовал с разными длительностями замеров, соотношение для нажатой и не нажатой кнопки всегда отличается в два раза. Так что нажатие-отпускание легко отличается.
Так-же, при приближении руки к клавиатуре на 1 сантиметр показания счетчика изменяется на 10%. Так-что можно определить и приближение к клавиатуре.

Нюанс - одновременно к счетчику можно подключить только один Pin-oscillator, остальные должны быть отключены. Но меня это вполне устраивает.

Конструкция сенсорной кнопки простая: с одной стороны платы - GND слой, общий для всех кнопок. А с другой стороны - сами кнопки, подключенные к ножкам контроллера. Никаких дополнительных деталей ставить не нужно.
Сенсорных входов, для MSP430g2452 доступно 16 - т.е. все линии ввода-вывода.

Мне кажется, что это полезные сведения о новом программаторе для MSP430, ну и о новых контроллерах от TI

На фотке: плата программатора, программатор с платой для демонстрации сенсорных кнопок, и моё творчество с программатором. контроллер MSP430g2452 купил в TSOP корпусе - пришлось делать переходник на DIP.

В 2020-2021г. мы перешли в офисе на Windows 10 и начались проблемы в прошивкой Меркуриев 180.

Прошиваем контроллер MSP430F449 на примере кассового аппарата Меркурий-180.

Мы используем программатор от производителя кассовых аппаратов Меркурий завода Инкотекс : АВЛГ 787.00.01v1 и прогамму MSP430 program utility v 1.6.1007:

А вообще есть две программы , которые могут нам помочь.

MSPFET

FET Pro 430 v3.52.

В идеале в программе MSPFET должно быть как на картинке ниже:

фотка 1

Примечание: шлейф можно перевернуть на 180 , но одновременно на обоих концах и тоже будет работать.

На практике бывает , что на одной на одном ПК с XP32 MSPFET перестает работать , а на другой таком же с XP32 SP3 (свеже установленной) почему-то работает.

Хотя ПК один в буквальном смысле, только два диска и две разные ОС XP32 : давно-установленная (№1) и недавно-установленная (№2).

Пытаемся понять при каких настройках работает

фотка 2

LPT1 + custom address 49152=0xC000 , у нас в диспетчере устройств LPT1 0x0378 IRQ7 - И ТОЛЬКО так работает ! Если изменить custom address ничего не будет работать.

В диспетчере устройств у на так:

фотка 3

фотка 4

    на чужеземном:
  • FET (flash emulation tool)
  • BSL (bootstrap loader)
  • SPP - Standart Parallel Port
  • EPP - Enhanced Parallel Port
  • ЕСР (Extended Capability Port)
    Варианты в биосе настройки LPT :
  • SPP(или Normal) – стандартный режим работы параллельного порта;
  • EPP – усовершенствованный режим работы параллельного;
  • ECP – режим расширенного параллельного порта;
  • ECP+EPP – порт поддерживает два режима работы (ECP, EPP);
  • EPP+ SPP – порт поддерживает два режима работы (EPP, SPP);
    стандартные варианты адресов (прерываний)
  • 378H/IRQ7 – адрес 378H и прерывание IRQ7;
  • 278H/IRQ5 – адрес 278H и прерывание IRQ5;
  • 3BCH/IRQ7 – адрес 3BCH и прерывание IRQ7;

бывает так

А если на Меркурии 180 не включать питание, то все хорошо прошивается!

для понимания

Программатор не подключен к LPT

Сетевой адаптор к ккт не подключен

пример ОК

Кстати есть еще одна прога , которой контроллер шьется тоже нормально.

FET-Pro430

фотка 1

Рассмотрим вариант , когда у нас в системе (WIN-10 32) наш lpt кабель подключается к LPT2 порту.

Диапазон адресов ввода/вывода х1080 (4224) [но это не важно как оказывается].

фотка 2

Настраиваем программу FET-Pro430 на LPT2 порт.

фотка 3

Также надо сделать настройку памяти. Надо выбирать All memory.

фотка 4

На всякий случай привожу еще одну страницу с настройками (но это не влияет на успех).

фотка 5

И тогда все прошьется нормально . Соединение кабелем с кассой как на картинках ниже (существуют 4 варианта, и только 2 только правильные). 2 картинки ниже :

фотка 6

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

Лог прошивки на всякий случай:

Устанавливается программа по умолчанию в C:\Program Files (x86)\Elprotronic\ .

Компания Техас Инструменс разработала для начинающих недорогой отладочный набор MSP-EXP430G2. На сегодняшний день это самое дешевое отладочное средство.
Я купил такой набор всего за 319 рублей. В него входит два микроконтроллера и отладочная плата с программатором с поддержкой внутрисхемной отладки.

void main(void)
<
WDTCTL = WDTPW + WDTHOLD; // Stop WDT

BCSCTL1 |= DIVA_0; // ACLK/1
BCSCTL3 |= XCAP_3; // 12.5pF cap- setting for 32768Hz crystal
BCSCTL2 = SELS + SELM_2;

CCR0 = 512; // 512 -> 1 sec, 30720 -> 1 min
CCTL0 = CCIE; // CCR0 interrupt enabled
TA0CTL = TASSEL_2 + ID_3 + MC_1; // ACLK, /8, upmode

P1DIR = 0xFF; // All P1.x outputs
P1OUT = 0; // All P1.x reset

P2DIR = 0xFF; // All P2.x outputs
P2OUT = 0; // All P2.x reset

_BIS_SR(GIE); //interrupt Enable

while (1) // mainLoop


Если Вы хотите разобраться как работает MSP430Gxxx,
и у Вас есть время и желание, то это нужно деалать.
Если времени нет, то нужно выбрать другой путь.
На данный момент, есть оболочка програмир. Energia,
которая позволяет программировать быстро, используя
готовый код. Запрограммировать LCD display - 10 минут .
Сделать многоканальный вольтметр - еще 10 минут .
Вывести данные и сохранить на компьютере - еще 10 .
Готовый вольтметр, который уже работает - здесь . .

Часто, делая всякие радиоэлектронные устройства, задумываешься, что на микроконтроллере их можно сделать лучше, проще и намного скорее. И действительно, пробежавшись по Интернету можно найти много простых устройств, сердцем которых является микроконтроллер.

Для разработки таких вещей требуется:

-микроконтроллер,
-программатор,
-компилятор,
-эмулятор микроконтроллера,
-знание языка Си или Ассемблера.

Таким образом, если Вы хотите попробовать программировать микроконтроллеры, то вам понадобится комплект оборудования которое на 100% совместимое и которое на 100% нормально работает.


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

Преимущества:
- Цена комплекта (включая 2 микроконтроллера) – вне конкуренции.
- Все начинает работать прямо из коробки.
- Напряжение питания – от 2,2 до 3,6 Вольт, с низким энергопотреблением.

Недостаток:
- Сложное внутреннее устройство микроконтроллера.

Недостаток этот, весьма условный. Если Вы только начинаете изучать микроконтроллеры, то для Вас это не имеет НИКАКОГО значения.


Программируем и экспериментируем с “MSP430 Launchpad development kit”.

А как организовать его, всмысле Boot Strap Loader, если на этапе создания программы он никак не планировался и не делался? Или там есть какой-то лодырь по умолчанию?

Да, это аппаратная фича. Присутствует , если не ошибаюсь, на всех камнях, где есть защитный фьюз. Забейте в поиск BSL MSP430.

slavaplx,
Пользуюсь BSL progamator. Правда проц немного другой, MSP430F449, исполььзую простейший шнурок на MAX232, подключаю прям на ноги проца разрезав дорожки TXD RXD от основной схемы.
для 449-го проца ТХД = Р1.0 (87нога) через МАХ на 3 пин ком
RXD = Р1.1 (86нога) через мах на 2 пин ком
RESET = 94нога через 100 ОМ на 4 пин ком порта
ТСК = 93 нога через 100 ом на 7 пин ком порта
GND = 53 нога на 5 пин ком
Порядка 10 девайсов с пережженым JTAG перешиваю этим программатором.
вот ссылка на прошивальщик

Читайте также: