Сергей Борщ 143 12 декабря, 2020 Опубликовано 12 декабря, 2020 · Жалоба Разработал устройство на STM32F070 c USB. Кварц поставил с потолка 16 МГц. Когда пришла пора выпускать партию - вспомнил про заводской загрузчик и решил не запаивать разъем SWD. Собрали партию. Для заливки программы втыкаю в USB - не читаются дескрипторы. Проверяю схему - порядок. Проверяю генерацию на кварце - 16 МГц как в аптеке. Беру вторую плату - то же яйцо, только в профиль. Подпаиваю отладчик, заливаю свою программу - в моей программе USB работает. Перечитываю руководство пользователя - там ссылка на AN2606. В нем в описании загрузчика F070 в одной из таблиц написано: Цитата The external clock can be used for all bootloader interfaces and should have one of the following values [24, 18, 16, 12, 8, 6, 4] MHz. The PLL is used to generate 48 MHz for USB and system clock. Мои 16 МГц упомянуты. Внизу таблицы приписка: Цитата If HSI deviation exceeds 1% , the bootloader might not function correctly. Не мой случай, у меня температура комнатная и питание 3.3 В. Читаю errata - там ничего нет. Перечитываю AN2606 "от корки до корки" - в конце главы, посвященной загрузчику F070, в разделе "Bootloader version" в таблице в колонке "Known limitation" написано: Цитата At bootloader startup, the HSITRIM value is set to (0) (in HSITRIM bits on RCC_CR register) instead of default value (16), as consequence a deviation is generated in crystal measurement. For better results, please use the smallest supported crystal value (ie. 4 MHz). Впаиваю на соплях кварц 4 МГц вместо 16 - дескрипторы считываются. Нехорошие люди! Не матросы! В errata вписать это они поленились. В этом же документе в перечислении допустимых частот ссылку на это ограничение дать они поленились. А мне теперь или срочно искать кварцы 4 МГц или делать оснастку для подлючения SWD через иглы. Повезло, что партия изделий всего 30 шт. и иглы есть в столе и лишняя плата в качестве основания с отверстиями под разъем SWD. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 5 12 декабря, 2020 Опубликовано 12 декабря, 2020 · Жалоба Разве STM32F070 поддерживает заводской бутлоадер с USB ? В даташите загрузка только с уарта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 63 12 декабря, 2020 Опубликовано 12 декабря, 2020 · Жалоба 7 minutes ago, Сергей Борщ said: Разработал устройство на STM32F070 c USB. Это у STM такая тенденция что ли пошла с каждым разом все хуже и хуже ? Или это у всех производителей так ? Столкнулся с такой ситуацией. STM32H743. В корпусе LQFP-176 заводской загрузчик по UART работает. В корпусе LQFP-144 заводской загрузчик похоже вообще отсутствуют. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 190 12 декабря, 2020 Опубликовано 12 декабря, 2020 · Жалоба Спасибо за бдительность! 31 минуту назад, Сергей Борщ сказал: ...в разделе "Bootloader version" в таблице в колонке "Known limitation" написано... Т.е., насколько я понял, они при запуске загрузчика включают HSI (вернее, он уже включен). А потом, средствами RCC-контроллера, смотрят на точность внешнего клока? Типа проверяют есть ли он вообще и насколько точен? И, таким образом, из-за запоротого триммера им всякая частота (внешняя) кажется неточной и соответственно загрузчик не работает? 31 минуту назад, Сергей Борщ сказал: А мне теперь или срочно искать кварцы 4 МГц или делать оснастку для подлючения SWD через иглы... PLS-ка обычная, не? Если так, то в таких случаях я бы просто сделал ответку на штырях PLS, вставлял колодку в плату и наклонял ее. От загиба обеспечивается плотный и надежный контакт на время удержания. Для прошивки этого вполне хватит. 30 штук это еще не страшно 34 минуты назад, Сергей Борщ сказал: Нехорошие люди! Не матросы! Это да. У STM всегда все было как-то через одно место Но есть у них одно неоспоримое преимущество - низкая цена. У меня только из-за этого очевидный выбор в их пользу в большинстве случаев. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 143 12 декабря, 2020 Опубликовано 12 декабря, 2020 · Жалоба 1 час назад, Lmx2315 сказал: Разве STM32F070 поддерживает заводской бутлоадер с USB ? В даташите загрузка только с уарта. В datasheet вообще про загрузку ничего не нашел, а в руководстве пользователя: Цитата Embedded boot loader The embedded boot loader is located in the System memory, programmed by ST during production. It is used to reprogram the Flash memory using one of the following serial interfaces: USART on pins PA14/PA15 or PA9/PA10 I2C on pins PB6/PB7 ( STM32F070xx and STM32F030xC devices only) USB DFU interface (STM32F070xx devices only) 1 час назад, Arlleex сказал: Т.е., насколько я понял, они при запуске загрузчика включают HSI (вернее, он уже включен). А потом, средствами RCC-контроллера, смотрят на точность внешнего клока? Типа проверяют есть ли он вообще и насколько точен? Я так понимаю, что сравнивая с частотой HSI они примерно прикидывают, на какую из допустимых частота HSE больше всего похожа и дальше настраивают PLL на работу от кварца этой частоты. А поскольку частоту HSI они в процессе запуска загрузчика сами же и портят - то 16 МГц ошибочно определяют как 18 и вместо 48 МГц на выходе PLL получают 42.6. Поэтому USB и не заводится. В остальных контроллерах F0 с USB есть система подстройки HSI от SOF, в них заводской загрузчик HSE не использует. 1 час назад, Arlleex сказал: PLS-ка обычная, не? PLD c шагом 1.27. Я таких не использую, в закромах ничего похожено нет. Пока вышел из положения так (у китайцев подпружиненные иголки дешевы, поэтому есть некоторый запас на такой пожарный случай): В понедельник буду искать кварцы по знакомым, потому что производить весь процесс программирования и проверки при помощи одного кабеля USB удобнее. 1 час назад, dimka76 сказал: В корпусе LQFP-144 заводской загрузчик похоже вообще отсутствуют. Это легко проверить. Адреса, по которым он расположен, описаны. Прочитать память по этим адресам отладчиком несложно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 63 12 декабря, 2020 Опубликовано 12 декабря, 2020 · Жалоба 15 minutes ago, Сергей Борщ said: Это легко проверить. Адреса, по которым он расположен, описаны. Прочитать память по этим адресам отладчиком несложно. Так и сделал. И обнаружил его отсутствие ))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 54 14 декабря, 2020 Опубликовано 14 декабря, 2020 · Жалоба 12.12.2020 в 22:51, dimka76 сказал: Так и сделал. И обнаружил его отсутствие ))) А в чем прикол этого загрузчика? Подобные камни всегда через swd прошивал, уж точно знаю, что если камень жив, то уж прошьется обязательно, а тут как и следовало - лотерея... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 14 декабря, 2020 Опубликовано 14 декабря, 2020 · Жалоба 5 minutes ago, mantech said: А в чем прикол этого загрузчика? Прикол в том, что при 20 пинах SWD может оказаться непозволительной роскошью. Заодно работа интерфейса проверяется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrBearManul 0 14 декабря, 2020 Опубликовано 14 декабря, 2020 (изменено) · Жалоба 22 минуты назад, mantech сказал: А в чем прикол этого загрузчика? Через него можно обновлять прошивку периферийных плат с главной платы, не выдумывая свой протокол и загрузчик. Единственный, ИМХО, минус - могут стянуть прошивку) Изменено 14 декабря, 2020 пользователем MrBearManul Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vasily_ 59 14 декабря, 2020 Опубликовано 14 декабря, 2020 · Жалоба 14 минут назад, aaarrr сказал: Прикол в том, что при 20 пинах SWD может оказаться непозволительной роскошью. STM32H743 20 пинов, что-то новенькое. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 14 декабря, 2020 Опубликовано 14 декабря, 2020 · Жалоба 11 minutes ago, Vasily_ said: STM32H743 Где? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrBearManul 0 14 декабря, 2020 Опубликовано 14 декабря, 2020 (изменено) · Жалоба 12 минут назад, Vasily_ сказал: STM32H743 20 пинов, что-то новенькое. Простите, в теме указан STM32F070. Ой, ошибся. Сорри. Изменено 14 декабря, 2020 пользователем MrBearManul Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 54 14 декабря, 2020 Опубликовано 14 декабря, 2020 · Жалоба 30 минут назад, aaarrr сказал: Прикол в том, что при 20 пинах SWD может оказаться непозволительной роскошью. Причем тут 20 пин, это в смысле житаг стандартный чтоль? Всегда 4 пинов хватало, ресет, дата, клок и общая... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 14 декабря, 2020 Опубликовано 14 декабря, 2020 · Жалоба 12.12.2020 в 22:35, Сергей Борщ сказал: Я так понимаю, что сравнивая с частотой HSI они примерно прикидывают, на какую из допустимых частота HSE больше всего похожа и дальше настраивают PLL на работу от кварца этой частоты. А поскольку частоту HSI они в процессе запуска загрузчика сами же и портят - то 16 МГц ошибочно определяют как 18 и вместо 48 МГц на выходе PLL получают 42.6. Поэтому USB и не заводится. Не, просто не находит частоты из списка. И не настраивается на загрузку по USB. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 14 декабря, 2020 Опубликовано 14 декабря, 2020 · Жалоба 1 minute ago, mantech said: Причем тут 20 пин У МК 20 пинов. SWD - это 18% от IO. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться