Ruslan1 12 20 февраля, 2016 Опубликовано 20 февраля, 2016 · Жалоба Я.К., правильно Вам про открытый коллектор и подтяжку говорят. емкость самого пина - 5 pF, максимальное сопротивление подтягивающего резистора- 55 kOhm. тау = RC = 5e-12*55e3= 0.28 мкс То есть это если Вы идеальным осциллографом на неподключенном ни к чему пине МК будете измерять. Ну а у Вас наверняка сильно больше чем 5 pF (проводник на плате, подключенный приемник, осциллограф...) Природу не обманешь, в плюс тоже нужно тянуть. Нужно или припаивать внешний подтягивающий резистор, чтобы обеспечить Тау меньше шести длительностей (это чтобы 3*тау было раньше середины, в которой приемник USART хватает бит), или включать полный пуш-пул. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
veteq 0 21 февраля, 2016 Опубликовано 21 февраля, 2016 · Жалоба Судя по картинке, как будто-то щуп осциллографа без делителя, а значит фронты заваливаются самим щупом осциллографа. Такие сигналы лучше смотреть с делителем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tarbal 3 22 февраля, 2016 Опубликовано 22 февраля, 2016 · Жалоба Ну, или скорость понижать многократно. Кста, при работе в полудуплексном режиме UART-у нужно как-то сообщать о намерении передавать/получать? Дергать направление GPIO - какое-то мутное решение. Ничуть не мутное. За этим решением такие небывалые возможности. Однажды я делал на 16 пике с 13 GPIO клавиатуру. Делал на трех разных: PIC16C711, PIC16C622 и еще какой-то похожий. Подключали до 16 кнопок, до 16 светодиодов. Динамик -- один GPIO, два GPIO на связь, один на подсветку. И еще два инфракрасных обнаружителя движения подключали. Все благодаря манипуляциям с направлением. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 22 февраля, 2016 Опубликовано 22 февраля, 2016 · Жалоба Ничуть не мутное. За этим решением такие небывалые возможности. Однажды я делал на 16 пике с 13 GPIO клавиатуру. Делал на трех разных: PIC16C711, PIC16C622 и еще какой-то похожий. Подключали до 16 кнопок, до 16 светодиодов. Динамик -- один GPIO, два GPIO на связь, один на подсветку. И еще два инфракрасных обнаружителя движения подключали. Все благодаря манипуляциям с направлением. Намекается, что данный USART сам переключит направление, коль у него есть однопроводный режим. Судя по картинке, как будто-то щуп осциллографа без делителя, а значит фронты заваливаются самим щупом осциллографа. Такие сигналы лучше смотреть с делителем. А срезы не заваливаются. Чудеса? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 10 22 февраля, 2016 Опубликовано 22 февраля, 2016 · Жалоба Все благодаря манипуляциям с направлением. Обращаю внимание, что в 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 22 февраля, 2016 Опубликовано 22 февраля, 2016 · Жалоба Обращаю внимание, что в STM32 регистр, отвечающий за направление вывода не имеет атомарного доступа. Повальное увлечение переключением направления может решить задачу, но приведет к проблеме монопольного доступа. А bit-band?! Достаточно изменить записать один младший бит MODERy[1:0], и вход превращается в выход. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 10 22 февраля, 2016 Опубликовано 22 февраля, 2016 · Жалоба А bit-band?! Достаточно изменить записать один младший бит MODERy[1:0], и вход превращается в выход. На F4 возможно. Но есть Cortex-M0, где нет bit-band вообще. И есть F3, где bit-band в наличии, но GPIO не попадает регион памяти, для которого эта фича возможна. Я раньше и сам использовал bit-band для GPIO, но на F3 обжегся, зарекся и теперь никому не советую :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tarbal 3 22 февраля, 2016 Опубликовано 22 февраля, 2016 · Жалоба А срезы не заваливаются. Чудеса? Дык с открытым коллектором всегда так. Обращаю внимание, что в STM32 регистр, отвечающий за направление вывода не имеет атомарного доступа. Повальное увлечение переключением направления может решить задачу, но приведет к проблеме монопольного доступа. Для модуля GPIO есть механизм фиксации настроек порта (GPIO locking mechanism), который защелкнет также и направление вывода. Это еще один намек, что "тут так не делается - ищите другой путь". Да ясно что не так. Открытый коллектор не для таких скоростей. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 22 февраля, 2016 Опубликовано 22 февраля, 2016 · Жалоба Дык с открытым коллектором всегда так. Да, правильно. Хотя такие сигналы можно получить и из-за емкости самой цепи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vlad_new 1 24 февраля, 2016 Опубликовано 24 февраля, 2016 · Жалоба в ф4, да и во всех других стм-ах есть би директ режим в уартах. я пользую этот режим. прекрасно работает по 1 проводу. Если надо именно ок. то тут уже всё что нужно было сказано. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Я.К. 0 24 февраля, 2016 Опубликовано 24 февраля, 2016 · Жалоба Я.К., правильно Вам про открытый коллектор и подтяжку говорят. емкость самого пина - 5 pF, максимальное сопротивление подтягивающего резистора- 55 kOhm. тау = RC = 5e-12*55e3= 0.28 мкс То есть это если Вы идеальным осциллографом на неподключенном ни к чему пине МК будете измерять. Ну а у Вас наверняка сильно больше чем 5 pF (проводник на плате, подключенный приемник, осциллограф...) Природу не обманешь, в плюс тоже нужно тянуть. Нужно или припаивать внешний подтягивающий резистор, чтобы обеспечить Тау меньше шести длительностей (это чтобы 3*тау было раньше середины, в которой приемник USART хватает бит), или включать полный пуш-пул. В общем и целом, я просто и без затей добавил внешний пулл-ап: подключил ножку PC12 к 5В через 1Kом. И фронты перестали валиться. Теперь, правда, у меня другая беда, но это уже совсем другая история... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться