Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Pomoc oko upisa u interni eeprom 16f84a
#4
(10-20-2014, 03:12 PM)MILANNN Wrote: Nije komplikovano napraviti takav sklop za detekciju nestanka naizmenicnog signala tj spasavanje podataka,ceo taj proces tj nestanak naizmenicnog signala pic ce videti isto kao pritisak tastera tj prekazak nekog pina sa log1 na log0 a sve ostalo odradice rezerva u kondenzatoru,ideja ti je fantasticna.Meni to nije padako napamet jer svaki kod za koji se imalo pomucim cuvam pa zato nisam razmisljao o tome mada kad je u pitanju nesto sto se trenutno potavlja u eeprom e onda je ovo super resenje.Par puta mi je proteus uzeo i po nekoliko dana bez potrebe jer to isto sto nije htelo u proteusu na plocici proradi iz prve.Uradicu i sada tako pa ako nije problrm proteus nego ispadne da je problem sto ja negde gresim stavicu externi eeprom,sa njim nikad nisam imao problem.Veliko hvala na pomoci drugar,ako niko ima nesto slicno kao primer ili adresu neka postavi.

Utoliko bolje ako ti nije komplikovano.
Taj način upisivanja po nestanku napajanja, tamo gde treba, koristim od kada je se pojavio 16F84, kao prvi PIC sa flešom. To provereno i sigurno radi na bilo kom Pic sa eeprom unutra.

U pricipu se u eeprom čuvaju neki važni parametri sklopa, poput neke setovane temperature, nekih podesivih vremena, parametara PID i slično tome, koji treba da ti ostanu tamo kada ponovo uključiš napravu.

Pic kontroleri inače imaju veoma pouzdan eeprom i samo upisivanje nije nikakav problem. U datasheet od 16F84 imaš asm kod za upisivanje, a u višim jezicima poput C ili Basic, već odrađene makroe koji to svode na jednu reč, kako sam i napisao u gornjem primeru.

Sam eeprom kod Pic 16F i 18F serija dozvoljava čak po milion upisivanja u eeprom (broj čitanja nije ograničen).
To znači da ako bi vršio 100 isključivanja uređaja dnevno, sa upisivanjem onog što treba sačuvati, trebalo bi ti oko 27 godina da pohabaš interni eeprom u 16F84. Mnogo je to brate!
Neverovatno su retke potrebe za tako čestim upisivanjem, jedino kod nekih superspecijalnih svemirsko vojnih potreba, gde MCU svaki krug programa počinje iz reset stanja radi enormne stabilnosti sistema, a tu zasigurno neće staviti baš 16f84, a još sigurnije neće takav tip eeprom!
Projektili se ne lansiraju sa 16F84, već se radije koriste specijalizovani stack MCU, i pišu se u Forth (bar je tako ranije bilo, ne znam šta rade sada)!

16F84 ima 64 bajta eeprom na raspolaganju, što je savim dovoljno za kapacitet tog Pic, dok na primer neki 18F imaju čitavih 1024 bajta, što je dovoljno za čuvanje na stotine parametara veoma složenih mašina u industriji.

Eksterni eeprom zahteva "produvavanje" I2C ili SPI komunkacije na 16F84, koji nema hardverske module za to, i to je značajno komplikovaniji put od upisa u lokalni eeprom.
Kod tako malog Pic često može da se dogodi čuvena situacija da ti nedostane još samo jedan pin ili još samo dva bajta :-).

Ukoliko ne praviš neke masivne baze podataka (a pitam se kakve bi sa 16f84), preporučujem ti da upisuješ tih 64 bajta u lokalni eeprom kod 16F84.
To je 64 parametra veličine bajt, ili 32 16 bitna parametra na primer.
Ako na primer uspeš da smestiš PID termoregulator u taj mali Pic, sve što treba od parametara za njega hladno staje u njegov eeprom.
Dakle tih 64 bajta nisu uopšte mali.
Osim toga upisivanje je krajnje jednostavno i smrtonosno sigurno radi, kao i čitanje.
Sasvim uredan, čitak i regularan primer sam ti dao, koji možeš odmah upotrebiti, a čak sam ti napravio indikaciju upisa i čitanja pomoću LED, da lepo vidiš kada se to događa.

Ni malo mi nije jasno kako ti je to lakše da koristiš eksterni eeprom od internog, a na 16F84?


Pozz
Reply


Messages In This Thread
RE: Pomoc oko upisa u interni eeprom 16f84a - by Macola - 10-20-2014, 11:28 PM

Forum Jump:


Users browsing this thread: 1 Guest(s)