реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> STM32F4, UART и заваленные фронты сигнала, куды крестьянину податься?
Ruslan1
сообщение Feb 20 2016, 08:46
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Я.К., правильно Вам про открытый коллектор и подтяжку говорят.
емкость самого пина - 5 pF, максимальное сопротивление подтягивающего резистора- 55 kOhm.

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

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

Природу не обманешь, в плюс тоже нужно тянуть.
Нужно или припаивать внешний подтягивающий резистор, чтобы обеспечить Тау меньше шести длительностей (это чтобы 3*тау было раньше середины, в которой приемник USART хватает бит), или включать полный пуш-пул.
Go to the top of the page
 
+Quote Post
veteq
сообщение Feb 21 2016, 21:25
Сообщение #17


Участник
*

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



Судя по картинке, как будто-то щуп осциллографа без делителя, а значит фронты заваливаются самим щупом осциллографа. Такие сигналы лучше смотреть с делителем.
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Feb 22 2016, 03:48
Сообщение #18


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(adnega @ Feb 20 2016, 12:24) *
Ну, или скорость понижать многократно.
Кста, при работе в полудуплексном режиме UART-у нужно как-то сообщать о намерении передавать/получать?
Дергать направление GPIO - какое-то мутное решение.


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

Все благодаря манипуляциям с направлением.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 22 2016, 04:40
Сообщение #19


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 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) *
Судя по картинке, как будто-то щуп осциллографа без делителя, а значит фронты заваливаются самим щупом осциллографа. Такие сигналы лучше смотреть с делителем.

А срезы не заваливаются. Чудеса?
Go to the top of the page
 
+Quote Post
adnega
сообщение Feb 22 2016, 07:59
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 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.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 22 2016, 08:13
Сообщение #21


Универсальный солдатик
******

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



Цитата(adnega @ Feb 22 2016, 10:59) *
Обращаю внимание, что в STM32 регистр, отвечающий за направление вывода не имеет атомарного доступа.
Повальное увлечение переключением направления может решить задачу, но приведет к проблеме монопольного доступа.

А bit-band?! Достаточно изменить записать один младший бит MODERy[1:0], и вход превращается в выход.
Go to the top of the page
 
+Quote Post
adnega
сообщение Feb 22 2016, 09:37
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 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 обжегся, зарекся и теперь никому не советую sm.gif
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Feb 22 2016, 19:40
Сообщение #23


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(ViKo @ Feb 22 2016, 07:40) *
А срезы не заваливаются. Чудеса?


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

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


Да ясно что не так. Открытый коллектор не для таких скоростей.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 22 2016, 20:13
Сообщение #24


Универсальный солдатик
******

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



Цитата(Tarbal @ Feb 22 2016, 22:40) *
Дык с открытым коллектором всегда так.

Да, правильно. Хотя такие сигналы можно получить и из-за емкости самой цепи.
Go to the top of the page
 
+Quote Post
vlad_new
сообщение Feb 24 2016, 00:51
Сообщение #25


Местный
***

Группа: Участник
Сообщений: 218
Регистрация: 24-06-10
Пользователь №: 58 127



в ф4, да и во всех других стм-ах есть би директ режим в уартах. я пользую этот режим. прекрасно работает по 1 проводу. Если надо именно ок. то тут уже всё что нужно было сказано.
Go to the top of the page
 
+Quote Post
Я.К.
сообщение Feb 24 2016, 15:38
Сообщение #26


Местный
***

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



Цитата
Я.К., правильно Вам про открытый коллектор и подтяжку говорят.
емкость самого пина - 5 pF, максимальное сопротивление подтягивающего резистора- 55 kOhm.

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

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

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



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

Теперь, правда, у меня другая беда, но это уже совсем другая история...
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 5th July 2025 - 20:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.01456 секунд с 7
ELECTRONIX ©2004-2016