Вот решил таки познакомится я с стмками, т.к. подогнали мне всем знакомый нубский наборчик
Качнул CubeMX и VisualGDB( я прогер, поэтому мне привычней юзать visual studio для всего), решил usb-шный проектить замутить, во первых т.к. кое что надо, да и люблю с юсб возиться(был большой опыт на пиках)
Настроил и сгенерил проект для usb (там по умолчанию HID мышка почти готовая) - всё ок - скомпилил - залил - работает.
Но тут нарисовалась проблема. Когда подключен программатор и одновременно воткнуть кабель USB - всё работает и в системе появляется мышь - как только программатор отключаю, перетыкаю usb - всё пипец - неизвестное устройство.
Из переделок - только допаял 1.5к резистор прям поверх платы между PA12 (usb DPLUS) и 3.3 в - т.к. вычитал, что на этой плате китайцы косячат и вместо 1.5к впаивают 10k - проверил у себя да действительно 10ка стоит вместо 1.5ки - поэтому и допаял в паралель.
Ради прикола у программатора убрал SWD ноги - ток питание оставил - работает.
Т.е. если питание на плате уже есть - инициализация устройства происходит нормально - если же устройство питается от юсб - т.е. питание возникает в момент подключения - получаем неизвестное устройство
Что надо дописать(или можт опять косяк на плате какой), чтоб было хорошо
Добавлено after 29 minutes 30 seconds: Ха, это происходит из-за того, что я включил часы реально времени тактируемые от внешнего генератора. Если выключить RTC или включить от внутреннего или выбрать от внешнего но указать BYPASS Clock Source(хз что это) - то всё работает. Ещё есть подозрение что лампочка на плате висит на PC13 - а это какой то там тампер для RTC.... Может гуру объяснят из-за чего именно такое могло происходить
на этой плате китайцы косячат и вместо 1.5к впаивают 10k - проверил у себя да действительно 10ка стоит вместо 1.5ки
Обычно из-за этого проблем не возникает.
На запуск часового кварца нужно время. Можно разрешить работу кварца, но не ждать пока запустится, а вместо этого настроить прерывание от RCC и при RCC_IT_LSERDY переключать RTC на кварц.
Если еще актуально, то "пипец, неизвестное устройство" может выскакивать, если USB девайс не ответил в течении 100мс после запроса компа. А комп запрашивает устройство сразу как заметилл пуллап на шине. Так что, вероятнее, надо укоротить процедуры инициализации, чтобы старт был побыстрее. Или добавить отдельную цепь отключающую и подключающую этот резистор "1.5к" и подключать его только после инициализации.
_________________ А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Забыл отписаться - проблема давным давно решилась! Собственно дело в том что visualGDB гамно! VisualGDB имеет свои репозитории поддержки stm и при выборе проекта качает тулчейны и библиотеки - которые отстают версиями от тех, что идут вместе с CubeMX. Это только первый звоночек. Дык вот когда вы импортируете проект из куба - получаются у вас 2 версии хедеров - те хедеры, которые лежат вместе с проектом и те, которые лежат в папках визуалгдб(и пути к ним тоже прописаны). При компиляции происходит лютый капец - половина файлов запросто может взяться из локальных исходников, а половина из визуалгдб. Разные версии, разные объявления структур, сишники из одного места а хедеры из другого - короче треш.
Конкретно в моей ситуации - компиль брал хедер описания usb дескриптеров не из моего проекта, а левый для одного сишника, а для другого правильный - и там было ещё доп поле, которое не было проинициализировано, а проинициализировать его невозможно, т.к. инициализация идет внутри правильного сишника с правильным хедером где его(этого поля) нет! А винда этот дескриптер запрашивает почему-то только в случае когда устройство не существовало никогда - естественно всё валилось. В последующие разы не запрашивает - поэтому-то со второго раза(когда второй раз вставляешь) всё и работало.
Короче ребята из визуалгдб - перехитрили сами себя - в погоне за автоматизацией(что типа нажал кнопку и всё скачалось и компилится) нарубили дров. У меня, как проф программера(софтверника с огромным стажем) волосы шевелились во всех местах, когда я полез изучать потроха визуалгдб.
НИКОГДА, никогда не используйте - эту поделку, слишком много косяков, слишком много корявостей(а уж визуал студию я знаю изнутри, т.е. знаю и разрабытывал расширения и проектные системы для MVS), слишком много "под капотом", на которое не повлияешь никак - короче нафиг.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения