- Похоже в чипах Puya PY32F002A тоже траблы с зависанием I2C. Удалось
"на раз" повесить касаясь щупом осциллографа ножки SCL. Не может
выдать на шину START и в SR2 выставлен флаг BUSY. Блок I2C там
похож на F103-й как мне показалось. Для сравнения классический
103-й мне завешивать не удавалось. - 3m(09.09.2025 14:27, ARM, полностью)
- В F103 i2c запросто завешивается корочением шины. При этом если
соблюдать их мерзкую еррату, то отвешивалось. Может и тут так
попробовать? - Andreas(09.09.2025 18:01)
- Завис сигнал SCL или SDA? Процедура Bus clear реализована? reZident(1 знак., 09.09.2025 15:52, картинка)
- SCL, зависаний по SDA пока не обнаружено. Процедура развешивания не
реализована. Переделаю на программный обмен (да пошло оно все к
чертям!). А вообще ситуация с I2C в самых разных чипах реально
ЗАЕБАЛА!!! - 3m(09.09.2025 17:07)
- так везде :) в AVR тоже I2C автоматы разные везде :( а ещё
SMBUS-периферия есть :) мне, когда приходится прикручивать
всяку-разну периферию по I2C - каждый раз закончив - "крещусь" -
"свят, свят свят..." :)) - Adept(09.09.2025 17:42)
- А какой смысл в аппаратном И2Ц? Тот-жэ самый закат солнца вручную,
только "автоматически". Не считая всяких эррат и прочего дерьма. А
так, взял две любые ноги и навертел за пол-часа. - mse homjak(09.09.2025 19:07)
- +1 LДа... в тех же PIC' ушках I2С: и аппаратно (с нуля кодил,
вообще влёгкую после datasheet reading )- шарашит(100;400 кГц )
только в путь. И программно (сотенку точно)- вообще гибкость в
сервисе (полинг только чуток доставал :)). - SERGHIO(09.09.2025 21:37)
- Эррата даже на F103 не такая и жирная, особенно если только I2C
касаться. А у более вменяемых STM32 так вообще замечательно. И DMA
- классная штука. Ногодрыгом пусть унылые абдуринщики занимаются.
Чтобы "завис" аппаратный I2C, нужно очень сильно нарукожопить. Чаще
шину подвешивают тупые устройства, которые блокируют CLK, и все -
приплыли… Помогает только сброс питания. Поэтому для таких
"засранцев" я еще и отдельно управление питанием делаю. Благо,
обычно хватает Eddy_Em(62 знак., 09.09.2025 20:45)
- У меня все впечатления от аппаратного И2Ц из АВР. Т.е. дай команду
"старт", дождись флага-прерывания, дай команду "заслать в оркестр
данные", дождись.. дай команду "ждать АСК", дождись, дай
команду...додждись...дай команду... Если в СТМ нужно только
подготовить буфер "с" или "для", грузануть вручную тока
команду-адрес, а все аски-наски, старты-стопы сделает жэлезяка и
ДМА, то признаю, что неправ. - mse homjak(10.09.2025 13:30)
- Я разгонял i2c до 1 и даже 2 МГц. Там нужно было довольно много
туда-сюда гонять. Если бы это было ногодрыгом, проц больше ничем
заниматься не мог бы. - SciFi(09.09.2025 19:51)
- Ответ - тайминги. Джиттер. - Cкpипaч(09.09.2025 19:22)
- Это синхронный интерфейс, ташта, жыттер не играет никакой роли. Я
могу задерживать процэсс на секунды. Как, собсно и делал, в своё
время, на какой-то АВРке. У меня была программка монитора, с
возможностью писать и читать память и я, вручную, засылал в порты
И2Ц команды, чтобы отработать аппаратный интерфейс. Успешно. Потом
реализовал это в АСМ. Потом, посмотрел и переписал в бит-бэнг. И с
тех пор подобной хернёй не страдал. - mse homjak(09.09.2025 19:41)
- Щуп переключи на 1:10. - enc(09.09.2025 15:46)
- Странная осциллограмма I2C у STM32F303CBT6. Eddy_Em(1219 знак., 13.09.2025 20:31 - 20:38, ARM, картинка, полностью)
- О, на 500кГц получилось. Только фронты, конечно - та еще жесть! Во: Eddy_Em(436 знак., 13.09.2025 23:28, картинка)
- Какой же я дебил!.. Охренеть! Eddy_Em(535 знак., 13.09.2025 23:13)
- Убрал из следующего за записью адреса чтения I2C_CR2_AUTOEND,
"внезапно" все стало хорошо. Похоже, я не выдерживаю паузу перед
началом, поэтому этот STOP успевает попасть в регистр во время
окончания передачи со всеми вытекающими. Экспериментирую дальше. - Eddy_Em(13.09.2025 22:49)
- То, что на фото дугой выделено по-моему STOP, а следом
START-условие. А похожий импульс перед ACK я наблюдал неоднократно,
когда ACK формирует немного "тормозной" SLAVE. В принципе в этом
импульсе нет ничего криминального, т.к. перепад на SDA происходит
во время низкого уровня на SCL. - reZident(13.09.2025 20:40)
- Всплеск перед ACK - это легко. Мастер отпускает линию, а слейв
тянет её вниз чуть позже. Бывают там задержки у разных слейвов
разные, но спецификация I2C накладывает какие-то ограничения на
это. - SciFi(13.09.2025 20:34)
- А есть ли у кого-нибудь работающий ИК-болометр на MLX90640 и
STM32F303CBT6? Хотелось бы производительность сравнить. Eddy_Em(331 знак., 11.09.2025 21:09, ARM, ссылка, полностью)
- если таки на МК, то предложу попробовать Raspberry Pi Pico 2
(RP2350) - там 2 ядра (CM33 или RISC-V) 150 МГц, 64-бит
FPU Double-Precision Coprocessor - DCP (по 2 шт. на ядро), 520к ОЗУ,
ну и цепляется PSRAM Vit(144 знак., 12.09.2025 04:53 - 08:18, ссылка, ссылка)
- Она у меня есть, но там Cortex-M0. Какие флоаты, если оно даже
делить не умеет? Eddy_Em(213 знак., 12.09.2025 08:18)
- то у тебя первая - на RP2040 - Vit(12.09.2025 08:20)
- Да все равно. Тут на новую линейку STM32 пока перейдешь, минимум
неделя пройдет. А здесь - вообще другой камень и другой подход.
Какой там толщины мануал? Это ж опять под новый камень USB писать,
да и прочие мелкие сниппеты: I2C, CAN, UART, SPI, ADC, DAC, таймеры
и т.д., и т.п… Eddy_Em(357 знак., 12.09.2025 08:54)
- ты бы посмотрел SDK, а не рассказывал как гордо полез бы в писанину
давно написанного. а то, что только М4 интересовал, ну вот и
уточнил. я же посмотрел в твой код, показалось, что там даблы. для
них СМ4 даже может быть хуже, чем СМ3. а вот расчеты в даблах,
например, на STM32F7 (который с double-precision FPU) с приведением
частоты (запускал на 200 МГц, пересчитывал на 80) на моих задачах
уделывают СМ4 минимум в 10 раз. короче, хватит пинать говно
мамонта:) - Vit(12.09.2025 12:36)
- И разогнать до 600МГц Zikon(7 знак., 12.09.2025 06:08, ссылка)
- я лет 15 назад писал софт модем на dsPIC33, в общем от концепции -
код на Си, до рабочей реализации - (код модулятора, демодулятора и
КИХ фильтров на ассемблере) разница в производительности была в 22
раза. Был еще промежуточный результат с использованием библиотечных
функций МАС - раза в 4 быстрее чем на Си. Правда это был последний
раз когда мне что-то понадобилось сделать на ассемблере. - AVF(12.09.2025 08:06)
- Cortex-M0 падает в HardFault на инструкции MSR PSP, R0. Что бы это
значило? AlexG(33 знак., 06.09.2025 10:34, ARM, полностью)
- "Сводный системный топик" :-) по китайской микрухе CH579. Предлагаю
сюда добавлять кто чего нарыл. Для начала гугл-перевод даташита
(побит на две части). LightElf(23.05.2021 22:39 - 23:19, ARM, ссылка, ссылка, полностью)
- На всякий случай перечислю переходнички, из которых очень явно
торчат ноги вышеозначенного CH579 с заводской прошивкой. LightElf(426 знак., 27.06.2025 21:14)
- Хозяйке на заметку. Некоторая часть чипов на некоторых определенных
платах со старта плохо ловит линк. Судя по китайскому коду драйвера
Ethernet не я один такой. Мне помогает такое телодвижение: LightElf(170 знак., 03.04.2025 19:58)
- Резюмируя, стоит закладываться ? интересует по сути только BLE - Aleksey_75(13.12.2024 17:00)
- Столкнулся со странной ситуацией, честно говоря идей нету. Ничего
подобного никогда не видел. Приволокли кучку сдохших плат на
CH579M, платы изрядно поработали и сдохли во время обновления
фирмвари (не шьются). При глубоком исследовании нескольких образцов
обнаружил, что у всех одна проблема: у страницы флеша по адресу
0x8400 не пишется первая половина. То есть сектор (512байт)
0x8400...0x85FF стирается, но область 0x8400..0x84FF после этого не
пишется, остается в FF. LightElf(360 знак., 12.02.2024 21:14)
- Внезапно обнаружил, что англоязычный даташит на сайте WCH для
сабжевой микрухи не содержит описания некоторых регистров Ethernet
(таблица хэшей и фильтр приема пакетов). Выше есть перевод
китайского даташита, в котором эти регистры описаны. Фильтрация по
хэшу у меня, вроде как, работает вот таким макаром (на базе
китайского разъяснения): LightElf(881 знак., 29.12.2023 16:33)
- Огреб странное, хозяйке на заметку. В процессе экспериментов с SPI0
в DMA где-то нахеровертил. И чипец ушел в нирвану совсем, даже по
SWD не откликается. Предполагаю, что DMA непрерывно лупит и шину на
100% занимает. Еле-еле разлочил за счет того, что в ините есть цикл
ожидания готовности кварца. Замкнул кварц пинцетом и стер флешу по
SWD. - LightElf(19.04.2023 14:43)
- Результаты поиска Kpoк(1 знак., 27.01.2023 23:21, картинка)
- 5 дней назад обновился GitHub. Выложили исходники ethernet драйвера
и документацию на английском. Причем и комменты в исходниках
драйвера тоже на Ём, как и примеры, касающиеся сетевых дел... Гyдвин(1 знак., 27.01.2023 19:45, ссылка)
- Интересная статья про CH579 и его Ethernet на Хабре AlexG(1 знак., 14.01.2023 06:57, ссылка)
- Платан > Гyдвин(1 знак., 08.12.2022 22:34, ссылка)
- Наткнулся на пример реализации пользовательского загрузчика с
перенаправлением векторов у китайцев. Без танцев с
бубнами с корявой поддержкой этого дела в чипе. Такой подход мне нравится
гораздо больше. Ну и сохраняется встроенный bootloader для штатной
прошивки через usb/uart если что. Пример проверил - работает.
Прикрепил... Гyдвин(1 знак., 01.12.2022 04:19, ссылка)
- Если интересно - я разобрался со штатным механизмом, вполне
нормально работает. LightElf(2252 знак., 01.12.2022 12:57 - 02.04.2025 13:42)
- Спасибо - RED_DRAGON(01.12.2022 20:56)
- Для пересброса, смотрю, нужно довольно длительное время. Похоже я
вчера как раз с этим и прокололся. Нетерпеливый ;) Метод с
пробросом векторов срабатывает мгновенно. - Гyдвин(01.12.2022 20:23)
- У меня осень была загруженная основной работой. Сейчас полегчало, и
пришел очередной позыв ;) Гyдвин(779 знак., 01.12.2022 15:19)
- Я заливаю свой бут через SWD и первое, что мой бут делает -
отключает нах китайского загрузчика и доступ по SWD. LightElf(713 знак., 01.12.2022 16:04)
- Планирую 579F в массовых девайсах. Надо передать "оживление" в
шаловливые ручки наших паяльшиков. Гyдвин(952 знак., 01.12.2022 19:56, ссылка)
- Млтятььь, забыл еще главное. Мелочь - метки и брелоки. Да еще на
новых принципах. И несколько девайсов, работающих в полях, тоже :(
Вся это байда взаимодействовало между собой, включая то, что
упомянул в предыдущем посте... MSP430, LPC1768, меги328,
СС1101,ENC28, MCP2030, LCD и пр. шалабушки, Гyдвин(370 знак., 02.12.2022 05:25)
- А, блин. У 579F же нету SWD, тогда понятно. - LightElf(01.12.2022 20:16)
- Придется опять юзать Gainta и китайские теперь LCD/OLED....
Наклейка для них обходилась в цену, равную себестоимости всего
остального :) Гyдвин(1 знак., 01.12.2022 20:07, картинка)
- У меня такой вопрос: У тебя похоже железки у же приличное время
эксплуатируются. Как у них со стабильностью работы ethernet? Гyдвин(131 знак., 01.12.2022 14:58)
- Мелкомягкий антивирь ругаеццо на троян в архиве. - LightElf(01.12.2022 13:00)
- Не встречал ли кто отладочной платы, типа arduino, на CH579M, по
проще чем по ссылке? Tech_(1 знак., 19.07.2022 15:53, ссылка)
- Господа пользователи CH57x. Библиотека BLE у производителя только в
кейловском формате LIB существует? есть ли вариант либы для
пользования с gcc? или опробованный с этим камнем опенсорс ble стек
в исходниках? - RED_DRAGON(15.06.2022 21:23)Гyдвин
- Меж тем, чипы в товарных количествах начали появляться на LCSC. "F"
стабильно присутствует 1.5 мес., "M" появился вчера после долгого
отсутствия. Соответсвенно, и наши барыги обещают привезти... Гyдвин(1 знак., 10.05.2022 16:13, ссылка)
- LightElf, какая версия штатного загрузчика в ваших чипах? На моих
китайских платках - 2.7. Сегодня довелось перепаивать контроллер
BLDC (друг приволок). Заодно, наконец, решил набить руку по пайке
CH579M. Все прекрасно сдувается и паяется феном. Сдул, запаял чип
из новой партии. Но, сцуко, в новой партии (заказывали сотню штук)
версия загрузчика 2.8. Если загрузить прошивку их утилиткой по usb,
следующий раз эта утилитка чип уже не видит - загрузчик не
стартует, сколько не Гyдвин(1290 знак., 16.08.2021 17:49)
- Еррата на нее есть на английском? Не нашел типовой схемы включения.
0.35 не 0.5 поставить. - vasily777(04.06.2021 12:46)
- Прислали десяток чипов CH579M c работы. Намереваюсь сдуть со своей
платки и попробовать паять. Но пока не пришла еще пара заказанных у
китайцев платок, чОта очкую - шибко мелкое :) - Гyдвин(03.06.2021 11:53)
- Ну вот как то так... Программатор для заливки загрузчика в платки
при производстве. , чтобы "бибизьянки" чО-нить не намухали :) Гyдвин(958 знак., 03.06.2021 11:43, ссылка)
- Сделал первый подход к аппаратному AES. Пока понял только как
шифровать/расшифровывать в режиме ECB с 128-битным ключем. Более
хитрые варианты (в частности CCM) не особо пока ясны. Вот примерно
что делает кетайская либа при шифровании. LightElf(518 знак., 02.06.2021 19:09)
- Проц среди прочей периферии имеет некий LED Controller. Шо это
такое и куда его применить - понять не удается никак. Если кто
поделится мнением - буду признателен. - LightElf(01.06.2021 20:15)
- Простейший драйвер Ethernet, просто иллюстрация отправки и приема
пакетов LightElf(24.05.2021 18:09, ссылка)
- просто добавляйте к сообщениям тег "CH579" и получите спец. конфу - General(24.05.2021 17:48, ссылка)
- Пины девайса не имеют режима "открытый коллектор/открытый сток".
Аппаратного I2C тоже нет. Следует поиметь в виду. - LightElf(24.05.2021 15:18)
- Поддержка чипа в IAR. FlashLoader, регистры, файлы линкера. Просто
развернуть поверх установленного IAR в соответствующие папки. После
перезапуска IDE камень появится в списке. LightElf(23.05.2021 23:20, ссылка)
- У Cortex-M0 отсутствует регистр VTOR, т.е. перенести вектора
прерываний нельзя. Что несколько неприятно для реализации
бутлодера. LightElf(289 знак., 23.05.2021 23:18)
- Мой топик в конфе ESP8266. - Гyдвин(23.05.2021 23:15, ссылка)
- BLE, NET. Гyдвин(23.05.2021 23:11, ссылка, ссылка)
- Есть желание под виндой покопаться в проекте, рассчитанном на
компиляцию при помощи arm-none-eabi GCC 10.3.1 в Ubuntu и Docker.
Микроконтроллер - экзотический китайский аналог STM32F0, добыть
какие-либо средства разработки от производителя мне похоже не
светит. J-Link c чипом удалось подружить. Какую среду разработки
порекомендуете? Что сейчас есть хорошего на подобный случай? AlexG(90 знак., 31.08.2025 22:54, ARM, полностью)
- Пытаюсь запустить I2S кодек PCM5102A на процессоре
STM32H743/ChibiOS. Использую интерфейс SAI1A. Драйвера для этого
интерфейса в последней версии ChibiOS нет, написал сам минимально
необходимый. Почти работает. Все в порядке с частотами MCLK, BCLK,
LRCK - все они в верных соотношениях, и полностью управляются
настройками sample rate. Но частота прерываний по окончании
передачи с одной стороны слишком велика - 4.4 КГц, а с другой
стороны не зависит от изменения sample nanorobot(8020 знак., 24.08.2025 19:39 - 22:07, ARM, ссылка, ссылка, полностью)
- А как GD32F103 работает на внутреннем генераторе (HSI)? Можно
верить тому, что написано в ДШ? Меня интересует весь температурный
диапазон -40+85. Исследовал внутренний генератор в STM32L0 отзывы
самые положительные, превосходит заявленные в ДШ параметры. - IBAH(20.08.2025 19:30, ARM, полностью)
- WCH CH32V317, ядро QingKeV4F. После взведения бита запроса
прерывания, требуется пауза, иначе следующая команда запрета
перываний, не даёт шанса сработать запрошенному. Nikolay_Po(3066 знак., 20.08.2025 15:16 - 16:14, ARM, полностью)
- "Живой" процессор, а тем более микроконтроллер, - это не голая
программная модель, а реальный сложный электронный узел, со
множеством вентилей, триггеров и, соотвественно , с задержками. - vpv.vpv(21.08.2025 10:25)
- Спасибо!!! Буду тоже внимательным. Китайцы в PFIC_DisableIRQ()
ставят 2 NOPа для PipelineLevel = 3. Ну или fence.i. И логично было
бы засунуть все это непосредственнов в taskYIELD_WITHIN_API() - il-2(20.08.2025 15:51)
- Кстати, 5 дней назад, 15.08.2025, WCH выложили следующую версию
мануала по ядрам QingKeV4. И там сказано про "fence.i": Nikolay_Po(253 знак., 20.08.2025 15:21)
- RISC-V, ядро QingKe4F, особенности отладки: 1. при останове,
продолжает работу SysTick. 2. При пошаговом выполнении инструкций,
нет входа в прерывание. Запрос висит, но по вектору не переходит. Nikolay_Po(692 знак., 19.08.2025 22:35, ARM, ссылка, полностью)
- Таг понимаю, что в китайских СТМ-РИСК, нельзя запустить ДМА по
сработке порта? Тока "мем-мем" из прерывания? - mse homjak(11.08.2025 11:19, ARM, полностью)
- Простите малограмотного. Есть в STM32G431 управляющий регистр 32
бита. Есть в нём битовое поле 8 бит. Менять это поле, не портя
содержимое регистра, можно только через чтение-модификацию-запись?
Или есть за пазухой у АРМА какие-нибудь фишки. Приданная мне
программист сделала в два хода -- обнуляет поле через И, потом
загружает через ИЛИ. Я только нонеча вечером глянул код и понял,
откель беда. - Бapбoc(21.07.2025 20:08, ARM, полностью)
- Барбос, и где были грабли? - Sl(31.07.2025 19:08)
- В продолжение темы. В том смысле, что всё то же поделие. Бapбoc(756 знак., 29.07.2025 22:01)
- В наборе инструкций Cortex-M3/M4 существует семейство инструкций
LDREX/STREX, так что если адрес считывается инструкцией LDREX,
следующая инструкция STREX может записать данные по этому адресу
только в том случае, если известно, что адрес не был затронут.
Обычно это означает, что инструкция STREX выполняется успешно, если
с момента выполнения LDREX не возникало прерываний («исключений» в
терминологии ARM), и завершается неудачей в противном случае. - Zikon(22.07.2025 20:04)
- bit-banding? - IBAH(22.07.2025 15:58)
- Программист все правильно сделал, стандартный подход обнулить по
маске и записать новое значение CTRL_PORT &= MASK; CTRL_PORT
|=value; _ctac_(229 знак., 22.07.2025 15:12)
- Если это битовое поле выровнено по границе одного из байт, то можно
попробовать через указатель на uint8_t по адресу смещенному
относительно начального адреса этого регистра. Так побайтно в H/L
GPIOx->ODR пишут и прокатывает. - Vector(22.07.2025 00:15,
)
- Вообще говоря, так можно работать не со всеми регистрами. Sl(104 знак., 21.07.2025 22:39, картинка)
- Бывают регистры, которые умеют в побайтовую запись. Но в общем
случае да, чтение, изменение чего надо, запись. Есть даже такое
словосочетание "load-store architecture". SciFi(1 знак., 21.07.2025 20:15, ссылка)
- немного подрюкал ацп в ch32v303. временно оно не вызывает опасений
(но это не точно) klen(5282 знак., 20.07.2025 23:09, ARM, ссылка, картинка, полностью)
- Делал тест по точности на двух экземплярах ch32v307 из разных
партий, графики отклонений без учета встроенной калибровки
приложил. В принципе неплохо, хотя хотелось бы лучше, реально можно
ожидать +-10LSB при комнатной температуре и если не брать начало и
конец шкалы - 20мВ там все сильно хуже. Для проверки использовал
16-битный ЦАП AD5693R при 25 градусах. Исходные данные более
полные, на каждый разряд ЦАПа, чтобы оценить пороги переключения,
но потом понял что мне не надо. AVF(263 знак., 21.07.2025 09:29, картинка, картинка)
- Мой экземпляр 303, в 100-ногом корпусе, при измерении, выдавал
импульс на вход и его-жэ измерял. Пришлось делать сопротивление
источника в сотню(или сотни, ужэ не помню) ом. Тогда всё
заработало. - mse homjak(20.07.2025 23:18)
- АЦП CH32V203. Довелось поработать. Раз уж товарищ Клён про АЦП
303го пишет, напишу и я, пока не забыл. Выкладывал ранее в тему
RISC-V в Телеграм: Nikolay_Po(3128 знак., 21.07.2025 09:20, ARM, ссылка, ссылка)
- Хочу на аналоге STM32 при срабатывании ватчдога получить сначала не
сброс, а прерывание. Имеется WWDG у которого как раз есть такая
функция. Тактовая ядра и шины APB1 планируется 36 МГц. Считаю
максимальное время до срабатывания ватчдога и получаю 57
миллисекунд ((1/36000000)*4096*8*63), что для неторопливой
программы, которой чаще чем 10 раз в секунду и заняться то нечем,
как-то вообще не подходит. Я что-то не учитываю или просто не умею
WWDG готовить? Как его вообще обычно AlexG(11 знак., 19.07.2025 17:39, ARM, полностью)