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 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.
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.
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
Sign up at ELECTRONOOBS.io: electronoobs.io/ Follow me on FACEBOOK for more: facebook.com/Electronoobs help me on Patreon: www.patreon.com/ELECTRONOOBS
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
@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.
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
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
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.
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
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.
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.
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!
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.
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).
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 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.
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.
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.
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 !
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
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
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.
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
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.
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!
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
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.
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
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
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.
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
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.
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.
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.
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.
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*
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
SMBus and I2C are slightly different protocols using the same hardware. Isn't No Acknowledge actually SMBus?
what is I2C Protocol in Arduino Nano ?
@@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.
@@AMG-gc4io Its the Wire.h library and the same pinout as the uno (A4,A5)
Also, I don't think you say Bauds/second, as 1 Baud = 1 bit/second
This is honestly one of the most helpful videos I've ever watched. I wish I saw this in school a few years ago.
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.
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
Sign up at ELECTRONOOBS.io: electronoobs.io/
Follow me on FACEBOOK for more: facebook.com/Electronoobs
help me on Patreon: www.patreon.com/ELECTRONOOBS
and Sign up at electronoobs.io
@@TheJay6621 Thanks, just added that!
Finally I understand how timing of serial communication works. Thank you.
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😄
CAN and JTAG would be interesting.
+1
JTAG, CAN, RS-232 & MIDI
CAN is also very commonly used in protocols. Please make a video.
Yes I would love to see a deep dive in to can
Absolutely agree. CAN bus would be great.
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
@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.
In every video your animations are a pleasure for the eyes!
Nicely summarized. It would be interesting to see how JTAG compares with these protocols.
Yes sir we want more videos on this topic thank you, you are awesome
Love from india
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
Wow, it's really rare to find videos that are explained so clearly !
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
The most simplified video in the field of telecommunication ever, thanks a lot
this is the only video on the youtube which is very clean about protocols
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.
what a tutorial! wow thank you my friend!
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
The best explanation I have ever heard!!! Hats off ;) This video just solved a great mystery in my mind on serial communication.
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.
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.
I so appreciate you elaborating these concepts on the circuit boards. That literally saved me hours of hustle. Very well explained! Thank you
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!
O sotaque não engana. TUGAS NO PODER!
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.
This is a really awesome video! I've rewatched it 3 or 4 times over the years to prepare for interviews
They actually asked you stuff about this?
You removed all the doubts which I had since 30 years in my mind
Thanks alot
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).
And also, I2C does not need to know the baud-rate beforehand, that's why we have a wire for a clock.
yeeep
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).
So i2c could do adaptive baud rate? In theory at least
@@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.
This is great, hope this series continues
Why not you should surely post more.I really admire and thank you for these videos.Keep it up.
So far the Best Video i have seen on Communication Protocols! Amazing explanation bro!
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.
I agree! Well done videos! Mine are unedited and nothing even close to these!
This presentation was one of the best I've seen in a while. Simple and very easy to understand. thanks🙂
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.
I wish I would have paid more attention in school. But I'm glad ppl like you are around to whip me into shape.
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 !
Dude I couldn’t explain this any better. Well done
This is the first video that explains this in a way that makes perfect sense to me. Thanks!
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.
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
We need a video on CAN protocols too, thank you so much for this video.
Easy understand videos. Its Better than the IOT class lectures that i attended in my college.
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.
best video so far explaining protocols in a simple way! thanks for doing it!
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
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.
I enjoyed a lot this video,showing the oscilloscope waveforms. Awesome. Congratulations.
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
Its really a clear explanation with all the variations among communication protocols. Expecting vedios on CAN and JTAG. thanks for the vedio..
Great, this video is more helpful for everyone. your way to teach is totally awesome.
Eres un grande amigo! gracias por renovar mi amor por la eléctronica. Sigue asi... tu eres digno que te llamen Maestro.
The best explanation I have come across thus far...thanks!
amazing clarity.......................keep up the good work brother
Awesome Video tutorial on Serial Communication with very clear explanation.
Kudos Electronoobs!!!
Very good and, I'd say, 'honest' presentation, quick enough not to be boring and without any unnecessary talk to make video purposely longer.
Very very nice explaination with practical! We need such brilliant teacher for the world!
You are making grate videos which are very useful for us
Keep making such videos: )
Please do more on CAN communication and the others. You are such a great help in education and simplifying such difficult subjects many thanks
Really nice illustrations, loved the voice over too. Perfect video 📸 🤩
Thank you bro, you have explained the concept confused me for a longtime in a way that even a beginner can understand
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.
Very nice informative. Short and sweet. No wharra wharra. Just straight talk, how technical people like it 😋👍🏻 Thanks
This was so helpful. I wish my digital electronics professor explained it like this. Thank You!
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.
Great.
Please make video on protocols like CAN and USB.
With each new video, quality of content is increasing. This channel is next eevblog.
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!
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
In one great video I learned so much about the serial connection I use every day on my arduino. Thank you
Amazing video. I was always wondering about different types of communication! Thank you!
Brief and to the point. Very useful video .
Nice and clear explanation of baud and reading process of a bit in a bit train.
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.
sir continue the videos with other protocols to
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
Appreciate you sharing this video and information. It has been very informative, well organized & helpful. Definitely I learned something new 😁
u saved me from my orals . thank you sir
Great video buddy cant be more simplified than this
The best explanation out there.
Btw in the uart explanation . Shouldn't be the data order from rx to TX
You explained serial communication better than anyone else
Very simplified explanation of such complex concept.
Please make for other serial communication protocols. I am waiting along with other thousands of people. Your explanation is excellent.
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
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.
WOW Amazing video and explanation. Bunch of things that have perplexed me for years solved in 12 minutes... JEEZ where were you in university.
Great video! Technically, the I2C bus is half-duplex (not simplex) and the SPI is full-duplex.
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
great job man!! very shortly and precisely you describe everything.....
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.
This was excellent, exactly what I was looking for. Nice overview.
You are great teacher and good voice, thank you very much
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.
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😍😍😍👏👏👏
Great video! Short and straight to the point! Thanks!
Thanks for this video! Best explanation for a hardware guy like me I’ve seen. Getting into UART for BLE radios here.
Dude it's awesome I learnt that in the best way becoz of you . Keep going . We need more information about the protocols .
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.
Well done, nice explanation. It's worth noticing that I2C is bi directional too. A master can read values from its slave devices.
man your topics are just what i need ...just thanks man
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}
Thanks, this is really the best explanation online.
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.
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*
He's saying it in Spanish
Thou art