Связанные сообщения
- Продолжение темы:2026-06-09
- Вышел Clion 2024.12024-04-11
- тут говорят некоторые что не влетит?2023-04-12
-
- постоянно натыкаюсь на странное поведение v307 - после передачи
счечик DMA обнуляется а бит EN у канала нет, поведение не такое как
у ST мы привыкли, тут могут быть истоки проблемы при записи в
счетчик нового значения. в V003 рабоате как у всех = EN
сбрасывается аппаратно. но это все не про отладку как у вас. - klen(11.09.2026 16:57)
- Ну, ниже я сегодня дал пояснение, что глюки были, по большей части,
из-за гонок - транзакция SPI заканчивалась раньше и генерировала
уведомление задаче-драйверу FLASH раньше, чем мой код, запускавший
транзакцию, устанавливал подходящее состояние конечного автомата.
Но это не отменяет влияния отладки на тайминги работы всего. Nikolay_Po(335 знак., 11.09.2026 17:16)
- Там такое: на высокой скорости, СЦК тратит время на поход через
пин, дорожку, пин, схему(задержка в буферах-регистрах), пин,
дорожка, пин схема сдвига. На 70+Мгц, это, порядка 13-15нС. или
6-7, ХЗ, как у вашего ЦПУ СПИ организован. Если задержка получается
впритык, то вот вам сбои чтения. Ибо приёмный регистр получает СЦК
прямо изнутри проца. При записи проблем не будет. И снижая частоту,
вы выходите из впритыка. - mse homjak(11.09.2026 17:26)
- Сколько мне ни попадалось модулей SPI, у всех вход клока не брался
изнутри, а только с выхода. Например, если не включить выводу
общего применения режим работы с периферийным модулем, то при
передаче SPI, на выводе не будет тактового сигнала. И, если
одновременно идёт и приём SPI, приёмник будет мёртв, сколько бы я
ни передавал. - Nikolay_Po(11.09.2026 17:33)
- Судя по картинкам блок-схем, и у STM32F3xx и у CH32V3xx сигнал SCK
от пина проходит через некую внутреннюю схему (Communication
controller) и только потом подается на сдвиговый регистр. reZident(2 знак., 11.09.2026 18:06, картинка, картинка)
- Видите, от вывода SCK, идёт не один провод, а два - один от драйвера выхода CLK тактового генератора, другой - вход с дискретного входа этого же вывода. Так что, тактируется оно именно с физического вывода. И если, например, CLK закоротить на землю, приёмник не получит сдвига бит и не закончит транзакцию сразу после передатчика. Nikolay_Po(151 знак., 11.09.2026 18:34)
- Судя по картинкам блок-схем, и у STM32F3xx и у CH32V3xx сигнал SCK
от пина проходит через некую внутреннюю схему (Communication
controller) и только потом подается на сдвиговый регистр. reZident(2 знак., 11.09.2026 18:06, картинка, картинка)
- Сколько мне ни попадалось модулей SPI, у всех вход клока не брался
изнутри, а только с выхода. Например, если не включить выводу
общего применения режим работы с периферийным модулем, то при
передаче SPI, на выводе не будет тактового сигнала. И, если
одновременно идёт и приём SPI, приёмник будет мёртв, сколько бы я
ни передавал. - Nikolay_Po(11.09.2026 17:33)
- Там такое: на высокой скорости, СЦК тратит время на поход через
пин, дорожку, пин, схему(задержка в буферах-регистрах), пин,
дорожка, пин схема сдвига. На 70+Мгц, это, порядка 13-15нС. или
6-7, ХЗ, как у вашего ЦПУ СПИ организован. Если задержка получается
впритык, то вот вам сбои чтения. Ибо приёмный регистр получает СЦК
прямо изнутри проца. При записи проблем не будет. И снижая частоту,
вы выходите из впритыка. - mse homjak(11.09.2026 17:26)
- Ну, ниже я сегодня дал пояснение, что глюки были, по большей части,
из-за гонок - транзакция SPI заканчивалась раньше и генерировала
уведомление задаче-драйверу FLASH раньше, чем мой код, запускавший
транзакцию, устанавливал подходящее состояние конечного автомата.
Но это не отменяет влияния отладки на тайминги работы всего. Nikolay_Po(335 знак., 11.09.2026 17:16)
- Рискну предположить, что это может быть связано с доступом
отладчика к периферии "на лету", т.е. и программа исполняется и в
отладчике показывается значение регистров периферии. В какой-то
момент доступ к периферии со стороны отладчика и ядра как-то не
удачно накладываются друг на друга и происходит сбой. - AlexBi(06.09.2026 09:09)
- Уточню на всякий случай для ценителей. CH32V317. Отладка, SPI. Nikolay_Po(1877 знак., 11.09.2026 17:18, +1)
- постоянно натыкаюсь на странное поведение v307 - после передачи
счечик DMA обнуляется а бит EN у канала нет, поведение не такое как
у ST мы привыкли, тут могут быть истоки проблемы при записи в
счетчик нового значения. в V003 рабоате как у всех = EN
сбрасывается аппаратно. но это все не про отладку как у вас. - klen(11.09.2026 16:57)