Комментарии 19
Непонятно, что экзотического в шаге 1,27мм? Вроде стандарт...
На прошлой работе в командировке видел, как такие вилки запаивали с помощью газовой турбо зажигалки.
Для разъёмов 1,27мм нет покупных перемычек на 2,54мм.
Шлейф приходится делать самому из непонятно чего.
Другой вопрос, что ждать оттуда доставки замучаешься, а теперь я вообще не могу понять, каким образом можно ускорить эту самую доставку — раньше можно было при необходимости выбрать вместо непонятного метода по умолчанию AliExpress Standard Shipping, заплатив за него, а теперь в новом интерфейсе такой возможности нет вообще. Или вот для этого товара доступна доставка в пункт выдачи, и там среди прочего есть доставка в Пятёрочку — но почему-то для выбора доступны далеко не все их точки (насколько я понимаю, это происходит, если тип доставки AliExpress Saver Shipping, но переключиться на Standard, где можно выбрать нужную мне Пятёрочку, нет возможности). Не знаю, получится ли при таком способе заказать доставку в какую-нибудь Пятёрочку из доступных для выбора, а потом через приложение 5Post переадресовать доставку в другую (вроде бы такая услуга там есть).
Это не то. Тут 3 пина в ряд.
Надо 4 пина в ряд.
Там вообще-то куча вариантов (правда, все 2-рядные — один ряд будет просто висеть в воздухе).

Ну и вариант с заказом через AliExpress Saver Shipping в какую попало «Пятёрочку», а потом переадресацией в нужную, похоже, таки работает (как раз только что пришло оповещение о доставке заказа). Правда, некоторые продавцы таки ухитряются при таком заказе написать «извините, у нас не получилось» и отправить посылку через почту.
С STM32 на самом деле проще всего работать.
Вот TI сложнее. Там, например, настройки кварца хранятся в Flash памяти.
Прописал неправильный бинарный конфиг и прошивка не стартует при пере сбросе питания. При этом пошаговая отладка работает.
STM32 это начальный базовый уровень для абсолютных beginner(ов). Для STM32 можно написать прошивку даже сидя в боксерских перчатках.
Современные же сложные проекты делают на многоядерных микроконтроллерах с PowerPC внутри. Или на nRFx, TI.
Впрочем, речь не об том. Пастильда из статьи основана на STM32 и не имеет каких-то особенностей по сравнению с любым другим микроконтроллером STM32. Те же потенциальные проблемы, те же способы, те же программы. Акцент именно на пастильду не нужен.
С пином PA9 там печальная ситуация, описанная в блоге разработчика на Хабре — разработчик железа понадеялся на надпись “5V Tolerant” в даташите и подключил PA9 напрямую к VBUS, не прочитав полностью AN4879 и упомянутую там статью Management of VBUS sensing for USB device design (на самом деле там нужен был делитель напряжения, либо, поскольку встроенного источника питания в устройстве нет, можно было не подключать этот пин вообще, а вместо этого отключить определение наличия VBUS при настройке контроллера USB). Из-за этого даже использование встроенного загрузчика STM32F405 (который можно было бы активировать замыканием площадок BOOT0 и 3.3V, специально для этого выведенных на другой край платы, и не заниматься описанной вознёй с SWD) чревато выгоранием чипа (во вторичном загрузчике и оригинальной прошивке там поставлен костыль в виде настройки PA9 на вход, но во встроенном загрузчике этот пин используется как выход USART1_TX, и с этим уже ничего не сделать).

Я перегрыз pin42 (Vbat) PA9. Однако это окирпичивание Пастильды не решило. Подаешь питание на Пастильду и прошивка не запускается. RST пин при этом OK (в 3,2V)
Пошаговая отладка работает. Первичный загрузчик работает (если только записать его на чисты чип STM32).
Если прошить *.hex вторичного загрузчика после первичного, то прошившись, вторичный загрузчик запускается, но после пере сброса питания первичный загрузчик не запускается. И Пастильда устройство становится тыквой. Тут даже USB еще не инициировалось. Всё виснет на этапе загрузчиков.
А бит NOVBUSSENS
в регистре OTG_FS_GCCFG
где-то ставится? Вообще не вижу в исходниках прошивки, где там что-либо делается с регистром GCCFG
именно для OTG_FS
(для OTG_HS
, который работает в режиме хоста, это делается в emb/src/libusbhost/libusbhost/usbh_lld_stm32f4.c
). Возможно, прошивка рассчитывает на то, что этот регистр будет устанавливаться в загрузчике, но исходники загрузчика там неполные (для его сборки предлагается использовать какую-то неведомую EmBitz IDE, возможно, библиотеки для работы с USB берутся оттуда).
исходники загрузчика там неполные
Они прибегли к OpenSourse загрузчику OpenBLT
https://www.feaser.com/openblt/doku.php
http://microsin.net/programming/arm/openblt-bootloader.html
Вот в https://github.com/feaser/openblt есть несколько реализаций функции UsbInit()
, а в репозитории https://bitbucket.org/thirdpin_team/pastilda/ я её не нашёл ни в нём самом, ни в каком-либо из субмодулей. Каким образом этот исходник в таком случае должен собираться — непонятно.
Поискал, что же такое EmBitz IDE — там всё печально:
Как некоторые уже вероятно успели заметить, сайт сей чудной проги из России больше не открывается, а сама прога падает при запуске на русской локали (и, судя по коду, на китайской). Я бы задумался, стоит ли пользоваться программой, автор которой может чуть что подложить в нее подлянку.

Да, разработчики Пастильды r1.1 забыли поставить делитель напряжения на (PA9)VBus. Поэтому и не работает.
подключить логический анализатор Seleae к шине SWD и посмотреть на какой фазе пропадает SWD Link. И вдруг неожиданный образом появился стабильный SWD Link! Даже на максимальной битовой скорости в 4MHz. Причем сам логический анализатор можно даже не подключать к USB V3. и достаточно насадить щуп только на провод SWCLK и GND
входы китайского Seleae (основе чипа CY-что-то там) если не ошибаюсь - не плохо так подтянуты к питанию, у меня через них даже что то запускалось :)
Как Перепрошить Пастильду