Ошибка в SPI STM32G030
При передаче пакета больше 32 байт (в моём случае 36 - 4 адресных диода ws2812b), если 1-ый бит 33 байта high "1", то после передачи всего пакета любых остальных данных шина остаётся в "1". Баг проявляется в независимости от использования DMA в режиме LSB first.
Лечится установкой SPI_CR1_CPHA — Clock phase в "1" (вывод не используется)
Revision ID: REV_ID 0x1001, В errdata об этом нет.
На st меня забанили, да и сам бы забил, но вдруг это не баг конкретно этого чипа и кому то ещё поможет. Конфигурил через CMSIS, но как же без картинок :)
ps в теории надо бы проверить 16 битный режим и MSB, но скорее всего это подвержено тоже, т.к. с них и начинал. Код перенёс с stm32f030 где всё работало, но с одним диодом (9 байт).



кубические настройки
Инженериум DIY
656 постов5.6K подписчика
Правила сообщества
Давайте уважать друг друга - любые аморальные посты выпиливаются, даже если они затрагивают основную тематику сообщества.
В сообществе будут попадаться посты для новичков, поэтому не стоит влетать в пост с минусомётом, направленным на задающих вопросы по теме поста.