Jump to content

    

К1986ВЕ92

Recommended Posts

zigzag109
Проблему с отваливающимся JTAG А и Б решал с помощью переключения на внешнию флеш. Стирается и записывается без проблем.

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

цикл секунды на две. Когда по недосмотру в программе валим JTAG, можно будет успеть стереть чип.

 

Share this post


Link to post
Share on other sites

AVR
Проверено на LDM-K1986BE92QI.

Кстати про уарт забыли как только поняли причину отваливания JTAG (писал об этом выше).

У меня появился вопрос... их программа 1986WSD.exe действительно прошивает, однако требуется там нажать Run чтобы программа начала работать. А при сбросе питания - пусто, программы нет, не работает. Не представляю - куда же оно там зашилось, или надо что-то сделать чтобы оно начало работать при включении питания при таком способе прошивки? Подозреваю переключатели M0/M1/M2 на плате за это отвечают.

Share this post


Link to post
Share on other sites

rus61
У меня появился вопрос... их программа 1986WSD.exe действительно прошивает, однако требуется там нажать Run чтобы программа начала работать. А при сбросе питания - пусто, программы нет, не работает. Не представляю - куда же оно там зашилось, или надо что-то сделать чтобы оно начало работать при включении питания при таком способе прошивки? Подозреваю переключатели M0/M1/M2 на плате за это отвечают.

 

По видимому Вы после прошивки по UART не перевели МК в режим работы с Flesh (M0/M1/M2 = 0/0/0).

Share this post


Link to post
Share on other sites

uriy

Рассматриваем переход на К1986ВЕ92QI с STM32L151.

Хотелось бы услышать комментарии бывалых с этим процом

1. Защита флеш от чтения так и не появилась?

2. Чем принято программировать при массовом производстве? Вижу что есть встроенный UART загрузчик. А через SWD средствами JFlash, например, можно?

3. Нет ли проблем для использования собственного загрузчика с возможностью обновления основной программы через UART? Сейчас у меня было сделано так на STM:

В основной программе через UART приходит команда на перезагрузку, в RTC_BACKUP регистр пишу мэджик байт и перезагружаю проц. Попадаю в бут, он в свою очередь видит мэджик байт и не переходит в основную программу. Обновляем основную программу и снова на перезагрузку. Это будет работать в К1986ВЕ92QI?

4. В STM32L151 хранил параметры во встроенной EEPOM. В К1986ВЕ92QI ее нет, что насчет эмуляция EEPROM во флеш?

Насколько понял размер страницы в конце флеш по 4 КБ, вроде проблем нет

Share this post


Link to post
Share on other sites

Darth Vader
6 часов назад, uriy сказал:

1. Защита флеш от чтения так и не появилась?

Не появилась

6 часов назад, uriy сказал:

2. Чем принято программировать при массовом производстве? Вижу что есть встроенный UART загрузчик. А через SWD средствами JFlash, например, можно?

Можно и через UART, и через JFlash

6 часов назад, uriy сказал:

3. Нет ли проблем для использования собственного загрузчика с возможностью обновления основной программы через UART?

Нет проблем

6 часов назад, uriy сказал:

4. В STM32L151 хранил параметры во встроенной EEPOM. В К1986ВЕ92QI ее нет, что насчет эмуляция EEPROM во флеш?

Эмулировать можно, проблем нет. Особенности программирования флеш-памяти рассмотрены тут.

Ответы почти на все ваши вопросы можно найти здесь.

Edited by Darth Vader

Share this post


Link to post
Share on other sites

V_G
6 часов назад, uriy сказал:

Насколько понял размер страницы в конце флеш по 4 КБ, вроде проблем нет

Проблем нет. Cледить, чтобы за данными в EEPROM не было кода.

Share this post


Link to post
Share on other sites

adnega
21 минуту назад, V_G сказал:

Проблем нет. Cледить, чтобы за данными в EEPROM не было кода.

Проблем нет, есть особенности. Например, стирание страницы за четыре прохода (ЕМНИП).

Share this post


Link to post
Share on other sites

V_G
8 часов назад, adnega сказал:

Например, стирание страницы за четыре прохода (ЕМНИП)

Не было у меня такого. Использую последнюю страницу флэша в качестве EEPROM практически везде. 

Код, стирающий и пишущий во флэш, должен располагаться в ОЗУ: это вроде общеизвестно. Запретить прерывания на время стирания и записи - тоже общеизвестно.

Share this post


Link to post
Share on other sites

adnega
7 часов назад, V_G сказал:

Не было у меня такого.

Посмотрите по-внимательнее - должно быть:

Цитата

9.2.2 Стирание банка памяти одной страницы размером 4 Кбайт
Стирание одной страницы выполняется в 4 этапа:
 1 этап - стирание Sector_A для одной страницы;
 2 этап - стирание Sector_B для одной страницы;
 3 этап - стирание Sector_C для одной страницы;
 4 этап - стирание Sector_D для одной страницы.
Стирание одного сектора страницы памяти возможно только в режиме
программирования. Для стирания страницы памяти надо установить необходимое
значение в бит IFREN (1 - для информационной памяти и 0 - для основной памяти), затем
установить адрес стираемой страницы в регистре EEPROM_ADR[16:12] и номер сектора
EEPROM_ADR[3:2] (00 – Sector_A, 01 – Sector_B, 10 – Sector_C и 11 – Sector_D)

На картинке видно, что стираются группами по 4 байта - решето какое-то.

1885527723_.thumb.png.234a718b4610059b886148913dca08e7.png

 

Share this post


Link to post
Share on other sites

V_G
1 час назад, adnega сказал:

Посмотрите по-внимательнее - должно быть

Честно говоря, просто вызывал библиотечную функцию (в Кейле) EEPROM_ErasePage  (Address, EEPROM_Main_Bank_Select) и даже не влезал внутрь. Функция медленная и редко вызываемая. Зачем тут что-то оптимизировать?

Другое дело - что-то оптимизировать в обработках DMA прерываний: я делал это в hal для STM32F410 и добился впечатляющих результатов по быстродействию. А в функции EEPROM чего лезть?

Share this post


Link to post
Share on other sites

Edit2007
1 час назад, adnega сказал:

стираются группами по 4 байта - решето какое-то.

 

Скорее "столбцами" в пределах страницы, но в целом  да решето

Share this post


Link to post
Share on other sites

adnega
1 час назад, V_G сказал:

Честно говоря, просто вызывал библиотечную функцию

А я пользовался на уровне регистров. После STM32 многое было удивительно, но в целом все заставил работать.

Я не считаю, что они как-то с STM32 похожи, хотя, на уровне библиотек - может быть.

Share this post


Link to post
Share on other sites

mantech
15 часов назад, V_G сказал:

Использую последнюю страницу флэша в качестве EEPROM практически везде. 

Так вроде у флеша небольшое кол-во перезаписей по сравнению с EEPROM, вы это учитываете?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.