Jump to content

    
Sign in to follow this  
Я.К.

STM32F4, UART и заваленные фронты сигнала

Recommended Posts

Я.К., правильно Вам про открытый коллектор и подтяжку говорят.

емкость самого пина - 5 pF, максимальное сопротивление подтягивающего резистора- 55 kOhm.

 

тау = RC = 5e-12*55e3= 0.28 мкс

 

То есть это если Вы идеальным осциллографом на неподключенном ни к чему пине МК будете измерять.

Ну а у Вас наверняка сильно больше чем 5 pF (проводник на плате, подключенный приемник, осциллограф...)

 

Природу не обманешь, в плюс тоже нужно тянуть.

Нужно или припаивать внешний подтягивающий резистор, чтобы обеспечить Тау меньше шести длительностей (это чтобы 3*тау было раньше середины, в которой приемник USART хватает бит), или включать полный пуш-пул.

Share this post


Link to post
Share on other sites

Судя по картинке, как будто-то щуп осциллографа без делителя, а значит фронты заваливаются самим щупом осциллографа. Такие сигналы лучше смотреть с делителем.

Share this post


Link to post
Share on other sites
Ну, или скорость понижать многократно.

Кста, при работе в полудуплексном режиме UART-у нужно как-то сообщать о намерении передавать/получать?

Дергать направление GPIO - какое-то мутное решение.

 

Ничуть не мутное. За этим решением такие небывалые возможности. Однажды я делал на 16 пике с 13 GPIO клавиатуру. Делал на трех разных: PIC16C711, PIC16C622 и еще какой-то похожий.

Подключали до 16 кнопок, до 16 светодиодов. Динамик -- один GPIO, два GPIO на связь, один на подсветку. И еще два инфракрасных обнаружителя движения подключали.

 

Все благодаря манипуляциям с направлением.

Share this post


Link to post
Share on other sites
Ничуть не мутное. За этим решением такие небывалые возможности. Однажды я делал на 16 пике с 13 GPIO клавиатуру. Делал на трех разных: PIC16C711, PIC16C622 и еще какой-то похожий.

Подключали до 16 кнопок, до 16 светодиодов. Динамик -- один GPIO, два GPIO на связь, один на подсветку. И еще два инфракрасных обнаружителя движения подключали.

 

Все благодаря манипуляциям с направлением.

Намекается, что данный USART сам переключит направление, коль у него есть однопроводный режим.

 

Судя по картинке, как будто-то щуп осциллографа без делителя, а значит фронты заваливаются самим щупом осциллографа. Такие сигналы лучше смотреть с делителем.

А срезы не заваливаются. Чудеса?

Share this post


Link to post
Share on other sites
Все благодаря манипуляциям с направлением.

Обращаю внимание, что в 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.

Share this post


Link to post
Share on other sites
Обращаю внимание, что в STM32 регистр, отвечающий за направление вывода не имеет атомарного доступа.

Повальное увлечение переключением направления может решить задачу, но приведет к проблеме монопольного доступа.

А bit-band?! Достаточно изменить записать один младший бит MODERy[1:0], и вход превращается в выход.

Share this post


Link to post
Share on other sites
А bit-band?! Достаточно изменить записать один младший бит MODERy[1:0], и вход превращается в выход.

На F4 возможно. Но есть Cortex-M0, где нет bit-band вообще.

И есть F3, где bit-band в наличии, но GPIO не попадает регион памяти, для которого эта фича возможна.

Я раньше и сам использовал bit-band для GPIO, но на F3 обжегся, зарекся и теперь никому не советую :)

Share this post


Link to post
Share on other sites
А срезы не заваливаются. Чудеса?

 

Дык с открытым коллектором всегда так.

 

Обращаю внимание, что в STM32 регистр, отвечающий за направление вывода не имеет атомарного доступа.

Повальное увлечение переключением направления может решить задачу, но приведет к проблеме монопольного доступа.

Для модуля GPIO есть механизм фиксации настроек порта (GPIO locking mechanism), который защелкнет также и направление вывода.

Это еще один намек, что "тут так не делается - ищите другой путь".

 

Да ясно что не так. Открытый коллектор не для таких скоростей.

Share this post


Link to post
Share on other sites
Дык с открытым коллектором всегда так.

Да, правильно. Хотя такие сигналы можно получить и из-за емкости самой цепи.

Share this post


Link to post
Share on other sites

в ф4, да и во всех других стм-ах есть би директ режим в уартах. я пользую этот режим. прекрасно работает по 1 проводу. Если надо именно ок. то тут уже всё что нужно было сказано.

Share this post


Link to post
Share on other sites
Я.К., правильно Вам про открытый коллектор и подтяжку говорят.

емкость самого пина - 5 pF, максимальное сопротивление подтягивающего резистора- 55 kOhm.

 

тау = RC = 5e-12*55e3= 0.28 мкс

 

То есть это если Вы идеальным осциллографом на неподключенном ни к чему пине МК будете измерять.

Ну а у Вас наверняка сильно больше чем 5 pF (проводник на плате, подключенный приемник, осциллограф...)

 

Природу не обманешь, в плюс тоже нужно тянуть.

Нужно или припаивать внешний подтягивающий резистор, чтобы обеспечить Тау меньше шести длительностей (это чтобы 3*тау было раньше середины, в которой приемник USART хватает бит), или включать полный пуш-пул.

 

 

В общем и целом, я просто и без затей добавил внешний пулл-ап: подключил ножку PC12 к 5В через 1Kом. И фронты перестали валиться.

 

Теперь, правда, у меня другая беда, но это уже совсем другая история...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this