zigzag109 0 20 августа, 2014 Опубликовано 20 августа, 2014 · Жалоба Проблему с отваливающимся JTAG А и Б решал с помощью переключения на внешнию флеш. Стирается и записывается без проблем. Если на плате не выведены другие интерфейсы и нет возможности менять вариант загрузки применяю на стадии отладки перед инициализацией портов пустой цикл секунды на две. Когда по недосмотру в программе валим JTAG, можно будет успеть стереть чип. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 4 сентября, 2014 Опубликовано 4 сентября, 2014 · Жалоба Проверено на LDM-K1986BE92QI. Спасибо за подсказку. Купил эту плату, действительно шьется по UART :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 7 сентября, 2014 Опубликовано 7 сентября, 2014 · Жалоба Проверено на LDM-K1986BE92QI. Кстати про уарт забыли как только поняли причину отваливания JTAG (писал об этом выше). У меня появился вопрос... их программа 1986WSD.exe действительно прошивает, однако требуется там нажать Run чтобы программа начала работать. А при сбросе питания - пусто, программы нет, не работает. Не представляю - куда же оно там зашилось, или надо что-то сделать чтобы оно начало работать при включении питания при таком способе прошивки? Подозреваю переключатели M0/M1/M2 на плате за это отвечают. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rus61 0 8 сентября, 2014 Опубликовано 8 сентября, 2014 · Жалоба У меня появился вопрос... их программа 1986WSD.exe действительно прошивает, однако требуется там нажать Run чтобы программа начала работать. А при сбросе питания - пусто, программы нет, не работает. Не представляю - куда же оно там зашилось, или надо что-то сделать чтобы оно начало работать при включении питания при таком способе прошивки? Подозреваю переключатели M0/M1/M2 на плате за это отвечают. По видимому Вы после прошивки по UART не перевели МК в режим работы с Flesh (M0/M1/M2 = 0/0/0). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 5 21 февраля, 2022 Опубликовано 21 февраля, 2022 · Жалоба Рассматриваем переход на К1986ВЕ92QI с STM32L151. Хотелось бы услышать комментарии бывалых с этим процом 1. Защита флеш от чтения так и не появилась? 2. Чем принято программировать при массовом производстве? Вижу что есть встроенный UART загрузчик. А через SWD средствами JFlash, например, можно? 3. Нет ли проблем для использования собственного загрузчика с возможностью обновления основной программы через UART? Сейчас у меня было сделано так на STM: В основной программе через UART приходит команда на перезагрузку, в RTC_BACKUP регистр пишу мэджик байт и перезагружаю проц. Попадаю в бут, он в свою очередь видит мэджик байт и не переходит в основную программу. Обновляем основную программу и снова на перезагрузку. Это будет работать в К1986ВЕ92QI? 4. В STM32L151 хранил параметры во встроенной EEPOM. В К1986ВЕ92QI ее нет, что насчет эмуляция EEPROM во флеш? Насколько понял размер страницы в конце флеш по 4 КБ, вроде проблем нет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Darth Vader 0 21 февраля, 2022 Опубликовано 21 февраля, 2022 (изменено) · Жалоба 6 часов назад, uriy сказал: 1. Защита флеш от чтения так и не появилась? Не появилась 6 часов назад, uriy сказал: 2. Чем принято программировать при массовом производстве? Вижу что есть встроенный UART загрузчик. А через SWD средствами JFlash, например, можно? Можно и через UART, и через JFlash 6 часов назад, uriy сказал: 3. Нет ли проблем для использования собственного загрузчика с возможностью обновления основной программы через UART? Нет проблем 6 часов назад, uriy сказал: 4. В STM32L151 хранил параметры во встроенной EEPOM. В К1986ВЕ92QI ее нет, что насчет эмуляция EEPROM во флеш? Эмулировать можно, проблем нет. Особенности программирования флеш-памяти рассмотрены тут. Ответы почти на все ваши вопросы можно найти здесь. Изменено 21 февраля, 2022 пользователем Darth Vader Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V_G 11 21 февраля, 2022 Опубликовано 21 февраля, 2022 · Жалоба 6 часов назад, uriy сказал: Насколько понял размер страницы в конце флеш по 4 КБ, вроде проблем нет Проблем нет. Cледить, чтобы за данными в EEPROM не было кода. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 21 февраля, 2022 Опубликовано 21 февраля, 2022 · Жалоба 21 минуту назад, V_G сказал: Проблем нет. Cледить, чтобы за данными в EEPROM не было кода. Проблем нет, есть особенности. Например, стирание страницы за четыре прохода (ЕМНИП). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V_G 11 22 февраля, 2022 Опубликовано 22 февраля, 2022 · Жалоба 8 часов назад, adnega сказал: Например, стирание страницы за четыре прохода (ЕМНИП) Не было у меня такого. Использую последнюю страницу флэша в качестве EEPROM практически везде. Код, стирающий и пишущий во флэш, должен располагаться в ОЗУ: это вроде общеизвестно. Запретить прерывания на время стирания и записи - тоже общеизвестно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 5 22 февраля, 2022 Опубликовано 22 февраля, 2022 · Жалоба Quote Ответы почти на все ваши вопросы можно найти здесь. Спасибо за полезные ссылки! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 22 февраля, 2022 Опубликовано 22 февраля, 2022 · Жалоба 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 байта - решето какое-то. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V_G 11 22 февраля, 2022 Опубликовано 22 февраля, 2022 · Жалоба 1 час назад, adnega сказал: Посмотрите по-внимательнее - должно быть Честно говоря, просто вызывал библиотечную функцию (в Кейле) EEPROM_ErasePage (Address, EEPROM_Main_Bank_Select) и даже не влезал внутрь. Функция медленная и редко вызываемая. Зачем тут что-то оптимизировать? Другое дело - что-то оптимизировать в обработках DMA прерываний: я делал это в hal для STM32F410 и добился впечатляющих результатов по быстродействию. А в функции EEPROM чего лезть? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Edit2007 3 22 февраля, 2022 Опубликовано 22 февраля, 2022 · Жалоба 1 час назад, adnega сказал: стираются группами по 4 байта - решето какое-то. Скорее "столбцами" в пределах страницы, но в целом да решето Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 22 февраля, 2022 Опубликовано 22 февраля, 2022 · Жалоба 1 час назад, V_G сказал: Честно говоря, просто вызывал библиотечную функцию А я пользовался на уровне регистров. После STM32 многое было удивительно, но в целом все заставил работать. Я не считаю, что они как-то с STM32 похожи, хотя, на уровне библиотек - может быть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 22 февраля, 2022 Опубликовано 22 февраля, 2022 · Жалоба 15 часов назад, V_G сказал: Использую последнюю страницу флэша в качестве EEPROM практически везде. Так вроде у флеша небольшое кол-во перезаписей по сравнению с EEPROM, вы это учитываете? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться