скрытое меню

Прошиваем MSP430 LTP

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

Здесь есть какой-то программатор от производителя контроллеров https://www.ti.com/tool/msp430-flasher . А вообще есть две программы , которые могут нам помочь.

MSPFET

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

фотка 1

На практике бывает , что на одной на одном ПК с 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)

Рекомендации (вместе c программой MOSFET) : в свойствах LPT должно быть адреса 0x0378-0x037F, bi derection или в SPP в биос.
В настройках порта в винде прерывания не имеет значения , галочка использовать любое прерывание стоит.

    Варианты в биосе настройки 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;

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

бывает так


19:18:04 Initialize...
19:18:08 Init failed. Could not access device - security fuse is blown.

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


19:20:24 Initialize...
19:20:25 Device: MSP430F44x. Info(0x1000-0x10FF), Main:(0x1100-0xFFFF)
19:20:25 Erasing flash memory...
19:20:25 Erase complete.

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

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


17:59:38 Initialize...
17:59:43 Init failed. Could not find device (or device not supported).

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


18:02:18 Initialize...
18:02:22 Init failed. Could not find device (or device not supported).

Ккт не вкл

18:03:05 Initialize...
18:03:09 Init failed. Could not find device (or device not supported).

пример ОК

18:06:55 Loading Intel HEX file "D:\_ETVERS\ЧПМ\МЕРКУРИЙ-180К\ЧПМ с сайта 180RU201_100111.hex\180RU201_100111.hex"...
18:06:56 Load 61440 bytes.
18:06:57 Loading Intel HEX file "D:\_ETVERS\ЧПМ\МЕРКУРИЙ-180К\ЧПМ с сайта 180RU201_100111.hex\180RU201_100111.hex"...
18:06:57 Load 61440 bytes.
18:06:57 Initialize...
18:06:58 Device: MSP430F44x. Info(0x1000-0x10FF), Main:(0x1100-0xFFFF)
18:06:58 Erasing flash memory...
18:06:58 Erase complete.
18:06:58 Blank check device memory...
18:06:59 Blank check complete.
18:06:59 Programming the device memory...
18:07:23 Program complete.
18:07:23 Verifying device memory programming...
18:07:26 Verify complete.

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

FET-Pro430

фотка 1

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

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

фотка 2

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

фотка 3

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

фотка 4

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

фотка 5

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

фотка 6
фотка 7

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

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

Reading Code File ...........................	 done
-- Code size = 0xD8CC ( 55500 ) bytes
JTAG communication initialization....	 OK
Verifying Security Fuse ....................	 OK
Erasing memory ...............................	 done
JTAG communication initialization....	 OK
All memory Blank checking.............	 OK
Flash programming ....................	 done
Verifying check sum .........................	 OK
 -------- D O N E --- ( run time =  38.3 sec.)
 --- Resetting Target device --- 
 --- Start application program ---