TUTORIAL: How to Wire up & Code an EEPROM with Arduino - Module (Part 2 - Wire Up & Coding)

  Рет қаралды 70,625

Antony Cartwright

Antony Cartwright

6 жыл бұрын

How to wire up and code an EEPROM with Arudino.
Part 1: Theory, and about bits and bytes.
Part 2: Wire up, Coding and testing.

Пікірлер: 84
@JerryEricsson
@JerryEricsson 3 жыл бұрын
Wow! Looks like I have found another friend to spend time learning from! Thanks for your excellent work telling me a bit about a chip I have had in my Altoids box now for well over a year. You see, it came in a bulk parts box from Electronic Goldmine, they sell big lots of this sort of thing, you would be surprised what all comes. The chip I found in my box is nearly the same, but a bit larger, availing me of 256K and made by SK. I ran into it today as I was cleaning around my old power recliner that has been my home for all to many years now following an accident that took me out of the law enforcement game and left me quite unable to work. I just lost my wonderful wife of 51 years and 5 days a bit over a month ago, and that still smarts worse then I could ever have imagined. Cancer took her, it was quick and dirty form that left the whole family exhausted when it was over. Enough about my life, thanks so much for sharing yours. Now I have to figure out exactly what I want to store in my little memory chip, the data sheet says she is good for one million writes so I guess the only danger is, perhaps ESD, I too have been playing with cmos chips since their introduction to the general public and have yet to blow one that way. I think I had one of those wrist bands but never used it, it was, well a bit to confining for me, and for some reason I have developed a quite nasty case of claustrophobia. Too many buried alive films I think, I know when I was planning my late wife's funeral, I happened upon a KZbin video on how they cremate, that cost me over 10 thousand USD, as after watching it, I went against my wonderful wife's wish to be cremated and went forward with a traditional burial. My family all agreed the only reason she wanted to be cremated was the cost, she wanted me to be able to take her insurance money and pay off some debts so I could go on without her paycheck. Wonderful lady, my wife, GOD how I miss her every damn second of every damn day since she was taken from me.
@frank39pw
@frank39pw 5 жыл бұрын
I thought your video was a little wordy at first - but I ended up really appreciating all the detail ! Great work ! I never saw part 1; your part 2 was more than sufficient by itself.
@AntonyCartwright
@AntonyCartwright 5 жыл бұрын
Thanks! It's difficult to find the balance in these videos, but generally speaking, I'll provide minimum theory/maximum practical. :-)
@talideon
@talideon 2 жыл бұрын
The naming 'Vcc' and 'Vss' has to do with the types of transistor in the IC package, and refer to the power rails within the chip. Vcc = Voltage Common Collector, is positive with respect to ground, while Vss = Voltage Source Supply is negative with respect to ground (and in many cases can just be tied to ground).
@iWalkChris
@iWalkChris 3 жыл бұрын
Well done Antony! This is a great building block! I was able to reproduce your result here at home. I was wondering what you did with the bit shift and the AND operation. You are such a good developer, you probably did that without even realizing it's on another level! Well thank you and keep these building blocks coming! OK: figured it out, I think... An unsigned integer is 2 bytes, you shift right 8 places and bitwise AND the value so you have no leading ones as you write the command register byte. Nifty!
@JohnDoe-ir8te
@JohnDoe-ir8te 5 жыл бұрын
beautiful tutorial! I plan on making an "open source" mp3 player with programmable pins for projects revolving around simple things, such as hooking up another "open source" mp3 of its kind into making a more powerful variant of itself and etc.
@martinconnolly3776
@martinconnolly3776 3 жыл бұрын
To elaborate a little on A0, A1 and A2 and the chip address starting at 80......... The chip is designed to allow you have a chain of up to eight of them addressed 80 to 87 (50 to 57 in hex or 1010000 to 1010111 in binary. You do this by setting the A0, A1 and A2 pins high as necessary to form the least three significant bits. A good example as to why you would want to do this are printer toners. My Ricoh laser printer has four colour toners with 24LC01 (1 kbit) EEPROMS. These are set to addresses 80, 81, 82 and 83 by the wiring on the little PCB they are mounted on to. This way, the printer can address each toner individually on the one I2c bus.
@andrewmulqueen5877
@andrewmulqueen5877 6 жыл бұрын
Nice work Antony.
@AntonyCartwright
@AntonyCartwright 6 жыл бұрын
Thanks andrew... I think I've mixed the thumbnails up lol.
@waynehawkins654
@waynehawkins654 9 ай бұрын
Thank you very useful.
@kennythetofu
@kennythetofu 3 жыл бұрын
thank you so much!
@timjx3675
@timjx3675 5 жыл бұрын
Awesome vid - a great primer for me, i need an outboard storage for assembler code for an audio DSP chip im thinking of extending your code using an esp32 with wifi comms. So anyway thx a bunch 👍
@weerobot
@weerobot 4 жыл бұрын
Awesome...
@vedatorpeta
@vedatorpeta 3 жыл бұрын
Can I use it for memory extension for program itself? I have lot of libraries in the program and memory is too small
@InterdimensionalWiz
@InterdimensionalWiz 3 жыл бұрын
Superb video! Subscribed. :o)
@ihtsarl9115
@ihtsarl9115 3 жыл бұрын
Hello Ian I watched all your videos on programming EEPROMS I am wondering are you going to make a tutorial about 12C serial programming?
@InterdimensionalWiz
@InterdimensionalWiz 3 жыл бұрын
@@ihtsarl9115 oh... that's not me! however I would also like a video on 12C :D
@muhammedriyaskt8748
@muhammedriyaskt8748 5 жыл бұрын
Can you please upload a video . making of rtc module ds3231 and eeprom
@user-kt4lr9te8v
@user-kt4lr9te8v 6 ай бұрын
sir, how to save data with char, float, or string?
@shrijithmjain2137
@shrijithmjain2137 4 жыл бұрын
hi, this video has helped me a lot..........but Im getting (error: expected ',' or '...' before numeric constant) error at line 2 i.e #define chipAddress 80 .....could you help me out pls.
@diyelectronics3158
@diyelectronics3158 4 жыл бұрын
Very helpful. ..can you please share SPI EEPROM interfacing with pic18f4550
@navneetbrar1605
@navneetbrar1605 4 жыл бұрын
Great work sir... I have to test an ATAES132A crytpo IC... This IC works on SPI communication protocol..I wanted to know that for connections we just need to attach the jumpers like this...or we have to add capacitors to the ground?? Or would require logic level shifter to work with Arduino...Please reply it's really urgent..
@loveandpeace9564
@loveandpeace9564 3 жыл бұрын
Can anyone please help me , confusion is why there is wire.write() used in readFrom() ?
@abankruna925
@abankruna925 3 жыл бұрын
Hello, could you help me, how to just read the ink chip, what code inside the chip, using this arduino, the chip is MDK341V
@picklerick814
@picklerick814 4 жыл бұрын
i thought the EndTransmission before the request would make it not work when i watched your video. but i understand now, you let the thing do its thing and then wait until the data is transmitted
@MJ-iy4fb
@MJ-iy4fb 3 жыл бұрын
That's pretty cool. Can you use this to read any eeprom off commercial equipment, save it , then re-write it to an new eeprom?
@paramveerteli
@paramveerteli 3 жыл бұрын
Great
@sherifbekhit
@sherifbekhit 4 жыл бұрын
Hi dear .. where the code for this eeprom with arudino PLZ
@MrGeekGamer
@MrGeekGamer 3 жыл бұрын
Where are any of the other pins on the chip used? This looks like all data is read and written from the I2C bus.
@fs0c1ety_bs92
@fs0c1ety_bs92 4 жыл бұрын
So can i change the data in immobiliser eeprom and make it accept an value?
@lukasbruderlin2723
@lukasbruderlin2723 4 жыл бұрын
Fs0c1ety_BS actually I found that video for the same or similar reason. I would think one could answer 'Yes' as long as the EEPROM doesn't have additional security features. The point is rather with working on IC level on cars: 1. You have to get physical access to the IC equals to you need to know where it is located and then take that part out of your car = car out of work for as long the work goes. Then you have to open up the part i.e. the tacho and you still need to know which chip it is. 2. Possibly you need to desolder the IC which is a next risk... OR you might have to put power on the IC while it is connected on the board... which also can be a risk. 3. You need equipment to contact the IC...of course that isn't a problem for professionals and IF you know experienced people it will be easy to get the right equipment for a low price. 4. Besides suitable contacting hardware i.e. a SOIC-8 clamp you will either need a finished SW tool which you have to trust to work fine... or you would end up writing your own code and just trying to solder connections directly to the IC while sitting on the PCB and of course in any case you would need to ensure that maximum ratings for that chip are never exceeded. So, in short, yes it should simply work fine and I am actually myself considering that at least as I am electronics by first education and IT by second one... but I would tremendously prefer another way of reading out the EEPROM by in my case example VAG K+Can commander not needing to take the risk even I have visibly had the corresponding PCB and chip in front of me on the bench yesterday :o
@Mohalish91
@Mohalish91 5 жыл бұрын
Hi .. It has 24LC04B and I have a problem reading the data. All the readings come with the number 255. What is the solution in your opinion? Please Help
@melkiorwiseman5234
@melkiorwiseman5234 4 жыл бұрын
By default, EEPROMs have a 1 written to every bit location, so 8 bits of 1 adds up to 255, meaning that your EEPROM is erased. Either that, or you're not reading anything and every bit comes out as 1 just because ports tend to "float" high.
@korishan
@korishan 6 жыл бұрын
Definitely a lot safer than using an SD card to store the data. Also, probably uses a lot less memory, too. I think I'll be incorporating an EEPROM in my BMS I'm working on 😎
@AntonyCartwright
@AntonyCartwright 6 жыл бұрын
Korishan Hey, yeah, I wasn't actually looking forward to doing this video because I assumed it would be difficult for me to learn, tedious to code, and a headache to explain. It turns out though that it wasn't too bad. Actually, the concept and methodology is pretty good. I think I'd probably use this for my projects too. You can get much larger eeproms too!
@lukasbruderlin2723
@lukasbruderlin2723 4 жыл бұрын
Sure it's nice using EEPROMs and I absolutely liked the video - so thanks for it! Still I'm wondering what would be the particular drawback of using an SD card instead. Aren't there finished libraries to use it? And how about storing data in EEPROMs: Are there no libraries available and if Yes is that because EEPROMs are much less frequent used yet? I mean it's great understanding the concept behind an EEPROM and I will have to fiddle arround with some to read out its content to get to the secret keys of my own car 😝 but in general I'm a bit surprised that there aren't libraries for some EEPROMs or maybe that was just not really spoken about in the video?
@CollinBaillie
@CollinBaillie 4 жыл бұрын
You'd use an EEPROM to store data that doesn't change, or doesn't change often. Keep in mind the 'ROM' part of the name. EEPROMs are much slower to write to than an SD card. I wouldn't there'd be any space saving advantage to using an EEPROM. Your data is what it is, and it won't change by storing it in a different place. Also, because of the targeted uses of EEPROMs, they tend to be very small compared to an SD card. We're probably talking Megabytes at max. Most will hold less than a 3.5" floppy disk. There are big EEPROMs in use, like a BIOS EEPROM on a computer, but the type shown here is less than 64kB. You could fill it, and that would be around 1/12th of a floppy.
@sayansardar9033
@sayansardar9033 6 жыл бұрын
Hi Antony, can you tell my how I can store Float value or a String in EEPROM? Please advice me or create video tutorial on it. Suppose I want to store a predefined temperature like 25.5 C in EEPROM. Please advice me.
@AntonyCartwright
@AntonyCartwright 6 жыл бұрын
Hey, to store 25.5 (or up to 255.99), you can use 2 bytes. The first byte can represent the integer portion, and the second byte can represent the decimal portion. So to save 25.5, (or 25.50) you'd simply use the method in the video to store '00011001' (25) in one byte, and '00110010 (50) in the next. When you come to assemble the number, if you simply want to display it somewhere, you can simply concatenate it together, but if you want to cast it into a float or whatever and perform operations on it, then you can simply do this FLOAT = INTEGERPART + (DECIMALPART/100). If you were to store that as a string, it would take 5 bytes. This is because strings are stored character by character, byte by byte. So for each character which you save, you actually save a number which represents that letter according to the ASCII key code. Strings kind of add another layer of complexity to the equation.
@CollinBaillie
@CollinBaillie 4 жыл бұрын
For real floating point, wouldn't you just store the first 8-bits, but shift to the left by 8, store the first 8 bits, etc until all the bits are stored? Then to read them back, read 8-bits, shift left, read the next 8-bits, OR the 2 values together, read the next 8-bits, OR them together etc? All the time tracking how many bytes are used for each float, and use that size as an offset for the address to read? May use 4 or 8 bytes, but you get the full precision. Don't know how bit shifting effects floats, but I think that would work.
@oyoyo2853
@oyoyo2853 2 жыл бұрын
I dont understand what was happening here for chip and cell address. I thought this was a hardwired thing and therefor the Arduino wouldn't need to be told this, could you explain this part a little more for me plz. eg could i just do something like digital.write (A0 =LOW), A1, A2. Wire.beginTransmission();......
@RaadYacu
@RaadYacu 6 жыл бұрын
Antony, nano you used has 1k eeprom but adding this chip has 64k which is good - it can come in handy in future lots of use cases for these if you can address things in ascii. Also, did not know from your coding that are cmp-sci fella( just for laughs )
@AntonyCartwright
@AntonyCartwright 6 жыл бұрын
Raad Yacu haha! Yes, for many years now. Only 1 year low level though.
@mktplays4689
@mktplays4689 2 жыл бұрын
Hey mate where did you buy all of this stuff from? Could you past me a link please?
@ApiRote
@ApiRote 6 жыл бұрын
Thanks! Do you see feasible for store bitmaps?
@AntonyCartwright
@AntonyCartwright 6 жыл бұрын
Ander R hi, you could, but remember that it only has a small amount of memory.
@ihtsarl9115
@ihtsarl9115 3 жыл бұрын
your screen is not focused so we cannot read the program can you send a copy of the program ?
@stuartajc8141
@stuartajc8141 6 жыл бұрын
Well explained. But just for info, a byte holds between 0 and 255 (not 254 as you said at the end), or in hexadecimal 0x00 to 0xff
@AntonyCartwright
@AntonyCartwright 6 жыл бұрын
stuartajc Hi, thanks, you're right. 2^8=256 cells. 0-255. I think I've been doing too much networking!
@BharathRamMS
@BharathRamMS 6 жыл бұрын
Hi, guys. Is it 255 for EEPROM of all sizes? Does it change?
@stuartajc8141
@stuartajc8141 6 жыл бұрын
A Byte is by definition 8 bits, and so is the same in EEPROM, RAM, Disk, Tape or whatever. It never changes.
@feitan8745
@feitan8745 5 жыл бұрын
That's was the first thing i thought, network address and broadcast address.
@TheChrisey
@TheChrisey 5 жыл бұрын
@@feitan8745 255 is still a valid network address
@InterdimensionalWiz
@InterdimensionalWiz 3 жыл бұрын
Hi Please help I only have 48 hours to do this project. I have a stm32f411(black pill module) and a 24LC64. I am using the arduino IDE. I have lots of other things going like TFT, rotary encoder, analog etc... so i just want to keep my program in arduino IDE. The 24LC64 i have 3 address pins to ground like you... address DEC 80 or HEX 50 ... on the stm32f411 the Data pin for i2c is PB7 and the CLK pin is PB6. I need the correct header file and then i guess the code you have here will work just fine. the pin numbers are different. I downloaded stm32Cube MX that apparently will make the board talk to an eeprom via i2c... however it makes about 30 files!!! and of course wants to make all the configuration files for KEEL or other IDE than Arduino... please help. :o) cheers Ian
@JanxZ
@JanxZ 4 жыл бұрын
How do i adjust the code for the 24LC01B?
@Golubnich
@Golubnich 3 жыл бұрын
I'm interested in the same question. Have you found a solution?
@aseemparambennykukkarlive4501
@aseemparambennykukkarlive4501 3 жыл бұрын
hello sir great project but I need coding of it can you give me the code please
@farmkess1931
@farmkess1931 4 жыл бұрын
Vss is basically source supply
@tristunalekzander5608
@tristunalekzander5608 4 жыл бұрын
So if there is a 3 bit address, does that mean there are 9 registers? Or is that not the word to use for it?
@CollinBaillie
@CollinBaillie 4 жыл бұрын
3-bits allows you to set an address of 0 - 7. It's one address. The address is 3-bits long. You can have the following addresses: 0, 1, 2, 3, 4, 5, 6 and 7 So, you can have up to 8 of these devices (device 0 through to device 7) on the I2C bus. Each device on an I2C bus needs a unique identifier 'address'. If you have 8 people standing in a group and you say to the group "Tell me how old you are", 8 people will reply and you'll get 8 answers simultaneously. Not helpful if you want to know how old 'John' is. You may not even be able to hear John's response! But if you say to the group "John, how old are you?". only John should reply. You get a single answer. This is how the above concept works. No registers are involved.
@leonardocarfone2607
@leonardocarfone2607 Жыл бұрын
Ottima spiegazione. Vorrei sapere come utilizzare la eeprom esterna, accoppiandola ad un ATTINY 85 per aumentare la memoria e la capacità di caricare uno sketch più grande. grazie
@poetlorryit
@poetlorryit 5 жыл бұрын
can the arduino be used as an eprom? that would negate the need for an eprom
@lukasbruderlin2723
@lukasbruderlin2723 4 жыл бұрын
takeaway guru the question is not if it can be used as such - just if it has EEPROM or not ;) and I guess Arduino doesn't, but as much as I know some CPUs comprise small eeproms
@CollinBaillie
@CollinBaillie 4 жыл бұрын
Some Arduinos use a microcontroller with an internal EEPROM. They can be restrictively small (like 1024 bytes) and the number of times they can be written to is much smaller than the discrete external EEPROMs. If you need to write many times, or a lot of data, an external discrete EEPROM is required. The internal EEPROM _may_ be faster to access (read from) so it's worth considering very important, unchanging data in the built-in EEPROM.
@prmajiq
@prmajiq 3 жыл бұрын
AT93C46D ??
@themonkey4465
@themonkey4465 5 жыл бұрын
Can you store arrays?
@melkiorwiseman5234
@melkiorwiseman5234 4 жыл бұрын
You can store just about anything. You only need to figure out how. For example: How big an array? How many dimensions? How much storage does each array element take up? Answering these questions are essential to figuring out how much storage you'll need and therefore the size of EEPROM you'll need. After that, you need to figure out how to store the contents of the array in a format which will allow you to retrieve it later.
@colzilla090
@colzilla090 5 жыл бұрын
That helped a lot. Nice clear well explained tutorial! Any chance you could help me switch my code from internal avr eeprom to a 24c64?
@wendelljackson1488
@wendelljackson1488 4 жыл бұрын
Not "nice clear well explained" at all.
@ask_usb
@ask_usb 3 жыл бұрын
I have got "0" even without EEPROM. I guess it should return 128 even without connecting to the chip.
@michaeldahlinger8815
@michaeldahlinger8815 5 жыл бұрын
How many addresses are there?
@lukasbruderlin2723
@lukasbruderlin2723 4 жыл бұрын
Michael Dahlinger check the first part of the video where such is explained well
@abdelmawgood9282
@abdelmawgood9282 6 жыл бұрын
where is the code please?
@AntonyCartwright
@AntonyCartwright 6 жыл бұрын
I don't release any code sorry! :-)
@JerryEricsson
@JerryEricsson 3 жыл бұрын
Pause the video when the code is on the screen, take a screen shot and then copy it into Arduino. Problem solved.
@johnydepp8334
@johnydepp8334 Жыл бұрын
programing language name please?
@AntonyCartwright
@AntonyCartwright Жыл бұрын
C++?
@chrisw1462
@chrisw1462 4 жыл бұрын
Thank you for the video, but 0xFF (FF Hex) is 255 decimal... there is no other "way to look at it". For anyone who gets confused by zero-based counting - look at it like this: Take eight apples, line them up on the table in a row. Get a knife and carve a '0' (zero) in the first apple. Carve a '1' in the second, carve a '2' in the third, and so on. When you get to the eighth apple, you'll have carved a '7' into it. You still have eight apples, but when you start counting at zero, you only get to '7'. If this boggles your mind, and you're thinking to yourself, "I can't, I just can't..", first, see a life counselor :-), then switch to Python or another high level language where addresses are mostly things you'll never have to deal with. Counting in Hexadecimal is no different. ("Should I say 'zero lives matter'?" "No, that'd probably be taking it too far, too easily misunderstood." "Fine...") Zeroes Matter. So if you're talking about digital addressing, 0xFF is 255, but it's also the 256th address. Just something you have to get used to. When you're talking data, you can start at zero (it can avoid confusion if you have a lot of addresses in the same code), or start at one. Use whichever you're more comfortable with, but addresses will always (with a few weird exceptions) be zero-based.
@CollinBaillie
@CollinBaillie 4 жыл бұрын
I like to think of binary numbers as states. So a 3-bit number has 8 states. Those 8 states can be numbered (as in a cardinal number set, starting at zero) as 0->7. But their rank (ordinal number) is 1-8 (1st, 2nd, 3rd...7th, 8th) If we just use their cardinal order for counting, we can obviously represent 8 different numbers: 0, 1, 2, 3, 4, 5, 6 and 7. It's just the issue of starting at zero which most people aren't familiar with. We can use those states to represent things other than numbers also. I still have to do mental gymnastics sometimes to remember that 256 values will start at 0 and end at 255, but I'm not confused by it. Once you deal with numbers like these enough, you'll get to know them by rote, and won't be worried about it. If it helps, imagine you have a single switch. You want to represent as much information as you can with that switch. When the switch is off, that is one state. When it's on, that is a second state. So with 1 BIT (binary digit) you can represent 2 states. Numerically, that's 0 and 1. You have a number set {0,1}. You have 2 values in there. With those values you can count 0... 1. You only get to 1, but you have 2 numbers. When you add a second BIT, you double your set: 00 = 0 01= 1 10 = 2 11 = 3 So your number set is {0, 1, 2, 3}. You have 4 values. You can count 0... 1... 2... 3... You can only get to 3, but you've taken 4 steps or values to get there. Add another bit and you double the number of values in the set, and so on. The bonus of using the concept of states is when using binary to represent "options" instead of a number. You can make a value of 0 to be useful. It can represent something specific (not 'nothing' as is our habit) and 1 can represent some different. So 1 bit, 2 states, 2 specific and meaningful values or options. Of course this also brings with it the importance of LEADING zeros. We normally don't write 000100 to represent 100, because numerically, those leading zeros have no value. But if you're using those BITs to represent meaningful states, those leading zeros are just as critical as the 1 or the following zeros.
@dibraniuk
@dibraniuk 2 жыл бұрын
ide(code) video view too small otherwise excellent lesson
@arulelectronics3375
@arulelectronics3375 5 жыл бұрын
How to name change (for icon) DVD player for memory ic .
@zackous67
@zackous67 2 жыл бұрын
CHADDRESS
Using EEPROM with Arduino - Internal & External
31:54
DroneBot Workshop
Рет қаралды 193 М.
路飞太过分了,自己游泳。#海贼王#路飞
00:28
路飞与唐舞桐
Рет қаралды 31 МЛН
Stay on your way 🛤️✨
00:34
A4
Рет қаралды 22 МЛН
Inside Out Babies (Inside Out Animation)
00:21
FASH
Рет қаралды 15 МЛН
БАБУШКИН КОМПОТ В СОЛО
00:23
⚡️КАН АНДРЕЙ⚡️
Рет қаралды 17 МЛН
How to Control a 12V Motor with Arduino: Easy Wiring & Code Examples
44:13
Build an Arduino EEPROM programmer
57:30
Ben Eater
Рет қаралды 1,5 МЛН
Increase Flash Programming Memory for Arduino Nano? YES!
10:48
Design Build Destroy
Рет қаралды 17 М.
#65 Arduino EEPROM Basics - easy to do and useful to implement
26:07
World's worst video card gets better?
44:25
Ben Eater
Рет қаралды 817 М.
EEPROM Memory - Store Anything - Arduino101
13:16
Electronoobs
Рет қаралды 102 М.
Mobile Phone Oscilloscope
12:23
dont miss
Рет қаралды 65 М.
Arduino - How to Save an Int into EEPROM
11:18
Robotics Back-End
Рет қаралды 11 М.
MOSFETs and Transistors with Arduino
40:50
DroneBot Workshop
Рет қаралды 1 МЛН
Gosta de 🌟 e 🍿?
0:19
F L U S C O M A N I A
Рет қаралды 10 МЛН
Первая встреча 💙
0:37
Antonyuk-family
Рет қаралды 7 МЛН
Сделала Сюрприз Брату После 3 лет Разлуки ❤️
0:26
Глеб Рандалайнен
Рет қаралды 1,5 МЛН
Самый ДОБРЫЙ мальчик!😎
1:00
Petr Savkin
Рет қаралды 6 МЛН