Sadržaj:

Dodavanje 24LC256 EEPROM -a u Arduino Due: 3 koraka
Dodavanje 24LC256 EEPROM -a u Arduino Due: 3 koraka

Video: Dodavanje 24LC256 EEPROM -a u Arduino Due: 3 koraka

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

Arduinu zbog nedostatka eeproma. Ova instrukcija dodaje jednu i omogućuje vam spremanje vrijednosti u nepromjenjivu memoriju koja će preživjeti ažuriranje arduino firmvera.

Korak 1: Breadboarding

Breadboarding
Breadboarding

Ovdje postoje neke jako dobre upute: https://www.hobbytronics.co.uk/arduino-external-eepromSamo sam ih slijedio. Na fotografiji je kružno platno. pinovi 1 do 4 i pin 7 su uzemljeni. pin 8 je spojen na napajanje 3.3V na odgovarajućoj ploči. Žute (pin 6) i bijele (pin 5) žice spojene na i2c SDA (podaci) i SCL (sat) pinove na odgovarajućoj ploči (označeni brojevima 21 i 20).

Korak 2: Vrijeme koda

Kodno vrijeme
Kodno vrijeme

Evo nekoliko isječaka koda koje koristim u svojim skicama. Najprije uključite zaglavlja knjižnice Wire negdje pri vrhu skice: / * Koristite 24LC256 EEPROM za spremanje postavki * / #include Zatim dodajte neke funkcije za čitanje i pisanje bajtova iz EEPROM -a (stalo mi je samo do pojedinačnih bajtova, ali postoji mogućnost pisanja stranica i u čipu). Imajte na umu da postoji makro definicija 0x50.. ovo je adresa čipa na sabirnici i2c (možete povezati više od jedne stvari i2c na sabirnici i2c i odabrati s kojom želite razgovarati promjenom adrese). / * Ove dvije funkcije pomažu nam u pisanju na 24LC256 EEPROM čip */ #define EEPROM_ADDR 0x50 void EEPROM_write (nepotpisani int adr, bajtni podaci) {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); kašnjenje (5); } bajt EEPROM_čitano (nepotpisani int addr) {bajt podatak = 0xFF; Wire.beginTransmission (EEPROM_ADDR); Wire.write ((int) (addr >> 8)); // MSB Wire.write ((int) (addr & 0xFF)); // LSB žica.endTransmission (); Wire.requestFrom (EEPROM_ADDR, 1); if (Wire.available ()) data = Wire.read (); //Serial.print("EEPROM read: addr: "); //Serial.print(addr); //Serial.print (""); //Serial.println(data); kašnjenje (5); vratiti podatke; } Možete dekomentirati retke Serial.print (…) ako želite vidjeti neke ispravljačke pogreške. U arduinos setup () funkciji pokrećete knjižnicu žica i možete čitati početne vrijednosti. Ovdje čitam u dva bajta (zastavice i max_cc), dvije riječi (lean_min i lean_max) i niz riječi sd_max [3]: // čitaju vrijednosti spremljene u EEPROM Wire.begin (); zastavice = EEPROM_čitaj (0); max_cc = EEPROM_čitaj (1); lean_min = riječ (EEPROM_čitaj (3), EEPROM_čitaj (2)); lean_max = riječ (EEPROM_čitaj (5), EEPROM_čitaj (4)); za (int j = 0; j <3; j) {sd_max [j] = riječ (EEPROM_čitaj (7 j*2), EEPROM_čitaj (6 j*2)); } Evo dijela koda koji ih zapisuje u EEPROM: EEPROM_write (0, zastavice); EEPROM_pisati (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 otprilike to.

Korak 3: Povežite ga

Ožičite to
Ožičite to

Priključite ga na neki veroboard kako biste ga uvrnuli u kućište i obavili posao.

Preporučeni: