I2C EEPROM kezelése
A 3byte-os címzést úgy érted, hogy csak akkor váltsak 3-ra, amikor muszáj?
Mert teszteltem 3byte-tal is, 4gyel is, meg 2word-del is (2byte helyett), persze ezek folyamatosak voltak, vagyis az első adatbyte-kiolvasástól ezeket a címzéseket használtam.
De nem jó, csak a 2byte verzió.
Látszólag a 2word is ok, de 60kb felett lesz valami (még 64K előtt) és a bootloader nem ugrik a 0x0000 címre, lefagy a GOTO _RESET résznél.
Egyenlőre nem is gond, hogy nem megy, csak majd nemsokára, ha átlépem a 64K-kódméretet.
A szekvenciális olvasás lehetne talán a kiút....
Mert teszteltem 3byte-tal is, 4gyel is, meg 2word-del is (2byte helyett), persze ezek folyamatosak voltak, vagyis az első adatbyte-kiolvasástól ezeket a címzéseket használtam.
De nem jó, csak a 2byte verzió.
Látszólag a 2word is ok, de 60kb felett lesz valami (még 64K előtt) és a bootloader nem ugrik a 0x0000 címre, lefagy a GOTO _RESET résznél.
Egyenlőre nem is gond, hogy nem megy, csak majd nemsokára, ha átlépem a 64K-kódméretet.
A szekvenciális olvasás lehetne talán a kiút....
Kellene egy kis segítség!
Az a problémám, hogy egy 4 kapcsolós (relés) programozható termosztátot csinálok és minden beállított hőmérsékleti értéket(xHI-xLo)az eepromba tárolok el. Ez 8db. hőmérséklet érték. Az eepromba mentett értékeket egy timer lefutása után olvasom ki az eepromból és vetem össze a szenzorok által mért értékekkel. Ettől teszem függővé, hogy melyik relé kapcsoljon be ill. ki.
A kézikönyvben az EEpromoknál olvasom ,hogy az Írás/olvasási ciklus korlátozot, minden kontrollernél más-más 1000-100000 között van. Akkor én most a 'readeeprom' utasítással elhasználok a 10000-ből 1-et és elöbb utóbb tönkre fog menni és nem lehet olvasni az eepromot?
Akkor hogyan kellene megoldani a kiolvasás nélküli összehasonlítást?
Az a problémám, hogy egy 4 kapcsolós (relés) programozható termosztátot csinálok és minden beállított hőmérsékleti értéket(xHI-xLo)az eepromba tárolok el. Ez 8db. hőmérséklet érték. Az eepromba mentett értékeket egy timer lefutása után olvasom ki az eepromból és vetem össze a szenzorok által mért értékekkel. Ettől teszem függővé, hogy melyik relé kapcsoljon be ill. ki.
A kézikönyvben az EEpromoknál olvasom ,hogy az Írás/olvasási ciklus korlátozot, minden kontrollernél más-más 1000-100000 között van. Akkor én most a 'readeeprom' utasítással elhasználok a 10000-ből 1-et és elöbb utóbb tönkre fog menni és nem lehet olvasni az eepromot?
Akkor hogyan kellene megoldani a kiolvasás nélküli összehasonlítást?
- ampervadasz
- Bitmanipulátor
- Hozzászólások: 119
- Csatlakozott: 2008. január 19. szombat, 7:00
Szervusz!
Az én első gondolatom az alábbi lenne!
2 foglalat az EEpromoknak (Master-Sleave) Mindkettő más-más címen. Egy egyszerű programmal kiolvasod az egyikből bytenként, majd írod a másikra. Egy For...Next ciklusban be tudod még azt is állítani, hogy hányszor olvasson-írjon (Memória méret). Ez csak elvi gondolat, de szerintem így a legegyszerűbb.
Ezzel a megoldással egyszerre akár 7 EEpromot is fel tudsz tölteni!
Az én első gondolatom az alábbi lenne!
2 foglalat az EEpromoknak (Master-Sleave) Mindkettő más-más címen. Egy egyszerű programmal kiolvasod az egyikből bytenként, majd írod a másikra. Egy For...Next ciklusban be tudod még azt is állítani, hogy hányszor olvasson-írjon (Memória méret). Ez csak elvi gondolat, de szerintem így a legegyszerűbb.
Ezzel a megoldással egyszerre akár 7 EEpromot is fel tudsz tölteni!
Például:
Felraksz 1 panelra 5db. EEPROM foglalatot.
1 db. Lesz a mester. Ezt bekötöd fix címzésre. Pl.: B111
A maradék 4 db. Pedig a másolatoknak lesz. Ezek A2 = 0 címei egyformák.
4 * (A1 és A0) címeket bekötöd 1 kimeneti port 8 bites-re.
Íráskor mind a 4 cím egyforma legyen. Pl.: Port = B00000000
1*re irsz 4db. EEpromot.
Olvasás (Verifi) Pedig minden EEP máscímet kap. Pl.: Port = B11 10 01 00
Ha ellenőrzésnél 1 EEP. Tartalma nem stimmel azt még újra is írhatod.
Ha íráskor is marad a cím: Port = B11 10 01 00
Felraksz 1 panelra 5db. EEPROM foglalatot.
1 db. Lesz a mester. Ezt bekötöd fix címzésre. Pl.: B111
A maradék 4 db. Pedig a másolatoknak lesz. Ezek A2 = 0 címei egyformák.
4 * (A1 és A0) címeket bekötöd 1 kimeneti port 8 bites-re.
Íráskor mind a 4 cím egyforma legyen. Pl.: Port = B00000000
1*re irsz 4db. EEpromot.
Olvasás (Verifi) Pedig minden EEP máscímet kap. Pl.: Port = B11 10 01 00
Ha ellenőrzésnél 1 EEP. Tartalma nem stimmel azt még újra is írhatod.
Ha íráskor is marad a cím: Port = B11 10 01 00
Ampervadasz írta:2 foglalat az EEpromoknak (Master-Sleave) Mindkettő más-más címen. Egy egyszerű programmal kiolvasod az egyikből bytenként, majd írod a másikra.
Ilyenem van!
Ez jó ötlet!Kapu48 írta:Felraksz 1 panelra 5db. EEPROM foglalatot...
Igen, ezt tudni véltem. Mosógépes ismerős is ezt használja.Robert írta:PonyProg tudja. MinimalHW kell csak melle....
Hol találok a HW-hez kapcsolást?
Ez a megoldás tetszene a legjobban.
Jól értelmezem, hogy ezt: http://www.lancos.com/e2p/siprog_base.png kell megépíteni, és a többi meg rádugdosható adapter?