Kazalo:

Dodajanje 24LC256 EEPROM -a v Arduino Due: 3 koraki
Dodajanje 24LC256 EEPROM -a v Arduino Due: 3 koraki

Video: Dodajanje 24LC256 EEPROM -a v Arduino Due: 3 koraki

Video: Dodajanje 24LC256 EEPROM -a v Arduino Due: 3 koraki
Video: Подключение внешней EEPROM к Ардуино на примере памяти 24LC512 2024, Julij
Anonim
Dodajanje 24LC256 EEPROM -a v Arduino Due
Dodajanje 24LC256 EEPROM -a v Arduino Due

Arduinu zaradi pomanjkanja eeproma. To navodilo dodaja eno in vam omogoča shranjevanje vrednosti v nehlapnem pomnilniku, ki bo preživel posodobitev vdelane programske opreme arduino.

Korak: Breadboarding

Breadboarding
Breadboarding

Tukaj je nekaj res dobrih navodil: https://www.hobbytronics.co.uk/arduino-external-eeprom Pravkar sem jim sledil. Fotografija prikazuje vezje. zatiči 1 do 4 in zatič 7 so ozemljeni. pin 8 je priključen na napajanje 3.3V na ustrezni plošči. Rumene (pin 6) in bele (pin 5) žice, povezane z i2c SDA (podatki) in SCL (ura) zatiči na ustrezni plošči (oštevilčeni 21 in 20)).

2. korak: Čas kode

Koda Čas
Koda Čas

Tu je nekaj odlomkov kode, ki jih uporabljam v svojih skicah. Najprej vključite glave knjižnice Wire nekje na vrhu skice: / * Uporabite 24LC256 EEPROM za shranjevanje nastavitev * / #include Nato dodajte nekaj funkcij za branje in pisanje bajtov iz EEPROM -a (zanimajo me le posamezni bajti, vendar obstaja tudi funkcija pisanja strani v čipu). Upoštevajte, da obstaja makro definicija 0x50.. to je naslov čipa na vodilu i2c (na vodilo i2c lahko povežete več stvari i2c in s spreminjanjem naslova izberete, s katerim želite govoriti). / * Ti dve funkciji nam pomagata pri zapisovanju na čip 24LC256 EEPROM */ #define EEPROM_ADDR 0x50 void EEPROM_write (brez podpisa int addr, bajtni podatki) {int rdata = data; Wire.beginTransmission (EEPROM_ADDR); Wire.write ((int) (addr >> 8)); // MSB Wire.write ((int) (addr & 0xFF)); // LSB Wire.write (rdata); Wire.endTransmission (); //Serial.print("EEPROM write: addr: "); //Serial.print(addr); //Serial.print (""); //Serial.println(data); zamuda (5); } bajt EEPROM_read (brez podpisa int addr) {bajt = 0xFF; Wire.beginTransmission (EEPROM_ADDR); Wire.write ((int) (addr >> 8)); // MSB Wire.write ((int) (addr & 0xFF)); // LSB Wire.endTransmission (); Wire.requestFrom (EEPROM_ADDR, 1); če (Wire.available ()) data = Wire.read (); //Serial.print("EEPROM read: addr: "); //Serial.print(addr); //Serial.print (""); //Serial.println(data); zamuda (5); vrniti podatke; } Če želite videti nekaj izpisov za odpravljanje napak, lahko razkomentirate vrstice Serial.print (…). V funkciji arduinos setup () zaženete knjižnico žic in lahko berete začetne vrednosti. Tukaj berem v dveh bajtih (zastavice in max_cc), dveh besedah (lean_min in lean_max) in nizu besed sd_max [3]: // beremo vrednosti, shranjene v EEPROM Wire.begin (); zastavice = EEPROM_preberi (0); max_cc = branje EEPROM -a (1); lean_min = beseda (EEPROM_read (3), EEPROM_read (2)); lean_max = beseda (EEPROM_read (5), EEPROM_read (4)); for (int j = 0; j <3; j) {sd_max [j] = word (EEPROM_read (7 j*2), EEPROM_read (6 j*2)); } Tukaj je delček kode, ki jih zapiše v EEPROM: EEPROM_write (0, zastavice); EEPROM_write (1, max_cc); EEPROM_write (2, lowByte (lean_min)); EEPROM_write (3, highByte (lean_min)); EEPROM_write (4, lowByte (lean_max)); EEPROM_write (5, highByte (lean_max)); for (int j = 0; j <3; j) {EEPROM_write (6 j*2, lowByte (sd_max [j])); EEPROM_write (7 j*2, highByte (sd_max [j])); } To je res to.

3. korak: Povežite ga

Ožičite ga
Ožičite ga

Priključite ga na nek veroboard, da ga privijete v ohišje in opravljeno delo.

Priporočena: