forum.mcontrollers.com - hlavní stránka forum.mcontrollers.com - fórum

 

.: fórum - hlavní stránka :.
Technology Stronghold by Rudolf Vesely
How to build Microsoft System Center hosted cloud series
FAQFAQ HledatHledat Seznam uživatelůSeznam uživatelů Uživatelské skupinyUživatelské skupiny RegistraceRegistrace
ProfilProfil StatistikaStatistika Soukromé zprávySoukromé zprávy PřihlášeníPřihlášení

 
AT89S52-Je možné uložit data do vnitřní paměti a vypnout MCU

 
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> 8051 / 8052
 
Honza S
Profesionál
Profesionál


Založen: 1.3.2013
Příspěvky: 43

PříspěvekZaslal: 26 srpen 2013, 13:00    Předmět: AT89S52-Je možné uložit data do vnitřní paměti a vypnout MCU Citovat

Zdravím, študoval jsem datasheety k tomuto MCU a nikde jsem se nedočetl, že by bylo možno uložit nějaká data do paměti, následně vypnout procesor a po zapnutí s uloženými daty opět pracovat. Třeba jsem se přehlédl, ale pokud to opravdu nejde, je nějaká možnost jak to provést?

Honza

Arrow administrator: přejmenováno z "AT89S52 - vnitřní paměť"
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Panda38
Profesionál
Profesionál


Založen: 18.9.2012
Příspěvky: 398
Bydliště: Praha, Most

PříspěvekZaslal: 26 srpen 2013, 13:07    Předmět: Citovat

AT89S52 nemá vnitřní EEPROM paměť, takže ne, nedá se uložit data a po resetu je znovu načíst. Musí se použít externí EEPROM nebo CMOS a do té uložit co je třeba.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
 

 
Balů
Profesionál
Profesionál


Založen: 29.10.2012
Příspěvky: 708

PříspěvekZaslal: 26 srpen 2013, 13:14    Předmět: Citovat

Pokud potřebuješ mcu s touto architekturou a interní EEPROM, tak bys musel použít 89S8253 nebo starší 89S8252. Ten druhý však již Atmel nedoporučuje pro nová zařízení.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Honza S
Profesionál
Profesionál


Založen: 1.3.2013
Příspěvky: 43

PříspěvekZaslal: 26 srpen 2013, 13:35    Předmět: Citovat

Díky za odpověďi. Prostuduji datasheet jakým způsobem ukládat do vnitřní EEPROM a integráč zakoupím. Avšak jen 89S8252. Podle netu 89S8253 můj programátor nepodporuje.

Honza
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Honza S
Profesionál
Profesionál


Založen: 1.3.2013
Příspěvky: 43

PříspěvekZaslal: 26 srpen 2013, 13:48    Předmět: Citovat

Tak jsem to početl a podle této věty:
The on-chip EEPROM data memory is selected by setting the EEMEN bit in the EECON register
at SFR address location 96H. The EEPROM address range is from 000H to 7FFH. MOVX
instructions are used to access the EEPROM. To access off-chip data memory with the MOVX
instructions, the EEMEN bit needs to be set to “0”.

bych to chápal tak, že stačí příkazem MOVX ukládat hodnotu v rozsahu 000H až 7FFH do adresy 96H, přičemž po resetu procesoru tato hodnota zůstane?

Honza
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Balů
Profesionál
Profesionál


Založen: 29.10.2012
Příspěvky: 708

PříspěvekZaslal: 26 srpen 2013, 15:13    Předmět: Citovat

To jsi pochopil špatně. Uložením "1" do bitu EEMEN v registru EECON, který se nachází v SFR na adrese 96h nastavíš to, že instrukce MOVX, která normálně čte/zapisuje data do externí paměti, bude číst/zapisovat do interní EEPROM. Rozsah adres interní EEPROM je 000h-7FFh. Pokud potřebuješ číst/zapisovat do externí paměti, miusíš výše zmíněný bit nastavit na "0".
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Honza S
Profesionál
Profesionál


Založen: 1.3.2013
Příspěvky: 43

PříspěvekZaslal: 27 srpen 2013, 7:04    Předmět: Citovat

Áha. Moc to neovládám, tak jsem to nepochopil. Našel jsem tyto stránky
http://www.mikroe.com/chapters/view/67/chapter-4-at89s8253-microcontroller/
a pokud to už chápu, tak stačí udělat toto?

mov 96h,#00001011b

a pak už jen stačí pomocí movx dávat data do EEPROM takto?

movx 000h,nějaká data

Jen nevím, zda ty prvni 2 bity RDY/BSY a WRTINH mám ponechat v log.1 jak je v té tabulce

Díky, Honza
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Honza S
Profesionál
Profesionál


Založen: 1.3.2013
Příspěvky: 43

PříspěvekZaslal: 27 srpen 2013, 7:13    Předmět: Citovat

A nebo stačí jen udělat?
setb 96h
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Balů
Profesionál
Profesionál


Založen: 29.10.2012
Příspěvky: 708

PříspěvekZaslal: 27 srpen 2013, 11:06    Předmět: Citovat

SETB můžeš použít pouze na bitově adresovatelná místa, takže nevím, jestli to tady lze.

RDY/BSY a /WRTINH jsou readonly signály.

Když si přečteš, co píšou o těchto 2 signálech v tom odkazu, který jsi sem dal, pak zjistíš, že když je RDY/BSY signál v log. 0, pak je EEPROM zaneprázdněna zápisem hodnoty a trvá to cca 4 ms. Pokud je v log. 1, můžeš zapsat další byte. /WRTINH znamená, že pokud je v log. 1, můžeš s EEPROM normálně pracovat. Pokud je v log. 0, pak to znamená, že HW detekoval příiš nízké napětí pro zápis do EEPROM a tudíž nelze do EEPROM zapisovat a případná rozpracovaná operace je/byla zrušena.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Honza S
Profesionál
Profesionál


Založen: 1.3.2013
Příspěvky: 43

PříspěvekZaslal: 27 srpen 2013, 12:26    Předmět: Citovat

Díky za překlad. Ani s googlem jsem nechápal souvislosti. Hned po restartu je podle toho odkazu nastaven bit 0 a 1 do log.1 a zbytek v log.0.
Když tedy nastavím ještě navíc k tomu do log.1 EEEMEN (zpřístupní interní EEPROM) a zároveň před zápisem do pamětí musím nastavit do log.1 EEMWE a po dokončení zápisu vrátit do log.0?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Balů
Profesionál
Profesionál


Založen: 29.10.2012
Příspěvky: 708

PříspěvekZaslal: 27 srpen 2013, 13:19    Předmět: Citovat

Kouknul jsem na tohle do datasheetu a pokud to správně chápu, tak EEMEN přepíná zápis do interní EEPROM pomocí intstrukce MOVX s DPTR pointrem. EEMWE povoluje instrukci zápis bytu do EEPROM pomocí instrukce MOVX. Nicméně tohle budeš asi muset vyzkoušet sám, protože má jediná 89S8253 šlape v DCF hodinách, které jsem postavil před asi 4 roky a opravdu ji odtud nemám chuť dolovat.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

Zobrazit příspěvky z předchozích:   
Zobrazit předchozí téma :: Zobrazit následující téma  
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> 8051 / 8052 Časy uváděny v GMT + 2 hodiny
 
Strana 1 z 1
Přejdi na:  
Můžete přidat nové téma do tohoto fóra.
Můžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Můžete k příspěvkům připojovat soubory
Můžete stahovat a prohlížet přiložené soubory
 



Num Lock Holder - app to hold Numlock
Copyright © 2017 Rudolf Veselý, mcontrollers.com.
Je zakázáno používat části tohoto webu bez souhlasu autora. || Powered by phpBB © 2001, 2002 phpBB Group - with RedSquare DoubleJ(Jan Jaap)