ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
5 мая
1515165 Топик полностью
Nikolay_Po (28.04.2025 22:46, просмотров: 143) ответил Nikolay_Po на Хмм... Спасибо! Гениально! Я сам не догадался. Сейчас проработаю этот вариант. У меня на этой же шине уже разведённый UART работает. Но я предусмотрительно сделал тактовую и кварц кратным UART. Должно сложиться. Мне нужно удержание данных 50нс. Это значит, что тактовую нужно понизить не выше чем до 1/50нс=20МГц. Системная частота у меня сейчас 110.592МГц. Значит, нужен делитель не менее 5.5296МГц. В наличии делители 2, 4, 8 и 16. Беру 8.
Сработало! После изменения делителя PPRE2 в регистре CFGR0 модуля тактирования RCC, частота второй периферийной шины (PB2) поделилась на 8, стала 13.824МГц. USART-делители пересчитались автоматически, связь по RS-485 с устройством не нарушилась. Кадровый таймер интерфейса связи не пострадал - оказался на первой периферийной шине (впрочем, и он пересчитывается автоматически - стоит лишь делитель верно задать). 

Проблема SPI осталась и восьмикратным снижением частоты. Но, благодаря совету проницателного il-2, теперь удержание данных MISO составляет не 9, а 72нс, что с запасом превышает максимальные требования ведомого 50нс.

Сейчас буду проверять обмен данными и в направлении MISO. Вдруг косяк и тут проявляется, и придётся переходить на программный SPI.


Вот как теперь выглядит MISO после снижения тактовой частоты со 110.592МГц до 13.824МГц: