-
- Сработало! После изменения делителя PPRE2 в регистре CFGR0 модуля
тактирования RCC, частота второй периферийной шины (PB2) поделилась
на 8, стала 13.824МГц. USART-делители пересчитались автоматически,
связь по RS-485 с устройством не нарушилась. Кадровый таймер
интерфейса связи не пострадал - оказался на первой периферийной
шине (впрочем, и он пересчитывается автоматически - стоит лишь
делитель верно задать). Nikolay_Po(435 знак., 28.04.2025 22:46, картинка, картинка)
- Погонял малость. По устранял ошибки. Типа, в режиме только передачи, когда входящие с SPI не нужны, не включал DMA на приём. А в SPI ошибка OVR и её выявлял обработчик состояния SPI. Так же нужно было не забыть добавить очистку лишнего байта в буфере приёма и сброса ошибки последовательным чтением сначала регистра данных, потом статуса. Nikolay_Po(522 знак., 29.04.2025 01:37)
- Если переходить на программный, тогда зачем ДМА? В обычном режиме
оно работает нормально. Ну как, "нормально"... Работает. А я, в
ряде случаев, делаю программный интерфейс для РС232, СПИ, через
ДМА, чтобы не отвлекаться, в процэссе передачи. Формирую в ОЗУ
последовательность установок-сбросов бит порта и травлю на него
ДМА. Много ОЗУ идёт в расход, но щас этого ОЗУ, как у дурака
фантиков. Скорости можно добиться высокой. - mse homjak(28.04.2025 23:17)
- Эта схема понятна. Но вы видели самое первое сообщение? И диаграмму
в нём? У меня не UART. И этим же, дефектным, модулем SPI, подобная
эмуляция нужного, верного сигнала невозможна - просто не хватит
сигнальных линий или будет невозможной своевременная выборка по
приёму. - Nikolay_Po(29.04.2025 01:42)
- Ну это как вариант предложил. Если, например, нужно чота быстро загрузить в ЦАП, по таймеру и чтобы с NSS и минимальным жыттером. А СПИ от СТМ. Он, кстати, когда шлёт 16 бит, все флаги готовности, подымает на 8 бите. В общем, апофигей. У кого они это говно купили? Или сами сделали? - mse homjak(29.04.2025 11:18)
- Эта схема понятна. Но вы видели самое первое сообщение? И диаграмму
в нём? У меня не UART. И этим же, дефектным, модулем SPI, подобная
эмуляция нужного, верного сигнала невозможна - просто не хватит
сигнальных линий или будет невозможной своевременная выборка по
приёму. - Nikolay_Po(29.04.2025 01:42)
- Сработало! После изменения делителя PPRE2 в регистре CFGR0 модуля
тактирования RCC, частота второй периферийной шины (PB2) поделилась
на 8, стала 13.824МГц. USART-делители пересчитались автоматически,
связь по RS-485 с устройством не нарушилась. Кадровый таймер
интерфейса связи не пострадал - оказался на первой периферийной
шине (впрочем, и он пересчитывается автоматически - стоит лишь
делитель верно задать). Nikolay_Po(435 знак., 28.04.2025 22:46, картинка, картинка)