PROTOCOLS: UART - I2C - SPI - Serial communications

Поделиться
HTML-код
  • Опубликовано: 1 янв 2025

Комментарии •

  • @avishjain4226
    @avishjain4226 3 года назад +233

    That was a nice explanation! However, I want to mention few things
    1. I2C is Half-Duplex (not Simplex)
    2. SPI is Full Duplex
    3. In I2C, we can configure the peripheral to both the modes - Acknowledge and No Acknowledge

    • @elhoward7440
      @elhoward7440 3 года назад

      SMBus and I2C are slightly different protocols using the same hardware. Isn't No Acknowledge actually SMBus?

    • @AMG-gc4io
      @AMG-gc4io 3 года назад +2

      what is I2C Protocol in Arduino Nano ?

    • @knuckleduster05
      @knuckleduster05 2 года назад +6

      @@elhoward7440 no, ACK and NAK are both part of the I2C addressing protocol. When you write to a slave, the slave needs to pull down the SDA line to ACKnowledge that it is ready to receive communications.

    • @thekitsunedev_hun
      @thekitsunedev_hun 2 года назад +2

      @@AMG-gc4io Its the Wire.h library and the same pinout as the uno (A4,A5)

    • @ksawery6568
      @ksawery6568 2 года назад +4

      Also, I don't think you say Bauds/second, as 1 Baud = 1 bit/second

  • @savage8336
    @savage8336 5 лет назад +123

    This is honestly one of the most helpful videos I've ever watched. I wish I saw this in school a few years ago.

    • @mugglepower
      @mugglepower Год назад

      fuck schools man schools never teach you shit. of the 100% of content I learnt from college(in which my major MATSE is top 10 in US) probably 15% of the shit is actually useful. rest they just make you jump through hoops and run in circles and chase your own tail. I talked to professors and very smart people(well, smarter than me for sure) and they all tell me they purposefully make this shit difficult. I picked up more programming stuff in a month with my flipper zero than an entire semester worth of programming courses in college/. by the end I finished my college programming class i still have trouble fucking printing hello world but with interest and a bit of self learning I'm writing sql now.

    • @AiJ_Alew
      @AiJ_Alew Год назад +6

      I m not of this theme. Even dont know what that chips are for.... i m cab driver . Wanted just watch some fun on utube before sleep.
      And even I understood how these guys communicate😊
      Really good lesson.
      I wish i could see that 50 years ago. Maybe that could change my life

  • @ELECTRONOOBS
    @ELECTRONOOBS  5 лет назад +2

    Sign up at ELECTRONOOBS.io: electronoobs.io/
    Follow me on FACEBOOK for more: facebook.com/Electronoobs
    help me on Patreon: www.patreon.com/ELECTRONOOBS

    • @TheJay6621
      @TheJay6621 5 лет назад

      and Sign up at electronoobs.io

    • @ELECTRONOOBS
      @ELECTRONOOBS  5 лет назад +1

      @@TheJay6621 Thanks, just added that!

  • @puriap250
    @puriap250 5 лет назад +33

    Finally I understand how timing of serial communication works. Thank you.

  • @arnavjain7564
    @arnavjain7564 5 лет назад +42

    This is something I was really planning to study and the fact that you made a video on this at the perfect time is just awesomeee thanks😄

  • @wgm-en2gx
    @wgm-en2gx 5 лет назад +509

    CAN and JTAG would be interesting.

    • @adiigeak8568
      @adiigeak8568 5 лет назад +2

      +1

    • @whootoo1117
      @whootoo1117 5 лет назад +18

      JTAG, CAN, RS-232 & MIDI

    • @Ashishchabha
      @Ashishchabha 5 лет назад +22

      CAN is also very commonly used in protocols. Please make a video.

    • @DanielToebe
      @DanielToebe 5 лет назад +3

      Yes I would love to see a deep dive in to can

    • @MarceloCutin
      @MarceloCutin 5 лет назад +10

      Absolutely agree. CAN bus would be great.

  • @harshdesai1932
    @harshdesai1932 5 лет назад +16

    You just have made me understand one of my most confusing Topic. so glad to have you in my subscription list. You are amazing. realmente te aprecio hermano

  • @cmfanz
    @cmfanz 5 лет назад +4

    @electronoobs, just a little correction needed in the table at 10:27. I2C does have an acknowledge system. The slave will pull the SDA line low when it has successfully received the transmission from the master. This will show up as the last pulse that appears after all the data bits are transmitted. This last pulse will be a high if the master does not receive an acknowledge from the slave. This way, you can clearly get a confirmation of the handshake.

  • @pertileluca
    @pertileluca 5 лет назад +24

    In every video your animations are a pleasure for the eyes!

  • @garrytuohy9267
    @garrytuohy9267 Год назад

    Nicely summarized. It would be interesting to see how JTAG compares with these protocols.

  • @abdulkhadarmohd7283
    @abdulkhadarmohd7283 5 лет назад +26

    Yes sir we want more videos on this topic thank you, you are awesome
    Love from india

    • @puneethkumar703
      @puneethkumar703 4 года назад

      hi Mohammed Arbaz,
      I am a part of the open-source Arduino simulator development team. It will be great if you can have a look and share your feedback🙏😃
      Some of the examples are here
      wokwi.com/arduino/libraries
      and here
      www.wokwi.com as well
      if it is interesting kindly let me know

  • @yadusolparterre
    @yadusolparterre 4 года назад +2

    Wow, it's really rare to find videos that are explained so clearly !

  • @greymind0072
    @greymind0072 4 года назад +24

    I respect and really appreciate the effort it would have taken for you to make such nice animations for explaining. Its a delight to see your work . I'm a fan, really helped me to understand concepts better. I will appreciate if you show more of oscilloscope result with a simple example data. Otherwise i love the work. Its just A1 class

  • @djihadbouakaz6355
    @djihadbouakaz6355 Год назад

    The most simplified video in the field of telecommunication ever, thanks a lot

  • @rayhan8701
    @rayhan8701 3 года назад

    this is the only video on the youtube which is very clean about protocols

  • @elhoward7440
    @elhoward7440 3 года назад +2

    PCIe uses serial lanes because of another advantage of serial, parallel interfaces suffer from signal skew of bits sent over traces of differing length, so the top clock speed of a serial bus can be higher than the top speed of a parallel bus. PCIe can have up to 16 serial lanes, but data is divided a byte at a time to each lane rather than a bit at a time. We have such good serdes chips now that serial is taking over.

  • @fldr4362
    @fldr4362 Год назад +2

    what a tutorial! wow thank you my friend!

  • @neilbedwell7763
    @neilbedwell7763 Год назад +2

    Really concise summary. I had next to no idea of each of these implementations, or even much of an idea of their spec beyond a communication vector, so this becomes a very welcoming introduction and comparison

  • @balajiprakash1130
    @balajiprakash1130 4 года назад +6

    The best explanation I have ever heard!!! Hats off ;) This video just solved a great mystery in my mind on serial communication.

  • @TheHookUp
    @TheHookUp 5 лет назад +2

    This is a really great video. I teach this in my intro to engineering class and this video is going to be a must watch addition to that lecture. Cheers.

  • @pavankumar270489
    @pavankumar270489 3 года назад

    I believe at 5:10 the start bit is the once which leaves the transmitter first and also reaches the receiver first. So the positioning of start bit in the video should be away from Tx and towards Rx.

  • @dikshitadesai
    @dikshitadesai 2 года назад +2

    I so appreciate you elaborating these concepts on the circuit boards. That literally saved me hours of hustle. Very well explained! Thank you

  • @spabbarter
    @spabbarter 4 года назад +4

    Please hook us up with the JTAG and CAN most definitely. USB and debug would be helpful as well. I’ve had a lot of trouble finding good videos for these, but this one on serial communications was superb!! Well done!

  • @GuilhermeFerreira-po5ek
    @GuilhermeFerreira-po5ek 4 года назад

    O sotaque não engana. TUGAS NO PODER!

  • @arijitghosh6378
    @arijitghosh6378 4 года назад +8

    Thanks for simplifying these seemingly complex protocols for us. Up until now I kinda treated them as black boxes in my head to keep the complexity away but now it feels great to have a fundamental understanding of how they work. Although Id love to see a bit more explanation on SPI.

  • @Tyler-kh6gp
    @Tyler-kh6gp 4 года назад +2

    This is a really awesome video! I've rewatched it 3 or 4 times over the years to prepare for interviews

  • @ak771-i9i
    @ak771-i9i 3 года назад

    You removed all the doubts which I had since 30 years in my mind
    Thanks alot

  • @benhetland576
    @benhetland576 5 лет назад +91

    Speaking of "bauds per second" is actually not very useful in this context, because the term "baud" itself actually means "state changes per second"! (Thus bauds/sec would technically be the _change_ in the rate of communication.) A change in state of a communication line may also - and often does - represent more than one bit, although for I2C and RS-232 it does indeed represent only 1 bit per (potential) state change, so its baudrate equals the bitrate or bps (bits per second).

    • @kuukatti
      @kuukatti 5 лет назад +8

      And also, I2C does not need to know the baud-rate beforehand, that's why we have a wire for a clock.

    • @alteriaautomation6867
      @alteriaautomation6867 4 года назад +2

      yeeep

    • @remus-alexandrusimion3439
      @remus-alexandrusimion3439 3 года назад +2

      In most digital communications baudrate is bitrate. The difference applies to analog communication, where phase shift and multiple amplitudes can encode bits.
      And yes, all sync communication can lack the bit rate information since the clock establishes the bitrate. It is however usual to establish some margins for each device, and if master is outside those margins errors can occur (usually due to hardware timing restrictions of some other kind).

    • @hansdegroot652
      @hansdegroot652 8 месяцев назад

      So i2c could do adaptive baud rate? In theory at least

    • @yasirrakhurrafat1142
      @yasirrakhurrafat1142 4 месяца назад

      ​@@hansdegroot652 i think you could develop a program on the sending and receiving device. That'd send a signal to the receiving device to change its baud rate (on the receiving device). On the uart communication system as well, although it'd take its sweet time for the changes to take effect.
      As for the i2c, itd be just about instantaneous. Soo, yes.. theoretically you could have adaptive baud rate on the i2c, although I think a predetermined, static rate should probably be more efficient and stable.

  • @acecool1715
    @acecool1715 3 года назад +2

    This is great, hope this series continues

  • @SahilKhan-pt6pj
    @SahilKhan-pt6pj 5 лет назад +2

    Why not you should surely post more.I really admire and thank you for these videos.Keep it up.

  • @abdullahkhan-qk3lk
    @abdullahkhan-qk3lk 3 года назад

    So far the Best Video i have seen on Communication Protocols! Amazing explanation bro!

  • @domestron4422
    @domestron4422 5 лет назад +22

    Nice video man You inpired me to start youtube and making
    videous I love how much work you put on videos You are awesome! I love some day to be one of my subscribers.

    • @tonysfun
      @tonysfun 5 лет назад +1

      I agree! Well done videos! Mine are unedited and nothing even close to these!

  • @kentkvalnes4621
    @kentkvalnes4621 2 года назад

    This presentation was one of the best I've seen in a while. Simple and very easy to understand. thanks🙂

  • @dontstop_fun6
    @dontstop_fun6 4 года назад

    Since long time, I was searching for such an explanation and today by your video my concept got clear about bauds transmission. I'm really thankful to you for that.

  • @jvon3885
    @jvon3885 4 года назад

    I wish I would have paid more attention in school. But I'm glad ppl like you are around to whip me into shape.

  • @davewreski6900
    @davewreski6900 4 года назад

    You make it much easier to understand using your Scope. It is nice to see someone knows what a Oscope to display what you are describing. Keep up the good work. UP SCOPE !

  • @bramburn
    @bramburn 5 лет назад +2

    Dude I couldn’t explain this any better. Well done

  • @montaguemonro565
    @montaguemonro565 3 года назад

    This is the first video that explains this in a way that makes perfect sense to me. Thanks!

  • @rehmankhan-ve9vo
    @rehmankhan-ve9vo 4 года назад

    Thanks sir I am lucky that I have found this video. This is the best explanation about digital protocols that I have ever seen.
    Thanks a lot for this.

  • @RohitSingh-px7op
    @RohitSingh-px7op 3 года назад

    Oh my God !!! i am so thankful to you. I mean u did so much effort on one video for explaining each and everything and that too for free❤️❤️❤️❤️❤️❤️u r legend

  • @justdoingodswork
    @justdoingodswork 3 года назад +6

    We need a video on CAN protocols too, thank you so much for this video.

  • @ayushkaiwart2451
    @ayushkaiwart2451 4 года назад

    Easy understand videos. Its Better than the IOT class lectures that i attended in my college.

  • @MrForcat
    @MrForcat Год назад

    Masterclass, I studied a bit of this decades ago but much better explained. Now I want to create an MBUS CDC emulator for 30 years old car stereos.

  • @rgusso
    @rgusso Год назад

    best video so far explaining protocols in a simple way! thanks for doing it!

  • @bassome3000ify
    @bassome3000ify 5 лет назад +1

    This is awesome amazing superior mesmerizing unbelievable overwhelmingly beautiful and breathtaking
    This is super important, and when you make a video about it, it becomes demystified, understandable by humans 😁 thanks a ton a ton, keep it up, love your work.
    I am sure most of your audience agree with me

  • @computerengineering390
    @computerengineering390 4 года назад

    This was a concise and well-defined explanation. It is the first time that I see such a great video in this subject here on youtube. I'm inclined to be your subscriber now, thank you.

  • @1DR31N
    @1DR31N 4 года назад +3

    I enjoyed a lot this video,showing the oscilloscope waveforms. Awesome. Congratulations.

    • @XanthiumIndustries
      @XanthiumIndustries 2 года назад

      we have a youtube channel that deals with Arduino,ATmega328P,Java,Serial programming ,robotics. So if you like these stuff do Subscribe. Sorry for annoying

  • @kothamahesh100
    @kothamahesh100 3 года назад

    Its really a clear explanation with all the variations among communication protocols. Expecting vedios on CAN and JTAG. thanks for the vedio..

  • @taimooredits1841
    @taimooredits1841 2 года назад

    Great, this video is more helpful for everyone. your way to teach is totally awesome.

  • @xaviervillamar7886
    @xaviervillamar7886 5 лет назад

    Eres un grande amigo! gracias por renovar mi amor por la eléctronica. Sigue asi... tu eres digno que te llamen Maestro.

  • @whitenorthstar
    @whitenorthstar 2 года назад

    The best explanation I have come across thus far...thanks!

  • @1.21gw5
    @1.21gw5 3 года назад

    amazing clarity.......................keep up the good work brother

  • @praveenraj29
    @praveenraj29 5 лет назад +1

    Awesome Video tutorial on Serial Communication with very clear explanation.
    Kudos Electronoobs!!!

  • @drnda2007
    @drnda2007 2 года назад

    Very good and, I'd say, 'honest' presentation, quick enough not to be boring and without any unnecessary talk to make video purposely longer.

  • @moinshaikh6684
    @moinshaikh6684 4 года назад

    Very very nice explaination with practical! We need such brilliant teacher for the world!

  • @sameerUNO10100
    @sameerUNO10100 5 лет назад +6

    You are making grate videos which are very useful for us
    Keep making such videos: )

  • @pnutamechatronix544
    @pnutamechatronix544 5 лет назад +6

    Please do more on CAN communication and the others. You are such a great help in education and simplifying such difficult subjects many thanks

  • @godsdelightjude2382
    @godsdelightjude2382 2 года назад

    Really nice illustrations, loved the voice over too. Perfect video 📸 🤩

  • @likeitornot6821
    @likeitornot6821 4 года назад

    Thank you bro, you have explained the concept confused me for a longtime in a way that even a beginner can understand

  • @JasonDrennen
    @JasonDrennen 4 года назад

    Thank you sir I have been using these protocols for quite a few years now. This video explained it to me better then I've ever understood. I would just hook it up as it said and not realize the difference.

  • @SearchFT
    @SearchFT 4 года назад

    Very nice informative. Short and sweet. No wharra wharra. Just straight talk, how technical people like it 😋👍🏻 Thanks

  • @jakehealthx
    @jakehealthx 3 года назад +2

    This was so helpful. I wish my digital electronics professor explained it like this. Thank You!

  • @noorulhasanfzn003
    @noorulhasanfzn003 4 года назад +1

    Thank you for this video.
    Best thing about you, is that you keep it very simple yet effective.
    Please make a video on CAN communication.

  • @siddharthmali5841
    @siddharthmali5841 5 лет назад +17

    Great.
    Please make video on protocols like CAN and USB.

  • @ilm5elee197
    @ilm5elee197 5 лет назад

    With each new video, quality of content is increasing. This channel is next eevblog.

  • @Hennir_97
    @Hennir_97 2 года назад

    Thanks for making this video! You clearly explain how these forms of communication works for beginners (or me at least). A lot of things regarding computer and signal communication makes complete sense now. Keep up the great work!

  • @michaelwhisman2479
    @michaelwhisman2479 4 года назад

    Thank you. As I am learning how to make things for myself, these come up a lot and have been wondering exactly why a certain protocol might be more useful in certain situations. This helped me a lot to continue my learning. Thank you

  • @meirrose2347
    @meirrose2347 5 лет назад

    In one great video I learned so much about the serial connection I use every day on my arduino. Thank you

  • @kamilkosi9101
    @kamilkosi9101 5 лет назад +8

    Amazing video. I was always wondering about different types of communication! Thank you!

  • @omskariyazmaraikayer913
    @omskariyazmaraikayer913 4 года назад

    Brief and to the point. Very useful video .

  • @volkangundogdu1008
    @volkangundogdu1008 2 года назад

    Nice and clear explanation of baud and reading process of a bit in a bit train.

  • @lincolnkarim1
    @lincolnkarim1 5 лет назад

    Very clear explanation. If I may suggest--It may be worthwhile to draw the vertical sides of the pulses slightly slanted to remind us that the pulses are not ever square, but it takes time to climb from low to high and likewise to fall from high to low. I believe that the counting actually takes place at the middle of the slope (zero crossing) of the leading and trailing edges.
    Thanks for taking the time to produce this video.

  • @avinashreddybhavanam
    @avinashreddybhavanam 5 лет назад +70

    sir continue the videos with other protocols to

    • @XanthiumIndustries
      @XanthiumIndustries 2 года назад

      we have a youtube channel that deals with Arduino,ATmega328P,Java,Serial programming ,robotics. So if you like these stuff do Subscribe. Sorry for annoying

  • @SteveH-TN
    @SteveH-TN Месяц назад

    Appreciate you sharing this video and information. It has been very informative, well organized & helpful. Definitely I learned something new 😁

  • @ayushsalve1211
    @ayushsalve1211 3 года назад

    u saved me from my orals . thank you sir

  • @PrasadPusalkar-b9f
    @PrasadPusalkar-b9f Год назад

    Great video buddy cant be more simplified than this

  • @carlosbah4623
    @carlosbah4623 2 года назад

    The best explanation out there.
    Btw in the uart explanation . Shouldn't be the data order from rx to TX

  • @HealzDog
    @HealzDog 4 года назад

    You explained serial communication better than anyone else

  • @adyaandagastyasharma3202
    @adyaandagastyasharma3202 3 года назад

    Very simplified explanation of such complex concept.

  • @surya.6283
    @surya.6283 5 лет назад

    Please make for other serial communication protocols. I am waiting along with other thousands of people. Your explanation is excellent.

  • @jonasduell9953
    @jonasduell9953 Год назад

    Well, this sums it up greatly. I work a lot with digital signaling via I2C which usually come in a 4 pin layout, GND, VCC, SDA and SCL since active devices need an additional power source.
    Anyway, great content, subbed

  • @sanderd17
    @sanderd17 5 лет назад +1

    Serial is slower in theory, but in practice, it's very hard to match the different bits up when using parallel communication. The faster your clock, the harder parallel communication becomes. With the clock speeds we have today, serial communication is without a doubt the most stable and fastest way. You can also double a serial link by doubling the wires. But unlike in parallel communicating, you don't have to synchronize the bits, you only have to synchronize after large portions of data have arrived. The fastest serial links (like gigabit ethernet, and USB C) , now use multiple wire pairs for serial communication.

  • @RoaringMuffin
    @RoaringMuffin Год назад

    WOW Amazing video and explanation. Bunch of things that have perplexed me for years solved in 12 minutes... JEEZ where were you in university.

  • @WayneRiesterer
    @WayneRiesterer 5 лет назад +8

    Great video! Technically, the I2C bus is half-duplex (not simplex) and the SPI is full-duplex.

    • @XanthiumIndustries
      @XanthiumIndustries 2 года назад

      we have a youtube channel that deals with Arduino,ATmega328P,Java,Serial programming ,robotics. So if you like these stuff do Subscribe. Sorry for annoying

  • @praveenarora4589
    @praveenarora4589 3 года назад

    great job man!! very shortly and precisely you describe everything.....

  • @AntoineAshraf
    @AntoineAshraf 4 месяца назад

    Very nice video, just a few things to note
    - UART can work in both half/full duplex modes
    - There can be more than 1 stop bit in UART in some cases
    - I2C is a half-duplex protocol
    - SPI is a full-duplex protocol
    - The concept of acknowledgement in I2C is based on whether the slave is ready to receive data or not, so it's not applicable to generalize the term over I2C.

  • @dmo3074
    @dmo3074 11 месяцев назад

    This was excellent, exactly what I was looking for. Nice overview.

  • @topten7064
    @topten7064 5 лет назад +1

    You are great teacher and good voice, thank you very much

  • @chuckthebull
    @chuckthebull 4 года назад

    I have worked a lot with MIDI protocol, it uses mostly three 8 bit bytes in a row with a low going start bit.. started in the 80s for communication between synthesis and still used today even professionally.

  • @NIKFLICK707
    @NIKFLICK707 5 лет назад

    First of all thanks for making this very in-depth, content rich video, and for other comms a CAN would be great, love your accent😍😍😍👏👏👏

  • @vladimirgrach1235
    @vladimirgrach1235 2 года назад

    Great video! Short and straight to the point! Thanks!

  • @notchaudiollc765
    @notchaudiollc765 4 года назад

    Thanks for this video! Best explanation for a hardware guy like me I’ve seen. Getting into UART for BLE radios here.

  • @varunsontakke9810
    @varunsontakke9810 5 лет назад

    Dude it's awesome I learnt that in the best way becoz of you . Keep going . We need more information about the protocols .

  • @SpongeBlaster
    @SpongeBlaster 2 года назад +1

    This video was extremely attainable and helpful. As a CS grad, I have little EE knowledge but was able to understand the concepts in this video. I'm looking forward to a more thorough understanding now.

  • @wowtah
    @wowtah 5 лет назад +1

    Well done, nice explanation. It's worth noticing that I2C is bi directional too. A master can read values from its slave devices.

  • @xnetworkDEVILx
    @xnetworkDEVILx 5 лет назад +1

    man your topics are just what i need ...just thanks man

  • @54V4
    @54V4 3 года назад

    This was explained so well and clear that no "Dr." from my fairly highly regarded UK university would be able to in much longer time. Kind thx! [SUB}

  • @cyberprodigy
    @cyberprodigy 3 года назад

    Thanks, this is really the best explanation online.

  • @Fachher
    @Fachher Год назад

    Hi,
    didn't you forget to clarify something? At 2:33 you are mentioning that transmitting data via serial is slower then parallel communication. This is definitely true if you implement it in software and you send one bit per cpu clock cycle. But this is not the way you will send the data. In my opinion you will send one byte into the internal spi register with one cpu cycle and the spi device will send this data with a different clock cycle.
    CPU - one byte (~1 cpu cycle) -> SPI -> ~10 spi clock cycle -> SLAVE spi
    Currently this is my understanding how i2c works.

  • @landroveraddict2457
    @landroveraddict2457 5 лет назад +14

    Great video, thank you for sharing. Where I'm from we pronounce UART as "You Art" but I guess we could both be right. Please keep doing videos your explanations are very good. 5*