[i] Программирование контроллеров с помощью J-FLASH Lite

ID статьи: 47534
Дата последнего изменения: 04.07.2024 13:53:03
Материал из настоящей статьи, относящийся к микросхеме К1986ВЕ92QI, распространяется в том числе на микроконтроллеры К1986ВЕ92FI, К1986ВЕ92F1I и К1986ВЕ94GI

Часто возникает вопрос, как прошить микроконтроллер, не пользуясь средой Keil. Компания SEGGER разработала утилиту J-FLASH, которая представляет собой программное обеспечение, работающее с Windows 2000 и старше, позволяющее программировать внутреннюю и внешнюю память контроллера, используя J-Flash или Flasher.

Для работы с полной версией J-Flash необходимо купить лицензию или программатор, при покупке которого лицензия поставляется в комплекте. Урезанную версию J-Flash Lite можно скачать с сайта Segger. Программа входит в пакет J-link Software and Documentation Pack for Windows.

При работе с программой J-Flash (J-Flash Lite) допустимо использование только программатора J-Link

Порядок действий по добавлению поддержки микроконтроллеров компании Миландр (ДЛЯ СТАРЫХ ВЕРСИЙ ПРОГРАММ ОТ SEGGER):

1. Скачать набор программ от Segger, который включает программу J-FLASH

Работа проверялась на версии 6.52a (также была проверена работа на версии 6.34h от 2018-10-09, микроконтроллеры успешно определяются программой).

2. Распаковать архив.

3. В папке "Devices" создать папку "Milandr", в которую положить FLM-файлы тех контроллеров производства компании "Миландр", с которыми утилита будет работать.

Стандартные FLM-файлы можно найти в паке для IDE Keil по пути C:\Keil_v5\ARM\PACK\Milandr\MDR32FxQI\1.0\Flash (стандартный путь для установочных паков может отличаться)

4. В папке JLink_Vxxxx найти файл JLinkDevices.xml.

5. Открыть его блокнотом и добавить в конце перед </DataBase> :

 <Device>
      <ChipInfo Vendor="Milandr"
       Name="K1986BE1QI"
       WorkRAMAddr="0x20100000"
       WorkRAMSize="0x4000"
       Core="JLINK_CORE_CORTEX_M1" />
       <FlashBankInfo Name="K1986BE1QI Flash"
       BaseAddr="0x0"
       MaxSize="0x20000"
       Loader="Devices\Milandr\MDR32F1QI.FLM"
       LoaderType="FLASH_ALGO_TYPE_OPEN"
       AlwaysPresent="1"/>
 </Device>
 <Device>
       <ChipInfo Vendor="Milandr"
        Name="K1986BE92QI"
        WorkRAMAddr="0x20000000"
        WorkRAMSize="0x8000"
        Core="JLINK_CORE_CORTEX_M3"/>
        <FlashBankInfo Name="K1986BE92QI Flash"
        BaseAddr="0x8000000"
        MaxSize="0x20000"
        Loader="Devices\Milandr\MDR32F9Q2I_MDR32FG16S1QI.FLM"
        LoaderType="FLASH_ALGO_TYPE_OPEN"
        AlwaysPresent="1" />
 </Device>

AlwaysPresent определяет, всегда ли присутствует flash-банк (например, внутренняя flash). Если этот элемент установлен в "1", то команда "erase" будет работать как команда "erase" и сотрет этот банк.
AlwaysPresent=“1”.

Порядок действий по добавлению поддержки микроконтроллеров компании Миландр (ДЛЯ НОВЫХ ВЕРСИЙ ПРОГРАММ ОТ SEGGER):

Для новых версий программ от Segger (например, в версии 7.84с от 20.01.2023) зафиксирован измененный алгоритм добавления новых устройств.

Если ранее в корне с установленными программами находился общий файл JLinkDevices.xml, в который добавлялся дополнительный код для внедрения поддержки новых устройств, то теперь Segger предлагает после установки программ перейти по пути C:\Users\<USER>\AppData\Roaming\SEGGER\JLinkDevices , где <USER> имя пользователя Вашего ПК и добавить файл с расширением .xml самостоятельно. Здесь важно отметить, что папка .\JLinkDevices может по умолчанию отсутствовать - в таком случае её необходимо создать. 

Важно отметить, что папка \AppData является скрытой на уровне работы ОС Windows, поэтому для её отображения необходимо включить отображение скрытых папок и файлов.

Теперь в папке .\JLinkDevices необходимо создать папку с именем производителя микроконтроллеров, в нашем случае "Milandr". 

В этой папке необходимо расположить алгоритм программирования с расширением .FLM (взять можно из состава установочного пака для IDE Keil) - поставляемый алгоритм, например, для микроконтроллера К1986ВЕ92QI имеет название MDR32F9Q2I_MDR32FG16S1QI.FLM .

Также в этой папке необходимо создать файл Devices.xml и описать его следующим образом:

<Database>
<Device>
       <ChipInfo Vendor="Milandr"
        Name="K1986BE92QI"
        WorkRAMAddr="0x20000000"
        WorkRAMSize="0x8000"
        Core="JLINK_CORE_CORTEX_M3"/>
        <FlashBankInfo Name="K1986BE92QI Flash"
        BaseAddr="0x8000000"
        MaxSize="0x20000" 
Loader="C:\Users\User\AppData\Roaming\SEGGER\JLinkDevices\Milandr\MDR32F9Q2I_MDR32FG16S1QI.FLM"
        LoaderType="FLASH_ALGO_TYPE_OPEN"
        AlwaysPresent="1" />
 </Device>
</Database>

Теперь запуск программ от Segger будет анализировать данную папку и добавлять микроконтроллер компании Миландр в список доступных микросхем для работы. Другие микроконтроллеры могут быть добавлены по аналогии с примером К1986ВЕ92QI.
Обратите внимание, что после добавления микроконтроллера можно пользоваться как утилитой J-Flash Lite, так и утилитой Jlink.exe (для проверки работоспособности программатора).


Подготовка программы.

1. Программа для программирования микроконтроллера может быть написана в любой среде, например, Keil или IAR, но затем должны быть получены файлы с расширением hex или bin, которые и будут загружены в память микроконтроллера.
Чтобы получить hex в среде Keil, нужно в опциях проекта Options for Target 'xxx' поставить галочку во вкладке 'Output' напротив пункта "Create HEX File". Файл будет лежать в папке Objects


Запуск программы

1. Запустить J-Flash Lite. Появится окно с предупреждением, что J-Flash Lite является средством для разработки и не предназначен для производства (рисунок 1). Нажать "ОК"


Рисунок 1 - Окно с предупреждением

2. Откроется окно (рисунок 2). В нем в поле "Device" уже выбран микроконтроллер, который программировался/стирался при последнем выборе утилиты. 



Рисунок 2 - Окно утилиты SEGGER J-Flash Lite V6.52a

3. Выбрать новый микроконтроллер можно, кликнув на поле под надписью "Device" (рисунки 3 и 4).


Рисунок 3 - J-Flash Lite. Выбор устройства в общем списке


Рисунок 4 - J-Flash Lite. Выбор микроконтроллеров Milandr с использованием фильтра

4. Загрузить записываемый файл в формате hex или bin (рисунок 5). В поле установить адрес:

для микроконтроллера K1986ВЕ1QI: 0х00000000

для микроконтроллера К1986ВЕ92QI: 0х080000000

Важно отметить, что путь к файлу не должен содержать русских букв, иначе программа не увидит файл


Рисунок 5 - Выбор загружаемого файла

5. Выполнить операции стирания (если в памяти микроконтроллера была прошивка) и записи (рисунок 6).


Рисунок 6 -  В секции "Log" отображены последовательно операции выбора загружаемого файла, стирания, программирования

С версии 7.88 изменен алгоритм при программировании-стирании Flash-памяти (определяется частота тактирования микросхемы с помощью DWT), что делает невозможной работу с микросхемами К1986ВЕ1QI, К1986ВЕ1FI, К1986ВЕ1GI, в ядре которых блок DWT не реализован. Для данных микросхем следует использовать драйвер и ПО версии до 7.86h включительно. 

Контактная информация

Сайт:https://support.milandr.ru
E-mail:support@milandr.ru
Телефон: +7 495 221-13-55