Сколько уже изучаю низкоуровневое программирование, впервые мне попадается настолько доходчивый, приятный и детальный урок. Большое Вам спасибо, было интересно и здорово!
когда человек на пальцах может объяснить сложные вещи, это значит, что он не просто ориентируется в теме, это значит что он может обучить этому других. этому нужно поучиться профессорам в универах.
В протоколе описано. Программисты руководствуются протоколом. Это официальное соглашение как писать обработку физического уровня. Если ты программист-перехватчик, то придется перебирать протоколы на соответствие перехваченным данным, если программист пишет и передатчик и ( или) приемник, он руководствуется выбранному протоколу с определенными набором параметров, программист другой стороны должен знать какой протокол и какие параметры надо использовать.
RS-232 это относительный интерфейс, то есть данные передаются относительно линии GND, а RS-485 дифференциальный интерфейс. Передача данных идёт относительно обеих линий. Последний более защищён от наводок.
Представим что в конце передается 0101111 устройство как поймет что оно не на постоянку врубилось 1, а что это еще данные идут, или идет договоренность сколько бит ждать?
Здравствуйте! У меня тоже возник подобный вопрос, но Вы, видимо, его не правильно поняли (или мы что-то не понимаем)... Вы объясняли, что количество бит приёма-передачи может быть не фиксированным значением, т.е. 7-9 бит. Как устройство понимает, что 8-й (к примеру) бит - стоповый, а не продолжение пакета?
Перед общением устройства оговаривают стратегию, сколько бит данных, сколько стоповый и есть ли бит четности. Из этих договоренностей ведется расчет времени на один бит.
Очень доходчиво. Спасибо! А вот такой момент- Есть bms плата от шуруповвёртного аккумулятора ( известного бренда))) которая была первоначально залита смолой, которую я благополучно расковырял тонким паяльником всего лишь за две недели))) На плате стоит контролер mega 168 pa. Так же jst разъемы два штуки. И две площадки с контактами по 3 штуки ( без инициалов) Но подозреваю одна из них uart. Вопрос: есть способ определить на них tx и rx? И можно ли через них, если же это uart скопировать прошивку контроллера. Не выпаевая его?
Для UART нужно три провода. Это RX-для приема, TX-для передачи и GND для разницы потенциалов. Кто из устройств начинает передачу решает программист. UART независем, так как имеет отдельные линии для передачи и приема. Пакет начинается со старт бита. По UART общаются только два устройсва не более. Для больше устройств нужен RS485
33:55 "- Четыре единицы - это четное число ? - Нет". Со стоповым битом тоже непонятно - как приемник отличает стоповый бит, имеющий высокий потенциал от бита данных с таким же высоким потенциалом ?
Четыре единицы это чётное число. Дело в том что в UART ведется подсчет количества единиц, а не их значение в бинаре. Четыре единицы, это четыре штуки, а не число 15. Стоповый бит отлавливается получением уровня в определенное время исходя из таймслотов самих бит. Мы же можем определить 59-ю секунду минуты)
Обьясни пожалуйста как распознать уарт или другой протокол. Фишка в том, что два устройства связываются по беспроводной связи. Частота неизвестна. Имеется только одно устройство и хочется к нему подконнектиться. Можно ли обойти это или распознать какие сигналы.
шина это принцип связи когда на линии подключено БОЛЕЕ ДВУХ устройств, когда два устройства это связь по принципу точка-точка, так вот уапп это УЗЕЛ в микроконтроллере(и не только) который изначально предоставлял связь по принципу точка-точка и только с развитием появилась возможность использовать связь по принципу ОБЩАЯ ШИНА когда стали подключать несколько устройств. вообще понятие шина относится к внутренним связям на материнской плате пк, так же ее применяют к внутренним связям внутри микроконтроллера, как то шина адреса, шина данных. уапп "забирает" данные с шины данных шина uart в природе не существует определения!
Спасибо за объяснение. А если вдруг не пройдет проверку на четность? И получается этот способ по четности только 50 на 50 сможет определить целостность пакета?
Что значит не пройдет? Если проверку не пройдет, значит байт пришел битый. А более точную проверку нужно проводить на уровне протокола общения. Например MODBUS
Удивительный и непостижимый для меня этот электронный мир !Меняют прошивку к примеру,как кристаллы меняют свои параметры,свойства?.Если микроконтроллер состоит грубо из миллионов транзисторов ,пол миллиона превращаются в NPN из PNP и наоборот ,и сохраняют своё состояние,?Охренеть, как можно было такое придумать,фантастика!!!
Спасибо всё супер. Но мне кажется или автор путает рисуя шину в виде камаза, поезда и самолета? Шина это дорога-(трасса, ж/д, маршрут самолета), т. е то что соединяет точки маршрута? А вот как раз самолет, поезд и машина это сами байтики которые бегают по шине (сигналы которые устройство посылает в шину на одном конце и которые принимаются на другом)? А протокол описывает как расшифровать эти сигналы-это физический уровень, а информационный как из этих сигналов собирать сообщение и как передавать данные, т. е работа с последовательностью значений или парсинг? Я не прав?
Регистры - это ячейки памяти получаемые в момент производства кристалла. Отсюда они имеют фиксированное расположение в памяти. То есть каждый регистр расположен по строго фиксированному адресу. К примеру если посмотреть регистр настройки направления передачи данных порта B у Atmega8, то он будет равен 0x17. Для того чтобы не запоминать все эти адреса, создают константы директивой препроцессора. Например фирма Атмел в своих средах разработки уже заранее прописала все константы и константа адреса данного регистра выглядит так: #define DDRB _SFR_IO8(0x17). Теперь нам не нужно запоминать адрес регистра, а достаточно написать DDRB = 0xFF; тем самым настроив весь порт на вывод данных. С UART дела обстоят так же. Например регистр приема передачи UDR расположен по адресу 0x0C и объявлен константой #define UDR _SFR_IO8(0x0C). Все регистры кроме защитных энергозависимые и после рестарта или обесточивания МК сбрасываются в состояния по умолчанию. Если интересно узнать адреса других регистров, то это можно сделать почитав документацию на МК. В описании любого регистра всегда указан его адрес.
Нет, не обманул, потому что приёмник действительно должен попасть в середину старт бита (отсчитать 52 мкс) для подавления шумов. То есть он проверяет, действительно ли линия находится в нуле, и если да, то отсчитывает 104 мкс для считывания 1-го инфо бита и т.д.
а в чем проблема? Человек своими словами, на доступном языке доносит принцип, в названии же нет такого "Самое полное и точное описание работы..." Мне для общего понимания очень зашло, очень креативно показано как "железо" определяет следующий бит, никогда нигде так инфу не преподносили.
Сколько уже изучаю низкоуровневое программирование, впервые мне попадается настолько доходчивый, приятный и детальный урок. Большое Вам спасибо, было интересно и здорово!
когда человек на пальцах может объяснить сложные вещи, это значит, что он не просто ориентируется в теме, это значит что он может обучить этому других. этому нужно поучиться профессорам в универах.
Творческий подход к материалу. Предельно ясно и доступно. Молодец.
После такой информаций о UART.! Не сложно создать свое программное уарт!👍
Спасибо за разжевывание темы, все понятно 👍
Качественное объяснение, большое спасибо!
Классный канал 👍 спасибо что делитесь своими знаниями
Красавчик
Реально понимаешь свое нелегкое дело, я понял 80% инфы с первого просмотра
Спасибо тебе, добрый человек. Где ж ты был раньше)))
Все понятно, на пальцах объяснил. Спасибо.
Огромное спасибо. Очень хорошо преподнесено.
Хорошее объяснение для ламеров
Спасибо, великолепно, осветил тему очень понятно! )
Великопный ролик. Автор, большое спасибо)
Здравствуйте, вот смотрите если сигнал будет 1011111, как приемник поймет что передача не закончилась? и что это передается все еще 1 пакет?
В протоколе описано. Программисты руководствуются протоколом. Это официальное соглашение как писать обработку физического уровня. Если ты программист-перехватчик, то придется перебирать протоколы на соответствие перехваченным данным, если программист пишет и передатчик и ( или) приемник, он руководствуется выбранному протоколу с определенными набором параметров, программист другой стороны должен знать какой протокол и какие параметры надо использовать.
спасибо за объяснения. начало положенно!
Супер видео!!!! Спасибо!!!
спасибо, стало многое понятно
Спасибо, все разложил понятно и доходчиво. Ждём продолжения.
А продолжение уже есть. Программный uart для закрепления.
Благодарствую 🤝🤝🤝
Шина же это когда может быть больше двух устройств? Кроме феди может быть и андрей и сергей и другие города?
Классное видео! Спасибо! А не подскажете, если посылка 14 байт, то будет 14 стартовых импульсов?
Да
Спасибо, только не понял в чем отличие между rs232 или 485 или др вроде там то же самое
RS-232 это относительный интерфейс, то есть данные передаются относительно линии GND, а RS-485 дифференциальный интерфейс. Передача данных идёт относительно обеих линий. Последний более защищён от наводок.
Представим что в конце передается 0101111 устройство как поймет что оно не на постоянку врубилось 1, а что это еще данные идут, или идет договоренность сколько бит ждать?
Антон Кузнецов на каждый бит выделен квант времени. 1/битрейт.
как понять приемнику что сеанс окончен, если будет сигнал 01010111?
Жарас Капашев Читаем выше...
Здравствуйте! У меня тоже возник подобный вопрос, но Вы, видимо, его не правильно поняли (или мы что-то не понимаем)... Вы объясняли, что количество бит приёма-передачи может быть не фиксированным значением, т.е. 7-9 бит. Как устройство понимает, что 8-й (к примеру) бит - стоповый, а не продолжение пакета?
Перед общением устройства оговаривают стратегию, сколько бит данных, сколько стоповый и есть ли бит четности. Из этих договоренностей ведется расчет времени на один бит.
Молодец! Нового я ничего не взял... надеялся больше о регистрах речь будет но на х1.5 скорости смотрится отлично
Очень доходчиво. Спасибо! А вот такой момент- Есть bms плата от шуруповвёртного аккумулятора ( известного бренда))) которая была первоначально залита смолой, которую я благополучно расковырял тонким паяльником всего лишь за две недели))) На плате стоит контролер mega 168 pa. Так же jst разъемы два штуки. И две площадки с контактами по 3 штуки ( без инициалов) Но подозреваю одна из них uart. Вопрос: есть способ определить на них tx и rx? И можно ли через них, если же это uart скопировать прошивку контроллера. Не выпаевая его?
Так сколько проводов нужно для uart?
Как устройство понимает что этот пакет был для него?
Как устройства решают какое из них будет говорить теперь?
Для UART нужно три провода. Это RX-для приема, TX-для передачи и GND для разницы потенциалов. Кто из устройств начинает передачу решает программист. UART независем, так как имеет отдельные линии для передачи и приема. Пакет начинается со старт бита. По UART общаются только два устройсва не более. Для больше устройств нужен RS485
@@flexoalex4168 Спасибо!Значит только Вася и Федя .ага ясно
Как сделать два передающих устройства и один слушает?
RS485
Доброго времени суток скажите под заказ сможете написать драйвер на шине uart ?
Нет
Про какой форум Вы говорите в начале?
33:55 "- Четыре единицы - это четное число ? - Нет". Со стоповым битом тоже непонятно - как приемник отличает стоповый бит, имеющий высокий потенциал от бита данных с таким же высоким потенциалом ?
Четыре единицы это чётное число. Дело в том что в UART ведется подсчет количества единиц, а не их значение в бинаре. Четыре единицы, это четыре штуки, а не число 15. Стоповый бит отлавливается получением уровня в определенное время исходя из таймслотов самих бит. Мы же можем определить 59-ю секунду минуты)
Спасибо!!!
Хорошо объяснил
Thanks!
Обьясни пожалуйста как распознать уарт или другой протокол. Фишка в том, что два устройства связываются по беспроводной связи. Частота неизвестна. Имеется только одно устройство и хочется к нему подконнектиться. Можно ли обойти это или распознать какие сигналы.
Частотомер и анализ импульсов.
Я просто сказал аурт случайно, и появилось это видео.
шина это принцип связи когда на линии подключено БОЛЕЕ ДВУХ устройств, когда два устройства это связь по принципу точка-точка, так вот уапп это УЗЕЛ в микроконтроллере(и не только) который изначально предоставлял связь по принципу точка-точка и только с развитием появилась возможность использовать связь по принципу ОБЩАЯ ШИНА когда стали подключать несколько устройств.
вообще понятие шина относится к внутренним связям на материнской плате пк, так же ее применяют к внутренним связям внутри микроконтроллера, как то шина адреса, шина данных. уапп "забирает" данные с шины данных
шина uart в природе не существует определения!
получается что сперва смотрим какая шина, затем выбираем протокол?
Почему. Например MODBUS, может работать по линиям UART, UTP, WiFi, bluetooth и тд.
@@flexoalex4168 в галаве бардак)))
@@flexoalex4168 пересматриваю)))
Спасибо за объяснение. А если вдруг не пройдет проверку на четность? И получается этот способ по четности только 50 на 50 сможет определить целостность пакета?
Что значит не пройдет? Если проверку не пройдет, значит байт пришел битый. А более точную проверку нужно проводить на уровне протокола общения. Например MODBUS
Удивительный и непостижимый для меня этот электронный мир !Меняют прошивку к примеру,как кристаллы меняют свои параметры,свойства?.Если микроконтроллер состоит грубо из миллионов транзисторов ,пол миллиона превращаются в NPN из PNP и наоборот ,и сохраняют своё состояние,?Охренеть,
как можно было такое придумать,фантастика!!!
Спасибо всё супер. Но мне кажется или автор путает рисуя шину в виде камаза, поезда и самолета? Шина это дорога-(трасса, ж/д, маршрут самолета), т. е то что соединяет точки маршрута? А вот как раз самолет, поезд и машина это сами байтики которые бегают по шине (сигналы которые устройство посылает в шину на одном конце и которые принимаются на другом)? А протокол описывает как расшифровать эти сигналы-это физический уровень, а информационный как из этих сигналов собирать сообщение и как передавать данные, т. е работа с последовательностью значений или парсинг? Я не прав?
краткость талант
даль что объясняя разницу протоколов и шины, человек и там и там приводит в пример с машинкой, и в чём разница, и там машинка и там
Что такое регистры в микроконтроллере и как их искать? Они указаны в прошивке? А если мне нужно считать прошивку из контроллера?
Регистры - это ячейки памяти получаемые в момент производства кристалла. Отсюда они имеют фиксированное расположение в памяти. То есть каждый регистр расположен по строго фиксированному адресу. К примеру если посмотреть регистр настройки направления передачи данных порта B у Atmega8, то он будет равен 0x17. Для того чтобы не запоминать все эти адреса, создают константы директивой препроцессора. Например фирма Атмел в своих средах разработки уже заранее прописала все константы и константа адреса данного регистра выглядит так: #define DDRB _SFR_IO8(0x17). Теперь нам не нужно запоминать адрес регистра, а достаточно написать DDRB = 0xFF; тем самым настроив весь порт на вывод данных. С UART дела обстоят так же. Например регистр приема передачи UDR расположен по адресу 0x0C и объявлен константой #define UDR _SFR_IO8(0x0C). Все регистры кроме защитных энергозависимые и после рестарта или обесточивания МК сбрасываются в состояния по умолчанию. Если интересно узнать адреса других регистров, то это можно сделать почитав документацию на МК. В описании любого регистра всегда указан его адрес.
Flexo Alex, Спасибо. Пока сложно, буду изучать дальше
Приветствую автора видео. Не понятно в какой момент и как указываем битрейт
почему аудио моно только в левом канале?
Наверное потому что я стоял слева.
@@flexoalex4168 блин, по ходу и отраженного звука в правом не слышно. чудеса звукоакустические !
немного не понял момент с двумя стопбитами
спасибо)то есть я могу связать свой контроллер по уарту с контроллером холодильника и обмениваться данными?,-например
Владислав Иванов Да, если известен протокол обмена.
Скажите пожалуйста. Как предается двухбайтовые данные по UART? Допустим мне нужо передать 16 битное число Uint16_t. А данные передаются по 8 бит?
Разбить на два байта и передать по очереди, а на приемной стороне собрать обратно.
на 30 минуте обманул. приемник ставит в начале таймер на чтение данных не на 52 микросекунды, а на 156 микросекунд, потому что стартовый бит.
Нет, не обманул, потому что приёмник действительно должен попасть в середину старт бита (отсчитать 52 мкс) для подавления шумов. То есть он проверяет, действительно ли линия находится в нуле, и если да, то отсчитывает 104 мкс для считывания 1-го инфо бита и т.д.
СПАСИБО
Спасибо за старания, но тема не раскрыта. Все смазано...
Про JTAG пожалууууса)))
А что про него рассказать?
ниче про RX TX не сказано....
Я не понимаю от Васи к Феди. Неужели просто нельзя сказать про величину пакета без автобусов и велосипедов!?
Не все понимают, многим проще на автобусах понимать.
@@flexoalex4168 возможно. наверное просто привык :)
Ну разжевал))
да полный эпизодец , ьььььььь
общие понятия понятны а с подробностями уже можно и википедии посмотреть .... в общем толково
СПАСИБО :-)
Непонятно
ролик переименуй - типа юарт для слабоумных
😀😀
Water, water, water .....
а в чем проблема? Человек своими словами, на доступном языке доносит принцип, в названии же нет такого "Самое полное и точное описание работы..."
Мне для общего понимания очень зашло, очень креативно показано как "железо" определяет следующий бит, никогда нигде так инфу не преподносили.
Занудное видео вы умеете тянуть резину
Как раз для таких тормозов как я, это идеальное видео.
срана советов . сам плохо услышал и не понял , но учу других . прогресс .
Извини сенсей, облажался. Где Вас услышать можно?
Нудятина.... Лекция для детского сада что ли?
Да, это лекция для детского сада. Нужна сухая и прямая теория, топай в ВУЗ.
интересно было
афтар, что ты несёшь???
не обращай внимание, это лишняя информация