-
Постов
10 905 -
Зарегистрирован
-
Посещение
-
Победитель дней
31
Весь контент Сергей Борщ
-
Сказали "A" - говорите "Б". Так "нае..." или вы набросили специально, чтобы осадочек остался даже если ложечки найдутся?
- 41 ответ
-
- 1
-
-
Портирование проекта (IAR-STM32IDE)
Сергей Борщ ответил addi II тема в Программирование
Вы серьезно пишете программу и не разу не открывали руководство пользователя? Потому что ответ на ваш вопрос содержится в начале буквально каждого раздела ... -
RCREG4;
-
Таймер и output compare (STM32F7)
Сергей Борщ ответил natsu тема в STM
Про "сразу" там ничего не сказано. Сказано, установка произойдет от внешнего триггера. Не работал с этим режимом, подробностей не знаю. -
Тут в одной группе в телеге проскакивала книга Гомоюнов К.К. Транзисторные цепи. - СПб.: БХВ - Петербург, 2002. - 240 с. Народ был в восторге.
-
Это же GD32, у него память отдельно, при старте перегружается в теневое ОЗУ. Дальше работата идет из ОЗУ без задержек.
-
Если есть необходимость, чтобы никто не докопался: Eclipse + sdcc. Пробовал очень давно, переход по сообщениям об ошибках был недоделан и в компиляторе ошибки были, но их можно было обойти. Наверняка с тех пор стало лучше. Ну а если необходимости нет - среди трофеев есть вполне приличные экземпляры. Симулятор в Кейле был очень достойный еще 20 лет назад - позволял вывести УАПП симулируемой программы прямо в COM-порт машины, на которой запущен и отлаживаться с живыми данными.
-
OTG хост обязан выдавать не менее 8 мА. Может стоит почитать стандарт на OTG и там будет какая-то информация о том, как это реализовать?
-
Рубить питание и на пересдачу.
-
Как правильно заметил rkit, обесточенный двигатель всегда находится в положении полного шага. Большинство (все не щупал) драйверов при включении питания устанавливаются в совершенно конкретное положение, соответствующее в их системе понятий шагу 0. То есть рассогласование может быть только до первого выключения/включения, далее двигатели будут вращаться синхронно.
-
STM32G030J6M6 не работает EXTI
Сергей Борщ ответил getshket тема в STM
Если посмотреть на картинку блока EXTI (смотрю в документации на первый попавшийся F4xx, помню, что у остальных было так же и сомневаюсь, что у G0xx будет иначе) - то там прекрасно видно, что IMR запрещает выставление флага в IPR и вызов прерывания. А вот выход из энергосбережения идет напрямую. То есть в зависимости от IMR вы можете либо попасть в прерывание EXTI при просыпании либо программа просто пойдет работать дальше, но без записи 1 в соответствующий бит EXTI вы ни прерывания ни флага не получите. Добавлено: не поленился, открыл руководство на G0x0 - картинка сложнее, но идея та же. -
Подводя итог: что-то непропаяно было во второй плате, хотя прозванивал несколько раз. Сейчас на второй плате все летает как USB high-speed c настройками скорости ног ULPI и HIGH и VERY_HIGH и MEDIUM, на первой так и не работает, но это цель дальнейших исследований. Чтобы USB334x определялся как high-speed нужно в регистре DCFG выставить в 1 бит XCVRDLY. Без этого оно определяется как full-speed (причина описана в errata USB3340, решение найдено на буржуйских форумах). Для F2xx, F4xx, F7xx все то же самое, причем этот бит в заголовочном файле CMSIS не описан, хотя в руководстве пользователя F7xx, H7xx он есть. И еще: Это тоже работает в H725. Вдруг кому-то пригодится диагностировать...
-
Плавный переход C -> C++ под МК
Сергей Борщ ответил Arlleex тема в Программирование
Я ставлю массив размером 0. Тогда предупреждений нет. -
Как зарезервировать страницу памяти в середине кода
Сергей Борщ ответил Ivan. тема в STM
Простите, что со своим самоваром встреваю, но в первой странице-двух располагаю загрузчик, позволяющий передавать заказчику зашифрованный образ обновленной прошивки и заливать его через имеющийся интерфейс (а не тот, который решили использовать ST), далее еще один маленький сектор на настройки и все остальное под рабочую программу, ей уже все равно, какого размера сектора. -
Я не знаком с этим контроллером, но может ему надо периодически ставить в очередь команду вроде Get_status?
-
Ну кто бы мог подумать, что выводам ULPI надо настраивать скорость не VERY_HIGH, а HIGH... Теперь мой код тоже определяется компом как неотвечающее low-speed устройство. Ну хоть какой-то прогресс...
-
Такс, стоило написать на форум и есть подвижка - код куба, естественно, не трогает ногу RESET физики. Дописал ее отпускание после настройки MCO2 и появилась какая-то жизнь. Код больше не виснет на сбросе, доходит до главного цикла в main(). Тот неописанный регистр ведет себя так же, как в моей программе, видимо в нем что-то поменяли. Но хоть какая-то жизнь есть - комп находит low-speed устройство, из которого ничего не может вычитать. Буду копать свой код дальше...
-
STM32H725 в LQFP100 кто-то запускал с внешней физикой USB-HS (ULPI)?
Сергей Борщ опубликовал тема в STM
Отладил макет на лежавшей в тумбочке Nucleo-F767 и USB3340 "на проводах". Все запустилось на самописном стеке USB, который плавно мигрировал с F407 на F207, F107, теперь вот и на встроенной физике F767 взлетел, а потом и на внешней. Пришло время делать рабочую конструкцию, посмотрел доступность F767 - прослезился в том числе и от цен. Решил поставить H725 - "модно, стильно молодежно", дешевле вдвое и USB, на первый взгляд, такой же. Получил платы, распаял, переписал тактирование - а фиг, реакции на втыкание кабеля USB никакой. Нашел в интернете упоминание файла из примеров куба, в котором используется обращение к недокументированному регистру F4xx, F7xx для доступа к регистрам физики. Проверил на F767 - да, Vendor ID из физики вычитывается. Попробовал на своей плате с H725 - фиг, в регистре взводится флаг BUSY и все, а должен потом упасть и взвестись DONE. Уже дня четыре бьюсь -- схему проверил, дорожки прозвонил, микросхему физики менял местами с рабочей, которая к Nucleo-F767 подпаяна была, вторую такую же плату собрал - она ведет себя точно так же. Наблюдаю только 60 МГц на ULPI_CK, постоянные уровни на D0-D7, низкие на ULPI_DIR, ULPI_NXT и пачки импульсов на ULPI_STP. Проверил правильность включения ключей на PC2_C, PC3_C, настройку ног. Уже не знаю, куда копать дальше. От отчаяния скачал/поставил куб, создал а нем проект с одним USB DEVICE CDC_ACM, настроил MCO2 на выдачу необходимых физике 12 МГц, прошил - этот проект валится на USB_CoreReset() - выставляет CSRST и не может дождаться его сброса. В errata про USB ни слова. Встречал упоминания, что у людей работает внешняя физика на H740, подумал купить его - так у него ноги не совпадают, на каждой стороне все нужные ноги включая питание туда-сюда на одну смещены... Собственно вопрос - кто-то запускал H725 с внешней ULPI-физикой? Может я зря трачу время и оно в принципе неработоспособно? -
Checksum GD32f107 Ethernet LWIP
Сергей Борщ ответил BALDA тема в ARM, 32bit
Вставлял. Но когда оборачивал в сворачиваемую форму оно потерялось. Исправил. -
Checksum GD32f107 Ethernet LWIP
Сергей Борщ ответил BALDA тема в ARM, 32bit
у меня в lwipopts.h стоит такое: Дальше ищите в исходниках "CHECKSUM_GEN" и "CHECKSUM_CHECK". И не забывайте, что может работать или одно, или другое. То есть если вы включаете программный подсчет, то аппаратный обязаны выключить и наоборот. -
Если в STM32WLEx отвалился SPI, на котром висит радио...
Сергей Борщ опубликовал тема в STM
То это "случайно, при невыясненных обстоятельствах в недокументированной области Option Bytes сбросился битик-рудимент от STM32WL55". В эррате этого (пока?) нет. Вдруг кому-то пригодится... https://community.st.com/t5/stm32-mcus/stm32wl55-and-stm32wle5-radio-timeout-issues-a-technical-faq-on/ta-p/615640 Кого не пускают - это бит SUBGHZSPISD из документации на STM32WL55 (бит 31 по адресу 0x1FFF7870) -
Не знаю, как насчет светодиодов, но две лампы накаливания по 50 Вт светят тусклее, чем одна на 100 Вт, потому что у них ниже температура спирали.
-
Плавный переход C -> C++ под МК
Сергей Борщ ответил Arlleex тема в Программирование
Это я писал из головы и не успел исправить (отвлекли). struct sTxMsgCommand { u32 cmd, crc; }; using sTxMsgRequest = sTxMsgCommand; -
Плавный переход C -> C++ под МК
Сергей Борщ ответил Arlleex тема в Программирование
Да, писал из головы :) -
Плавный переход C -> C++ под МК
Сергей Борщ ответил Arlleex тема в Программирование
using тут не нужен. Он немного для другого: struct { u32 cmd, crc; } sTxMsgCommand; using sTxMsgRequest sTxMsgCommand;