ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
26 августа
1601486 Топик полностью
FDA (Сегодня, 11:57, просмотров: 64) ответил FDA на Непонятная хня с Artery AT32F407. Пришли микрухи с новой партии (год выпуска 2025, ранее 2024 были). Отдельной софтиной шьются нормально, всё работает. А вот при записи из Keil во время верификации появляются ошибки при записи в разных блоках. Чего только не пробовал, нифига не помогает. Беру точно такую же старую плату - всё норм, с новой проблемы. Уменьшение частоты программатора не помогает. Паки все свежие, ревизии процов судя по маркировке одинаковые - B.
Разобрался в проблеме!!! Я был не прав на счёт новых плат, там было одно изменение - BOOT1 был подключён к GND, ранее висел в воздухе. В целом это правильно и указано в даташите. BOOT0 у нас подключён к GND через резюк и заведён на разъём программирования. Приоритет у BOOT0. Если там GND, то МК стартует из Flash независимо от состояния BOOT1. Поэтому ранее проблем не было. Но вот тут самое интересное начинается. Мы удалили пин BOOT0 с разъёма программатора и все платы через 

Keil стали прошиваться нормально. Значит Keil зачем-то дёргает BOOT0 перед верификацией прошивки. Но раз ранее на BOOT1 была лог. 1 (он был в воздухе), то значит МК переключался в режим запуска из SRAM. А при BOOT1 на GND он переключается на системный загрузчик. При этом оригинальная софтина от Artery так не делает. В общем для себя решили в новых ревизиях вообще убрать BOOT0 с разъёма программатора, просто подключим его тоже к GND. Ни в какой ситуации он нам не требуется. Даже если зашить МК с битом FAP (защита кода), то потом она снимается оригинальной софтиной без проблем. Вот такой итог :-)