Arduino'dan Anlayan [ Eeprom Okuma-Yazma ]
-
Elimde Arduino Uno R3 modelinden var.
+Harici bir karttan sökülmüş 24C02 serisi Eeprom var.
Bu eeprom'daki verileri okutup yazma işlemi yapmam gerekiyor.
Elektroniğe ve arduinoya biraz yabancıyım. Kartta ya da eepromda sakatlık çıkarmak istemiyorum.
Google vs çoook karıştırdım çeşitli anahtar kelimelerle ama konuya cahiliyetten olsa gerek net bir bilgi bulamadım :)
Basitçe anlatabilecek arkadaşım var mı?
Araştırmalardan benim gelebildiğim kadar ki kısmı maalesef şu: Eeprom I2c protokolle haberleşen 8 bacaklı bir eeprom ( 1 A0; 2 A1; 3A2; 4 Ground; 5 SDA; 6 SCL; 7 VP ; 8 VCC girişi ) .
Şimdiye kadar bulabildiğim en faydalı ve en anlamlı link şu: ( burdaki model arduino mega sanırım )
Bu eepromla- Arduino breadboard arasındaki bağlantıları nasıl yapmam gerekiyor ( Arduino pc ye bağlı olacak ) yön gösterebilecek arkadaşım var mı?
-
Hacım data sheet e bakmak lazım iyice incelemek lazım:
http://pdf1.alldatasheet.com/datasheet-pdf/view/23727/STMICROELECTRONICS/24C02.html
http://www.atmel.com/images/doc0180.pdf
Şimdi datasheet e göre sol üstteki üç bacak adres input'u Sağdaki en üst bacak VCC
sağ en alttakiler ise sda ve scl bacakları
Sinyalizasyona iyi bakmak lazım ama uğraşılacak iş değil hocam. Para versen bakıp kodlamam şu an data sheetde gördüğüm kadarıyla. En son FPGA ile uğraşırken uğraşıyordum bu işlerle. Çok kafa ziken şeyler.
Ekleme: Dur la bak adamın biri yazmış ya google dan denemedin mi?
http://playground.arduino.cc/Code/I2CEEPROM
-
Hocam zannedersem iki tipi var 24C02 serisinin, biri Atmel biri ST yazan. Bendeki olan Atmel değil, daha minik olan modeli ST olan 24C02 Smd yazan cinsten. Zannedersem bunların datasheet midir nedir artık özellikleri değişebiliyor.
http://www.robotistan.com/24c02-dip8
http://www.robotistan.com/24c02-so8
Bendeki olanın (ST) datasheet detayları şu linkte var:
http://www.alldatasheet.com/datasheet-pdf/pdf/23727/STMICROELECTRONICS/24C02.html
http://elektronikhobi.net/harici-eeprom-kullanimi/ ( Burda da güzel açıklamışlar )
Senin adamın yazdığı programda AT24C256 'a göre sanırım.
İşte bilmiyorum atıyorum adamın 24Cxxx serisine göre yazdığı programı ben 24C02 de de kullanamam gibi geliyor. Kodlardan esinlenebiliriz tabiki de. İşte nasıl bağlantı yapacağımı keşfetsem şansımı zorlucam artık da olayı çözemiyorum ya da çaylak olduğumuz için emin olamıyorum deyim.
Ya da arduino yerine şöyle bir şey alsam işimi görür mü acaba?
https://www.alibaba.com/product-detail/EEPROM-Reader-Writer-Programme-r24CXX-24LCXX_60063010676.html?spm=a2700.7724857.0.0.7Vcfeo
-
Hocam selamlar,
Öncelikle bağlantı şeması hakkında bilgi vereyim. Cihazda dediğin gibi 8 adet pin var. Bunlardan VCC ve GND yi besleme olarak kullanacaksın(VCC +5V GND 0V).
SCL ve SDA data ve clock pinleri. Bunları pull-up dirençleri ile birlikte arduinonun ilgili pinlerine bağlayacaksın.
A0..A2 pinleri adresleme pinleri. Bunu da I2c protokolü ile haberleşirken slave adreslemede kullanılıcak şekilde konfigüre edeceksin.
EEproma yazma işlemi için Page Write ve Byte Write seçeniğin var.
Yukarıda gördüğün byte write seçeneğini. Start condition ile başlıyor, ardından msb olacak şekilde device adres gönderiliyor (Okuma mı yazma mı yapacağında device adreste belirtilir). Bunu sonra eeprom tarafından gönderilen ack biti izliyor. Sonra eepromda yazılmak istenen adres gönderiliyor yine ack biti gönderiliyor. Son olarak data gönderilip ack alınarak işlem tamamlanıyor.
Device adrese gelecek olursak;
Device adres datasheet te yazılana göre 1 ve 0 ile başlamak zorunda.
Ve senin konfigüre ettiğin A0...A2 bitlerinde adresi belirlemekte. Yani
Device adres: 1 0 1 0 A2 A1 A0 R/W olarak belirleniyor. (Datasheetten inceleyebilirsin) Eğer A2 (5V) A1 (0V) A0 (0V) olsa idi adres 1 0 1 0 1 0 0 R/W olacaktı (0: W, 1: R)
Vakit geç olduğundan fazla ayrıntılı yazamıyorum ancak i2c protokolünün nasıl kullanıldığını anlarsan bu işlemi daha rahat kavrarsın.
Kolay gelsin.
Daha fazla ayrıntıyı http://www.rhydolabz.com/documents/24c04.pdf adresinde bulabilirsin
-