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