|
STM32F4, UART и заваленные фронты сигнала, куды крестьянину податься? |
|
|
|
Feb 21 2016, 21:25
|
Участник

Группа: Участник
Сообщений: 28
Регистрация: 5-12-06
Пользователь №: 23 160

|
Судя по картинке, как будто-то щуп осциллографа без делителя, а значит фронты заваливаются самим щупом осциллографа. Такие сигналы лучше смотреть с делителем.
|
|
|
|
|
Feb 22 2016, 03:48
|
Профессионал
    
Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439

|
Цитата(adnega @ Feb 20 2016, 12:24)  Ну, или скорость понижать многократно. Кста, при работе в полудуплексном режиме UART-у нужно как-то сообщать о намерении передавать/получать? Дергать направление GPIO - какое-то мутное решение. Ничуть не мутное. За этим решением такие небывалые возможности. Однажды я делал на 16 пике с 13 GPIO клавиатуру. Делал на трех разных: PIC16C711, PIC16C622 и еще какой-то похожий. Подключали до 16 кнопок, до 16 светодиодов. Динамик -- один GPIO, два GPIO на связь, один на подсветку. И еще два инфракрасных обнаружителя движения подключали. Все благодаря манипуляциям с направлением.
|
|
|
|
|
Feb 22 2016, 04:40
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(Tarbal @ Feb 22 2016, 06:48)  Ничуть не мутное. За этим решением такие небывалые возможности. Однажды я делал на 16 пике с 13 GPIO клавиатуру. Делал на трех разных: PIC16C711, PIC16C622 и еще какой-то похожий. Подключали до 16 кнопок, до 16 светодиодов. Динамик -- один GPIO, два GPIO на связь, один на подсветку. И еще два инфракрасных обнаружителя движения подключали.
Все благодаря манипуляциям с направлением. Намекается, что данный USART сам переключит направление, коль у него есть однопроводный режим. Цитата(veteq @ Feb 22 2016, 00:25)  Судя по картинке, как будто-то щуп осциллографа без делителя, а значит фронты заваливаются самим щупом осциллографа. Такие сигналы лучше смотреть с делителем. А срезы не заваливаются. Чудеса?
|
|
|
|
|
Feb 22 2016, 07:59
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(Tarbal @ Feb 22 2016, 06:48)  Все благодаря манипуляциям с направлением. Обращаю внимание, что в STM32 регистр, отвечающий за направление вывода не имеет атомарного доступа. Повальное увлечение переключением направления может решить задачу, но приведет к проблеме монопольного доступа. Для модуля GPIO есть механизм фиксации настроек порта (GPIO locking mechanism), который защелкнет также и направление вывода. Это еще один намек, что "тут так не делается - ищите другой путь". Цитата the TX pin is always released when no data is transmitted. Thus, it acts as a standard I/O in idle or in reception. It means that the I/O must be configured so that TX is configured as floating input (or output high open-drain) when not driven by the USART.
|
|
|
|
|
Feb 22 2016, 09:37
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(ViKo @ Feb 22 2016, 11:13)  А bit-band?! Достаточно изменить записать один младший бит MODERy[1:0], и вход превращается в выход. На F4 возможно. Но есть Cortex-M0, где нет bit-band вообще. И есть F3, где bit-band в наличии, но GPIO не попадает регион памяти, для которого эта фича возможна. Я раньше и сам использовал bit-band для GPIO, но на F3 обжегся, зарекся и теперь никому не советую
|
|
|
|
|
Feb 22 2016, 19:40
|
Профессионал
    
Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439

|
Цитата(ViKo @ Feb 22 2016, 07:40)  А срезы не заваливаются. Чудеса? Дык с открытым коллектором всегда так. Цитата(adnega @ Feb 22 2016, 10:59)  Обращаю внимание, что в STM32 регистр, отвечающий за направление вывода не имеет атомарного доступа. Повальное увлечение переключением направления может решить задачу, но приведет к проблеме монопольного доступа. Для модуля GPIO есть механизм фиксации настроек порта (GPIO locking mechanism), который защелкнет также и направление вывода. Это еще один намек, что "тут так не делается - ищите другой путь". Да ясно что не так. Открытый коллектор не для таких скоростей.
|
|
|
|
|
Feb 24 2016, 15:38
|

Местный
  
Группа: Свой
Сообщений: 243
Регистрация: 4-12-08
Из: Москва
Пользователь №: 42 205

|
Цитата Я.К., правильно Вам про открытый коллектор и подтяжку говорят. емкость самого пина - 5 pF, максимальное сопротивление подтягивающего резистора- 55 kOhm.
тау = RC = 5e-12*55e3= 0.28 мкс
То есть это если Вы идеальным осциллографом на неподключенном ни к чему пине МК будете измерять. Ну а у Вас наверняка сильно больше чем 5 pF (проводник на плате, подключенный приемник, осциллограф...)
Природу не обманешь, в плюс тоже нужно тянуть. Нужно или припаивать внешний подтягивающий резистор, чтобы обеспечить Тау меньше шести длительностей (это чтобы 3*тау было раньше середины, в которой приемник USART хватает бит), или включать полный пуш-пул. В общем и целом, я просто и без затей добавил внешний пулл-ап: подключил ножку PC12 к 5В через 1Kом. И фронты перестали валиться. Теперь, правда, у меня другая беда, но это уже совсем другая история...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|