16F84A-vhodná externí EEPROM/flash paměť 256-512 kB

Chci se optat, mám program v procesoru PIC 16F84A , ale potřeboval bych externí paměť aby uchovala data i po vypnutí . Která je vhodná k tomuto procesoru , myslel jsem že nějakou Flash , ale nevím jak je to s programováním … ? Díky za rady

:arrow_right: administrator: přejmenováno z "Paměť pro program"

Cau, pokud tech dat neni moc tak 84 ma i vlastni EE (Data EEPROM (bytes) 64)
jinak “vhodná” ? zalezi kolik dat, jak rychla,pripojeni …

microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=80

pamet tak 256-512kb … Konkretne ma jit o bludiste na 16x4 znakovej LCD display a potrebuju ulozit aspon 4 mapy… v puvodnim navrhu je, ze ta vnitrni pamet staci pro jednu mapu… Mam to dělat na praxi … ale mistr neni moc ochotnej a neporadí…

**EDIT : ** nebo bych ocenil nějakou literaturu která se zabývá touto problematikou… Chodíme na kroužek programování ale asi to bude chtít něco navíc… Že bych si pořídil nějakou knížku která se programováním v (assembleru ) MPlabu zabývá …

:arrow_right: administrator: příspěvek byl upraven
Předchozí příspěvky se necitují.

Když se zaregistruješ, možná i zde nějakou literaturu najdeš. 8)

Jinak pokud použiješ třeba PIC16F819, který má interní eeprom o velikosti 256, možná se tam vejdou i ty čtyři mapy.

A pokud to udelas sikovne tak, ze ti na jeden radek displaye bude stacit 2 byty (16 bitu) tak tech map muzes mit 32. Staci aby jednicka v bitu znamenala prekazka a 0 volny prostor. Jak to graficky vyjadris je uz tvoje vec…
Nevim, kolik pameti ma tento procesor na programovani, ale mapa muze byt ulozena v promenne typu pole a EEPROM se bude vyuzivat pouze k ulozeni informace ktera mapa byla aktivni v dobe vypnuti a aktualni pozice pohybliveho objektu na mape. Potom si staci jenom precist cislo mapy, nacist z promenne spravnou mapu a potom nastavit pozici pohybliveho objektu v bludisti.

To je tedy tak 32-64kB!

Omlouvám se :blush: samozřejmě jsem myslel 256-512kB… moje chyba… jinak díky za rady

SPI flash pamate, velmi jednoduche pouzitie, plno kodu na webe:

AT45DB011D-SH 128kB 17,7Kc/3ks maju 154ks na sklade v TME
AT45DB041D-SU 512 kB 29 Kc/1ks maju cez 1000ks na sklade v TME
AT45DB081D-SU 1 MB 34,4Kc/1ks, maju 909ks na sklade v TME
AT45DB321D-SU 8 MB 74,6Kc/1ks maju 264ks na sklade v TME

maju 264/524B dvojity RAM bufer na stranku, takze ziadne zdrzovanie so zapisom malych oblasti. Stacia Ti 4 piny. Napajanie MUSI byt do 3,6V, ale I/O su 5V tolerant. takze staci pre istoru nejake 100R odpory. NEpredpokaldam, ze na 16F84 vyuzijes plnu rychlost.

I2C pamate su len do 128kB
24LC1025-I/P 57,4Kc/1ks 153ks na sklade v TME

ale stacia len dva vodice.

Já se omlouvám, protože si z tebe dělám legraci.
Tak tedy, na prezentovanou úlohu ti stačí pár byte, ale ty používáš zápis kapacity paměti, jako bys potřeboval ukládat audiosignál. V tom si udělej jasno. K Pic je možné za cca 30Kč připojit i 2MB paměti, ale to ty určitě nepotřebuješ. Na 16F84 už jsem trochu alergickej, ale pokud budeš potřebovat pomoc, tak se posnažím.

můžete mi někdo přiblížit jak se data do externí paměťi zapisují a čtou ? Koukal sem na datasheety nějakejch pamětí ,a je tam 17 adresových vodičů + 8 data I/O takže budu potřebovat minimálně 25 výstupů z PICu ? Chápu jak je to s paměťí v programu … vytvořím si registr třeba data1 EQU 0x10 a pak přez movlw a movwf tam data zapíšu . Ale jak je to v případě tý externí paměti to nějak nechápu Kolik tam budu potřebovat vodíčů :confused: ?Asi to dopadne tak že v bludišti bude třeba 5 map v programové paměti … :cry: … Že já nešel na zámečníka nebo něco :smiley:

pouzijes eeprom co ma nejaku rozumnu zbernicu… i2c, spi. tam tych vodicov je minimum. Nejake moznosti ti uz napisali pred tym…

Preco sa nepozeras do datasheetov toho co ti tu ponukame a co je k tvojmu problemu relevantne? Napriklad AT45DB041 alebo 24C1024?

A nebo pokud raději SPI, tak 25LC1024…
25LC1024.pdf (455 KB)

SPI AT45DB041,081,321 maju daleko lepsi pomer vykon cena.
Je pravda, ze potrebuju max. 3.6V Ucc :slight_smile: