I2C Bit-Banged without Microcontroller!

preview_player
Показать описание
I used push-buttons to bit bang an I2C EEPROM 24LC256. No Micro used! Kind of a crazy experiment to demonstrate the protocol...

Parts used in video:
Buttons:
EEPROM:
1k, 10k, and 100k resistors... you can get these anywhere
2N3904 Transistors:
0.1uF Caps:


Thanks to all the Patrons for dropping a few bucks in the tip jar to help make these videos happen!

For inquiries or design services:
Рекомендации по теме
Комментарии
Автор

All my teachers in 5 years technical school of electronics was incapable of even acknowledge the fact that I get nothing out of it. My diploma was positive and now after 1010 years I finally understand anything what so ever. Thanks dude! 

contemporiser
Автор

With this very basic hardware setup you manage the best to explain the function of this bus. You are a very good instructor.

hubertmargreiter
Автор

Awesome video, I had a rough idea of how I2C worked, but this illustrated it perfectly! I didn't know there wasn't any real lower bound on speed. I might try to replicate your experiment for fun with other sensors (RTC, etc).

TomMinnick
Автор

It is really awesome to watch your tutorials. I started off over 20 years ago, dreaming of building thing on my own, but never really got around to tinker as much. All those analogue components made my head spin, but now being 37 and have followed you for a long time and get the motivation I just recently passed my digital electronics classes and my life is so much more fun! Thanks for everything... Now back to my Arduino and future world-dominion ;)

svea
Автор

I was able to replicate this, and I sort of combined this with a shift register so that I get the whole 8 bit representation of what I'm sending to (and receiving from) the eeprom. I simply got the clock and data lines of the shift register and eeprom tied in parallel. I also used a soft-type button (like those on TV remotes) since it was a bit less noisy than the tactile buttons, those were giving me problems with de-bouncing.

Again, thanks for making this tutorial! Keep those vids coming man

patrickjeromeobaldo
Автор

Fantastic information and example. This should be the first video for anyone learning I2C/TWI.

chanhannigan
Автор

Excellent, now everything, what i was mechanically doing without knowing whats happening in background, now makes sense.

ss
Автор

Friend, you are a genius! I had been looking for someone who was capable of doing this kind of experiment with EEPROM for three days. It turns out that this type of analysis helps to understand the bottom of everything. I was also designing this experiment but with a 555, but now that you made that clear, I thank God for your wisdom! This will be useful for future experiments, thank you friend!

poetapoetaful
Автор

now that I think about it, you should be able to use the switches on their own. good point!

Kevindarrah
Автор

i2c is amazingly simple, it's such a convenience in most cases. Thanks for this awesome video!

BGroothedde
Автор

This video is very well done and very instructional, and even useful for those of us who are already familiar with I2C. Great tutorial, keep up the good work!

dfwz
Автор

Never seen a video with this level of detail

ravi
Автор

Fantastically clear video, I'm using I2C on the Raspberry Pi so it does lots of it for you, but understanding how the bus works is really helpful. Also amazing to see you manually communicating with the chip like that! 👍👍

alanjrobertson
Автор

yea, for sure, glad you still liked it!

Kevindarrah
Автор

Wow, this might be the most practical and to the point explanation of the I²C communication that I've seen on YouTube, and I've seen a lot! (most of them made by Hindus)
BTW the clock line actually _can_ be controlled by the slave device, in a so-called "clock stretching" mechanism. When the receiver is busy and cannot accept our data at the current rate, it may pull the clock line low until it's ready to receive the data, and the master will notice that, because it's constantly reading the SCL line as well and checking if it follows the changes it applies to that line. If it sees that the line is already pulled down by someone else (the slave, in this case), it waits until it gets released and goes high again.

bonbonpony
Автор

Kevin, Although I2C user for sensors & EEPROMS This is excellent basics demo...Keep it diong

XCALIBUR
Автор

Wow it was fascinating and very helpful. Im currently bit banging i2c for AVR and this video was blessing for me. Thanks!

geiger
Автор

haha! man! bit banging the TLC5940? you're killing me! That is a lot of bit banging, especially since you need to clock that counter pin like 4096 times. But no I'm not a salaried educator, just a plain ole engineer... would be cool to make these tutorials full time!

Kevindarrah
Автор

This is simply amazing. Thank you so much for the effort put into making this video. I mostly talk emotionally. I can see you struggled a little bit in heart for some reason. But it came out great, man. Good job!

This will definitely help me in not using the nasty Arduino IDE for rendering on a display through the ATtiny13A (which I love)

TechnologyRules
Автор

I'm currently working on a mpu-6050, your video is very helpful in understanding i2c.

SirArghPirate
join shbcf.ru