- Говорила мне мама: "Не используй NRST как GPIO!" А я не послушался.
CH32V006E8R6. Nikolay_Po(970 знак., Вчера, 18:34, ARM, полностью)
- Продвинулся.
Оказалось, в заголовочном файле для FLASH у китайцев - не
верное определение бит состояния "сброс выключен". Заменил на нули
- стало нормально. Записалось как надо! Но пока выход не работает. Завтра продолжу
эксперименты. Nikolay_Po(293 знак., Вчера, 23:35)
- как в тему:"говогива мне мама..." собирал выбитые зубы сломанными
руками. ;О) - mse homjak(Вчера, 19:33)
- Удалось окирпичить! Поставил точку останова после стирания Option
Bytes и дал команду отладки "Перезапуск со сбросом". И всё. Даже
после успешного стирания "всего" через меню настроек
программирования. Nikolay_Po(8191 знак., Вчера, 19:24, ссылка)
- у STM32G031 всё номрально проходило с NRST как GPIO - Лaгyнoв(Вчера, 19:15)
- Чаще всего выход управления NRST в программаторе сделан как open
drain, и если у вас на плате сильная подтяжка к земле, то конечно
программатор своим OD ничего нормального сделать не может, там и
так активный сигнал сброса. - Ralex(Вчера, 18:42)
- Сражение с кастрированной версией - CH32V003J4M6 продолжилось :)
Таки выдавил из дипсика нужное заклинание чтобы сделать доступным
на вывод пин PA2. "Вам нужно не только переключиться на HSI, но и
принудительно сбросить бит PA12_RM" Так проще оказалось, чем
разгребать мутную китайскую доку, где о тонкостях, касающихся
именно этого чипа, больше чем ничего... Гyдвин(1 знак., 31.03.2026 18:10, ARM, картинка, полностью)
- Этта.. В процессе дебужэнья, окирпичил CH32V303. При попытке чота
сделать, пишет, что запротекчен. Выпаивать чота лень, т.к. вокруг
много всякого. Пробовал эразить через сброс, нихт арбайтен.
Посмотрел, через выключение питалова, пропадает тока 5В на
программаторе. девайс 3-вольтоывй, а 3В стоит без просадок.
Кто-нить такие поделия реанимировал? - mse homjak(26.03.2026 11:30, ARM, полностью)
- Кароч, перетёр с Гуглом о грехах наших тяжких и пришли к выводу,
что нутряная программа срабатывает быстрее программатора и получает
доступ к ресурсам мк. Что неудивительно, на 144МГц-то. Решение
предложэно такое: подтянуть бут0 на "+", программа зависнет в
загрузчике и тут её насунуть программатором. Попробую. - mse homjak(27.03.2026 23:36)
- Что-то не то. Стартует он на HSI, и точно не на 144 МГц. И ни
генератор, ни внешний кварц не нужен для того, чтобы прошить V303.
Да, конечно, работать не будет если в прошивке внешний кварц, а его
на плате нет и настройки это не предусматривают. Удивлен
прочитанным, уже года три в двух проектах V303, по-всякому кручу и
дебажу, ничего подобного не наблюдал. Всякое было, но всегда
поднимается через стирание программатором через WCH-линкутилиту. - petrd(30.03.2026 13:40)
- Кварц замкнуть/оторвать не помогает стиранию? - LightElf(27.03.2026 22:41)
- В программаторе ключик в КЗ ушёл? У меня, вроде, 3.3В честно падает
(но могу наврать, специально не проверял). - Nikolay_Po(26.03.2026 14:16)
- WCH-LinkUtility в него тыкали? - VladislavS.(26.03.2026 12:56)
- таки успел к новому году закрыть маленький гештальт (заноза в
заднице) - допилл свой порт FreeRTOS для qkV4f - реализовано
ленивое сохранение контекста fpu. время при переключении тратится
только если таска испачкала регистры fpu. klen(115 знак., 27.12.2025 00:18, ARM, ссылка, полностью, +1)
- STM32F103RBT когда ремапишь USART3 (асинхронный) с PB10, PB11 на
PC10, PC11 и одновременно используешь PC12 как выход - не работает
прерывание USART RXNE. Передача работает. Если вывод
сконфигурировать как вход то все работает. _werwolf_(2729 знак., 20.03.2026 11:40, ARM, полностью)
- RISC-V QingKe-V4C. Как воспользоваться инструкциями атомарного
доступа? Нужно взвести/сбросить бит в регистре периферии, при этом,
сброс/взведение бита в обычном случае - это R-M-W, которые могут
быть прерваны другим процессом, чего хотелось бы избежать без
блокировки прерываний. Nikolay_Po(841 знак., 10.03.2026 01:14, ARM, полностью)
- ЕМНИП, исходно это аналог армовых LDREX/STREX. Но китайцы
пожалели один триггер их упростили до обычных load/store. Смысла использовать никакого
нет, кроме необходимости использовать чужие бинарники. - LightElf(10.03.2026 21:06)
- А что за подопытный, можете точнее сказать? Хоть и не использую, но
любопытно. UPD: Если это CH32V.. - то в CH32xRM.PDF описано всё.
MODE имеет два бита в любом случае, придётся городить что-то вроде
семафора; и да - BRy BSy влияют только на ODR (Output data regiser)
:o( - Dingo(10.03.2026 18:30)
- Сам с архитектурой не работал, вот болванчик что сказал: Dingo(2 знак., 10.03.2026 13:40, картинка, картинка)
- Глобально запретить прерывания в QingKe-V4C через CSR достаточно
быстро должно быть. VladislavS.(357 знак., 10.03.2026 12:36)
- Вот как используются нормальные, не упрощённые инструкции
Load+Reserve (lr) и Store Conditional (sc): Nikolay_Po(1116 знак., 10.03.2026 01:37, ссылка)
- А почему нельзя в прерывании ставить флаг, а в суперлупе менять? - Eddy_Em(10.03.2026 01:20)
- Цукабдь!!! Который раз упарываюсь черепом. mse homjak(664 знак., 04.03.2026 16:38, ARM, полностью, +1)
- Нужно передать произвольный кадр ETHERNET без LWIP через функцию
(HAL_ETH_Transmit) - Ни у кого нет примера? Трудности с заполнением
структуры hetc - Balda(25.02.2026 10:03, ARM, полностью)
- ... Думал так все сложно.. Оказалось по Дескриптеру указателя
буфера передачи закатать данные и все.. Ушло.. Во бля, думал опять
на неделю зависну.. Только вопрос в контр сумме фрейма. Не пойму
самому считать или мак за меня сделает.. - Balda(28.02.2026 10:49)
- Гопота codex великолепно справляется с задачами по LWIP. - POV(25.02.2026 10:20)
- Спасибо за наводку! Эта софтина за 5 минут поправила проект, на
который я все выходные положил безуспешно. За такое, пожалуй, и
двадцатку не жалко. - vesago(02.03.2026 09:24)
- Это что значит, можно поподробнее? - Balda(25.02.2026 10:25)
- Ну я пользуюсь CursorAI. Если агента GPT-5.3 Codex (или помладше)
активировать и давать задачи - с первого справляется почти со всем.
А если уж логи стека активировать, то вообще без проблем по их
анализу. POV(1 знак., 25.02.2026 10:28, картинка)
- Блин, еще и с этим разбираться... Не потяну я.. - Balda(25.02.2026 10:38)
- Там не надо ни с чем разбираться. Открываешь свой проект, пишешь
что надо сделать. Он в реальном времени вносит правки, их сразу
видно, что куда он написал. К примеру мне недавно CursorAI написал
минуты за 2 с нуля модуль FTP-сервера под мои требования. При этом
обозвал функции в моём стиле, модуль сам подключил к проекту,
вставил где нужно инициализацию, увидел, что у меня в проекте есть
Firewall, добавил туда пункт для FTP, изменил настройки, подправил
Web-интерфейс. После FDA(545 знак., 28.02.2026 18:51)
- Как-то (может и не здесь) была тема про некую особость выводов
STM32 которые для кварца 32768. Это РС14 и РС15. Они какие-то
ненастоящие дял ввода/вывода? Дохлые? Короче сейчас у меня это
просто вход. От оптрона. Выход оптрона подтянут к 3В через 3,3К. С
него на вход МК последовательный резистор 300 Ом. И параллельно
входу 1000пФ. С той стороны оптрона выход другого устройства.
Сейчас на стенде это 1 метр. И вот работало-работало пару недель и
бац. Не видит импульсов (там Лaгyнoв(334 знак., 27.02.2026 09:46, ARM, полностью)
- Столкнулся с проблемой использования встроенного I2C у Artery
AT32F407 Мне нужно передать данные сперва по одному адресу, потом
по другому. Работу веду по прерываниям. Первая порция передается
нормально, а дальше начинаются проблемы. Генерить рестарт на шине
модуль I2C не умеет, генерить стоп тоже проблема, вместо этого
предлагается еще раз генерить старт. Я так и делаю, но после этого
начинаются чудеса. Первый байт (адрес с битом направления передачи)
передается, а дальше AlexBi(436 знак., 14.02.2026 22:53, ARM, полностью)
- UPD:
В результате некоторого количества экспериментов пришел к
такому решению: после передачи передачи байта второго адреса опять
заставляю выдать старт, после которого опять передаю второй адрес,
дальше вторая порция данных нормально выдается. Нашел более правильный вариант, оказалось, что после установки
бита команды на передачу старта по непонятной причине
устанавливался бит приема байта, т.е. признак того, что что-то
принято. Пока этот принятый байт AlexBi(677 знак., 19.02.2026 14:46)
- C i2c какой то вселенский заговор. Редко где нормально работающий
аппаратный модуль а у китайцев - так и вовсе безглючных похоже нет.
Я теперь когда о новом устройстве думаю исключаю i2c как класс если
условия использования не дают возможности реализовать обмен
ногодрыгом, все стараюсь посадить на spi. - 3m(17.02.2026 15:12)
- Ну как же? У всех STM32, кроме F103, нормальный I2C. Разве что,
конечно, алгоритм идиотский: даже используя DMA, все равно нужно
провести часть работы вручную… - Eddy_Em(18.02.2026 08:38)
- НетЬ. У всех STM32 убогий I2C c теми или иными багами. Вообще у STM
нет ни одного прямого периферийного узла. UART, таймеры, SPI -
везде говнеца подложено. Но дешево и популярно, не отнять. - LightElf(18.02.2026 15:15)
- Убогий i2c в stm32 не у всех а только у стареньких которые китайцы
и клонировали. В серии STM32G i2c работает как автомат калашникова и даже по dma! Но в войну
такое не для россиянцев. А у китайпрома все даже хуже чем в f103
(Puya, %ля!) - 3m(25.02.2026 14:59)
- Ну, ХЗ, где вы там баги находите. STM32F0 - все отлично,
контроллеры термодатчиков TSYS01 на БТА уже восемь лет работают (по
16 датчиков на контроллер). На F303 тоже никаких проблем.
Единственно, нужно питание всякой шушеры через p-канальный мосфет
вешать, т.к. бывают некоторые убогие датчики, которые SCL или DAT
подвешивают вусмерть. Eddy_Em(180 знак., 18.02.2026 15:54)
- С СПИ, особенно. Как там аппаратный НСС поживает? - mse homjak(18.02.2026 16:30)
- Без понятия, я slaveselect никогда не использую, потому как больше
одной железки на SPI не вешаю, ибо нефиг тут! - Eddy_Em(18.02.2026 17:18)
- Макароны тоже по одной штуке варите? :D - Ralex(18.02.2026 17:29)
- А у меня элементарно нет идей, какое нужно придумать устройство,
чтобы к нему больше одного датчика с SPI нужно было подключить! Вот
I2C куда как чаще встречается. По SPI разве что экранчик или
угловой энкодер. Ну вот делал платку для телескопа, которая с двух
энкодеров в два интерфейса USB данные передает, посадил каждый
энкодер на свой SPI, чтобы не мешали друг другу и можно было
параллельно читать. - Eddy_Em(18.02.2026 17:37)
- У меня 8шт ацп ads1220 и еще 3шт 74hc165 на одном spi. - 3m(25.02.2026 14:52)
- у мну на одном SPI 3 шт АЦП, на втором SPI - OLED, а на I2C вообще
свальный грех - еепром, датчик температуры, датчик атмосферного
давления, микросхема зарядки АКБ, микросхема счетчик
электроэнергии, короче картинка покажет Ralex(1 знак., 18.02.2026 17:47, картинка)
- Я предпочитаю брать один внешний АЦП и ставить три мультиплексора.
Есть хорошая методика, позволяющая практически к нулю свести
влияние мультиплексоров. Но в данном случае никакого аппаратного SS
не выйдет: их же аж три штуки надо! - Eddy_Em(18.02.2026 18:41)
- Бывают входы, на которые могут попадать произвольные посторонние
напряжения. В этом ключе, схема на одном АЦП уязвима - напряжение
вне диапазона сместит коммутатор и все каналы поплывут. Nikolay_Po(87 знак., 25.02.2026 15:33)
- Да дажэ с одним АЦП. С нормальным СПИ работать можно так, заряжаем
таймер на сэмплрейт, от него стартуем ДМА, которое пихает 16 бит в
СПИ и по прерыванию от окончания педерачи СПИ, вычитываем данные.
Что имеем с СТМ? Настраиваем таймер на сэмплрейт, по прерыванию
ручкаме машем портом НСС, запускаем СПИ(тут дажэ из прерывания нет
смысла выходить, накладные расходы на вход-выход примерно такого-жэ
порядка), отмахиваем НСС взад, вычитываем данные. Зокат солнца
вручную. И mse homjak(91 знак., 18.02.2026 20:45)
- SSM + SSI, и не нужно беспокоиться: Eddy_Em(118 знак., 18.02.2026 21:24)
- Из доков или сам так делал? Когда я озаботился и пару дней
подпрыгивал, находил по форумам советы бывалых. Они тожэ цытировали
ДШ, но в концэ приписывали, что НСС нужно, таки, махать вручную.
Ибо у СТМ лапки. - mse homjak(19.02.2026 10:19)
- железный NSS там (только!) для того, чтобы сказать STM'у, что он
больше не мастер. beefdeadbeef(94 знак., 19.02.2026 12:17)
- сомнительно - Ralex(19.02.2026 12:21)
- Ну, я тоже сомневался. А как до дела дошло - хрен вам, а не
аппаратный контроль. Чипов-то на линии мастера может быть много, на
кой хрен им аппаратный CS-выход, если одного всё равно не хватит?
Вот оно и не работает как выход. Мало того, в своих проектах я этот
вывод из работы исключю - есть непонятки, типа того, что даже когда
он не используется, и вдруг упадёт в ноль, то SPI принудительно
переводится в ведомого. Ну его нафиг. - Nikolay_Po(19.02.2026 12:42)
- rm0008 нам сообщает, что вот-де, "NSS management by hardware or
software for both master and slave: dynamic change beefdeadbeef(72 знак., 19.02.2026 12:31)
- Это, наверное, последние версии ДШ. В старых было расписано как
должно быть по жизни. А так, похожэ, что Томсоны купили задорого
часть периферии у какой-то конторы, с родственниками топов, в
учредителях. И, смешнее всего, что и китайцам пришлось тариться
периферией в том-жэ лабазе. Одно дело, когда в отзывах "залил
прошивку и сразу заработало" и другое "блин, они сделали правильный
СПИ, как теперь с этим жыдь?!!!111" - mse homjak(19.02.2026 16:54)
- Это я процитировал реальную строчку из рабочего кода. Не нужно им
"махать": один раз разрешил (SSI+SSM), и забыл! Eddy_Em(98 знак., 19.02.2026 10:51, ссылка)
- Это 3 АЦП с 8 входов каждый, при этом они работают как диф пары
поэтому 4 канала данных на 1 АЦП. А иногда не диф, тогда больше чем
4 канала, но зависимых. Если бы все 17 каналов измерений я одним
АЦП измерял, пришлось бы дольше усреднять (уменьшаем шум
усреднением). Мультиплексор применялся в предыдущей модели прибора,
но там было всего 7 каналов измерений, а тут 17. - Ralex(18.02.2026 18:50)
- негатив слейв селект? вери гуд, беттер зан евер :-P - Ralex(18.02.2026 16:39)
- в EFM32, КМК, хорош - Vit(18.02.2026 03:20)
- Ну не знаю прям, но никаких претензий к i2с что сделан в STM32L476.
Я им изначально пользовался через HAL. С 2016 года. Правда в
подавляющих случаях это ЕЕПРОМ. Но недавно стал и DS3231
опрашивать. Правда всё это - чисто ручками. Никаких прерываний или,
не дай бог, DMA. :-)) - Лaгyнoв(17.02.2026 16:51)
- болвана спрашивал? док ES0002 POV(1 знак., 14.02.2026 22:59, картинка)
- Высокая латентность вызова ioctl(hspi, SPI_IOC_MESSAGE(1), tr) -
передача даже одного байта стоит ~150 мкс на вызов, когда смена
состояния GPIO через тот-же ioctl занимает ~2.5 мкс. Система
Embedded Linux core 5.10 на TI Arm A8. - Chip_n_Go_24(19.02.2026 17:06,
, ARM, полностью)
- принялся разделывать stm32h7r3 - писать crt, шаблоны раскладки шин
и памяти на них, для скрипта линкера и тд. оказалось сильно
затруднительно лазить по доке в которой over 3700 страниц. чтоб
было удобнее кодить - сделал две картики, объединил мапу адресов
кусков внутреннего озу и флеша с их раскладкой на шинах - так
работать стало значительно веселей, может кому пригодится. klen(1028 знак., 18.02.2026 00:16, ARM, картинка, картинка, полностью, +3)
- Пишу под ГД32Ф103. Есть вариант определить что мы стартуем после
перепрошивки. Мне после перепрошивки надо обновлять данные во
внешней епром. Можно это как нибудь сделать? - IBAH(13.02.2026 15:41, ARM, полностью)
- Апдйт CubeIDE - работаю на версии 1.15 Апдейтер предлагает
поставить 2.0.0 Апдейтится, или это сулит гемор? Mty1(1 знак., 13.02.2026 00:42, ARM, картинка, полностью)
- Чего-то озаботился Бэкап регистрами, что в RTC под батарейкой. Кой
чего хранить. Читаю некий код сейчас из нулевого - 0х000032F2.
Чтобы туда не записывал - всё равно потом читается изначальные
данные. Там какая-то блокировка записи есть? Надо чего
разблокировать как флэш? - Лaгyнoв(08.02.2026 10:19, ARM, полностью)