Комментарии 14
А я уж думал, что прошли те времена на Хабре, когда я мог прочитать статью, СОВЕРШЕННО не понять о чем идет речь, осознать себя нубом и начать просматривать вакансии дворника.
Хабр таки торт.
Хабр таки торт.
+11
Вот даже не знаю, как реагировать на такой комментарий :)
PS Привык на хабре везде видеть сарказм :)
PS Привык на хабре везде видеть сарказм :)
+2
Воспринимайте как похвалу. :)
+5
Все понятно! Но вот только зачем стмовцы в HAL либе такие гигантские названия дефайнов сделали, ни за что без ошибки не напишешь и не выучишь:(
0
Насчет автоопределения скорости я недопонял.
Ведь для этого первый (старший) значащий бит передаваемых данных должен отличаться от стартового?
И получается, что это аппаратная фишка контроллера? Если так, то круто.
Ведь для этого первый (старший) значащий бит передаваемых данных должен отличаться от стартового?
И получается, что это аппаратная фишка контроллера? Если так, то круто.
0
Не, стартовый бит по длительности равен идущим за ним. И если его длительность изменилась — значит, изменились длительности и следующих за ним.
STM умеет и по стартовому и по стоповому и еще как-то (забыл :) мерять скорости. И да, это аппаратная фишка.
STM умеет и по стартовому и по стоповому и еще как-то (забыл :) мерять скорости. И да, это аппаратная фишка.
0
Имелось в виду, что старший бит должет отличаться от стартового по уровню, по длительности, конечно, они совпадают.
Иначе мы не получим длину стартового бита, а получим длину 1-9 битов и как их мерять?
В модемах применялся префикс AT либо at и в обоих случаях старший бит был в нуле, а как без такого ограничения быть?
Иначе мы не получим длину стартового бита, а получим длину 1-9 битов и как их мерять?
В модемах применялся префикс AT либо at и в обоих случаях старший бит был в нуле, а как без такого ограничения быть?
0
Я наверное, не понял, но уровни у всех бит — одинаковые. И контроллер отделяет одни байты от других именно по числу бит и временным паузам. Ведь если рассматривать стартовый бит как паузу между «стоповым» и «первым» битом, то эта пауза равна длительности других битов.
0
Может что-то не понял уже я, но для того чтобы определить длительность стартового бита, нужно видеть, когда он закончился, а для этого следующий бит (старший бит данных) должен отличаться по уровню от стартового, иначе их не разделить?
0
Ну, стартовый бит — это «0».
То есть последовательность для слова FFА5 выглядит так
0 11111111 1 0 10100101 1
То есть уровни (в смысле напряжения) стартовых и стоповых бит не отличаются от тех, что в теле. И длительности тоже.
И если у контроллера включено автоопределение и между FF и A5 меняется скорость, то логика будет такой
(замеряли длительность стартового, все ок)
Принимаем
11111111
1(о! стоповый пришел, включаем отсчет времени)
1… (о! длительность стартового изменилась, значит скорость сменить)
..0100101
И снова.
В итоге максимальные потери — самый первый байт, ибо у него стартовый бит — бесконечность :)
То есть последовательность для слова FFА5 выглядит так
0 11111111 1 0 10100101 1
То есть уровни (в смысле напряжения) стартовых и стоповых бит не отличаются от тех, что в теле. И длительности тоже.
И если у контроллера включено автоопределение и между FF и A5 меняется скорость, то логика будет такой
(замеряли длительность стартового, все ок)
Принимаем
11111111
1(о! стоповый пришел, включаем отсчет времени)
1… (о! длительность стартового изменилась, значит скорость сменить)
..0100101
И снова.
В итоге максимальные потери — самый первый байт, ибо у него стартовый бит — бесконечность :)
0
А почему было не заюзать какой-нибудь логический анализатор, а ля Saleae? Там же в софтине есть декодер UART.
0
Не те цитаты я ожидал
![](https://habrastorage.org/getpro/habr/upload_files/e86/25c/9b6/e8625c9b672f5e96b65c352b82a42110.jpeg)
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
STM32 и FreeRTOS. 5. Приносим пользу и добро!