Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

Přístup do sériový Eeprom 24LC64
Jdi na stránku 1, 2  Další
 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Celeron



Založen: Apr 02, 2011
Příspěvky: 18070
Bydliště: Nový Bydžov

PříspěvekZaslal: út únor 10 2015, 16:52    Předmět: Přístup do sériový Eeprom 24LC64 Citovat

Potřebuju k Atmelu přibastlit cca 6KB paměti na tabulky a občasný uložení nových dat a aby to přežilo vypnutí. Napadla mě 8KB 24LC64. Je I2C, procík ji ale nemá. Nikdy jsem s sériovkama nic nedělal a s I2C taky. Jde I2C simulovat prostým setováním a resetováním vývodů SDA a SCL, nebo je v tom nějaký zádrhel? Předpokládám, že adresy A0, A1, A2 a WP používat nebudu.
Je tu někdo, kdo si s I2C paměťma hrál? Jde mi o to, abych to nemusel celý číst a pak nezjistil, že je s tím problém...
Díky
Jirka
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Jodr



Založen: Jan 20, 2008
Příspěvky: 1380
Bydliště: na vejminku

PříspěvekZaslal: út únor 10 2015, 16:59    Předmět: Citovat

Vezmi k ruce datasheet paměti a najdi si jak se pamět nastaví pro zápis, čtení a jak se adresuje odkud kam má R/W probíhat. Je možné určit třeba jen bajt, nebo blok bajtů. Nic složitého. V dřevních dobách nemaje programátor, jsem to realizoval na LPT portu PC .
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
vlado5



Založen: Jul 19, 2011
Příspěvky: 157
Bydliště: Trenčín

PříspěvekZaslal: út únor 10 2015, 17:08    Předmět: Citovat

Nie je s tým žiadny problém. Ak sa nevyužité vstupy pripoja na GND, treba ju len adresovať (hodnota A0h) aktivovať a posielať-čítať data. Veľmi podrobne popísané na www.dhservis.cz. Asi pred týždňom som dokončíl rutinu na 24C128 prepracovanú na procesor 8748-na vylepšenie stavebnice
PETR48, ak budem mať čas, zverejním na svetelektro.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Celeron



Založen: Apr 02, 2011
Příspěvky: 18070
Bydliště: Nový Bydžov

PříspěvekZaslal: út únor 10 2015, 17:15    Předmět: Citovat

Díky za odkaz!
Jirka
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Celeron



Založen: Apr 02, 2011
Příspěvky: 18070
Bydliště: Nový Bydžov

PříspěvekZaslal: út únor 10 2015, 17:54    Předmět: Citovat

Znáš EC1045.01 z Brna? Taky se dost snaží kolem Petra. Snad dělá, nebo chce dělat repliky.http://sapi.cz/petr/petr.php
Já to mám s tou 24LC64 trochu komplikovaný, protože nemám k dispozici žádnej bididekt port Atmela. Asi budu muset přes třístavový registr zapisovavat na jednom portu SDA a SCL a na druhým portu přes třístavový odělovač číst SDA.
Nenapadá tě prosím něco lepšího?
Díky
Jirka
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
lesana87



Založen: Sep 20, 2014
Příspěvky: 3330

PříspěvekZaslal: út únor 10 2015, 18:13    Předmět: Citovat

Čemu říkáš Atmel? Řada 51 má všechny porty obousměrné s otevřeným drainem a I2C je právě potřebuje, takže z HW hlediska máš, co potřebuješ, je to jen o SW.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
vlado5



Založen: Jul 19, 2011
Příspěvky: 157
Bydliště: Trenčín

PříspěvekZaslal: út únor 10 2015, 18:50    Předmět: Citovat

Menovaného EC1045.01 osobne nepoznám, ale čítam jeho stránky. Výborne spracoval pôvodnú dokumentáciu a to nielen od PETRA ale aj od iných 8-bitov. Kto má záujem o pôvodnú dokumentáciu, je na stránkach www.litildivil.cz, s ktorým komunikujem a ktorý mi poskytol monitor tejto stavebnice v čase, keď ešte nebol nikde dostupný.
Čo sa týka ďalšieho Vášho dotazu, celkom som nepochopil čo znamená bididekt, ale pokiaľ už sú všetky porty obsadené, nezostáva nič iné, len použiť lacht.
Myslím si, že pokiaľ to zvládol procesor zo 48 rady, s ATMELOM rady 51 je to omnoho jednoduhšie, vzhľadom k jeho lepšiemu inštrukčnému súboru.
Tu je odkaz na moju nostalgickú skladačku:
http://svetelektro.com/Forum/petr-48-mini-t36310.html
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Celeron



Založen: Apr 02, 2011
Příspěvky: 18070
Bydliště: Nový Bydžov

PříspěvekZaslal: út únor 10 2015, 19:57    Předmět: Citovat

lesana87 napsal(a):
Čemu říkáš Atmel? Řada 51 má všechny porty obousměrné s otevřeným drainem a I2C je právě potřebuje, takže z HW hlediska máš, co potřebuješ, je to jen o SW.

Ano, A51. Je to ale "velkej" systém, kde je datová a adresová sběrna a externí Eprom27C256, 82C55 a Timekeeper s 2KB RAM, takže P0 a P2 není. P1 je na 16 tlačítek maticový klávesnice a P3 je komplet využitý. Takže se to musí pověsit na datovou sběrnici. Adresovej dekodér je na GALu a jsou tam k dispozici 3 výstupy. Na čtení SDA stačí 1/4 74LS125 ale co tam dát na zápis SDA? Na SCL stačí 74LS74 ale pokud vím, něco s funkcí 74LS74 s třístavovým výstupem nebo aspoň otevřeným kolektorem není. Jedině za 74LS74 nabastlit tranzistor jako otevřený kolektor.
Jirka
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
lesana87



Založen: Sep 20, 2014
Příspěvky: 3330

PříspěvekZaslal: út únor 10 2015, 20:25    Předmět: Citovat

Když máš 3 výstupy na GALu, tak v něm máš i 3 registry, tak pokud máš k dispozici 4 volné sousední adresy, nepotřebuješ 7474, za GAL dáš druhý dvě čtvrtiny 74125 a je to. Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
vlado5



Založen: Jul 19, 2011
Příspěvky: 157
Bydliště: Trenčín

PříspěvekZaslal: út únor 10 2015, 21:03    Předmět: Citovat

No, v takomto zložitom systéme, kde dochádzajú HW možnosti, je každá rada dobrá. Takže možnosti sú: Ak sú volné aspon 2 porty na 82C55, je možno ju pripojiť tam. Ďalšia možnosť je použiť obvod 74HC573, ktorý je obojsmerný oddelovací register, adresovať ho cez jeden z voľných adr. výstupov GAL-u. Po prečítaní softverovo odfiltrovať nevyužité vývody, pri výstupe meniť iba adresovaný vývod (napr. D0, D1-podľa toho, kde bude zapojená EEPROM. Tretia možnosť je softverovo najkomplikovanejšia, ale
videl som aj také riešenie: Zapojiť EEPROM na niektorý vstup a výstup klávesnice. Tých pár milisekúnd obsluhy EEPROM užívateľ ani nezbadá pri zadávaní z klávesnice. Výhoda použitia I2C na EEPROM je tá, že pri činnosti klávesnice by nemala EEPROM reagovať, pokiaľ nebude aktivovaná správnym adresovaním (postupných sériových dát). Uvediem príklad symbolického zápisu čítania SDA:

stĺpec matice (1) daj do "L"
čítaj riadok 1 (tam je zapojený aj SDA) -teraz testuje stlačenie klávesy
čítaj riadok 2
. atd
.
stĺpec matice daj do "H"
čítaj riadok 1 - toto je dôležité, lebo v tomto okamžiku testuje SDA
na budenie stlpcov by bolo dobre použiť oddelovacie R,
aby pri prípadnom stlačení tlač. neovplyvňoval SDA
stĺpec matice (2) daj do "L"
.
.atd
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Celeron



Založen: Apr 02, 2011
Příspěvky: 18070
Bydliště: Nový Bydžov

PříspěvekZaslal: st únor 11 2015, 1:40    Předmět: Citovat

Co třeba tohle? Při zápisu do EEPROM se SDA řídí zápisem do bitu DB0 a SCL do DB1. V klidu je I2C v High, při čtení, zápisu a clock se stahuje do Low. Takže pokud se nezapisují data , tak je IC13A ve 3. stavu. Pokud se čte, tak jde jen SCL a data jdou na DB0. Aktivní je ta EEPROM, co zkomparuje adresu 0 nebo 1.
Bude to chodit, nebo jsem něco nedomyslel?
Díky
Jirka

to vlado5: 74573 je jednostrannej trojstavovej Latch, oboustrannej je asi jen
74ls646

to lesana 87: registrovej mód Galu nejde použít, je na něm 10 vstupů.



EEPR.pdf
 Komentář:

Stáhnout
 Soubor:  EEPR.pdf
 Velikost:  12.45 kB
 Staženo:  61 krát

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



Založen: Jul 19, 2011
Příspěvky: 157
Bydliště: Trenčín

PříspěvekZaslal: st únor 11 2015, 6:41    Předmět: Citovat

Omlúvam sa, napísal som to v rýchlosti (z hlavy) ten 74573 je jednostranný.
Tie dve EEPROM, čo tam máte zapojené, je treba adresovať aj hardverovo.
To znamená kombinovať (H alebo L) vstupy A0,A1,A2-podľa dataseetu. Pri jej výbere ju treba aj softverovo adresovať. Ukážka rutín v asm:

WRADRE: CLR EMOD ;rezim PAGEWRITE
ACALL STARTE ;START podminka
ACALL EADRS ;vyber pameti pro zapis adresy!!!!
ACALL WBYTEE ;zapis
JC WRADRE ;opakuj je BUSY
MOV A,R2 ;zapis adresy
ACALL WBYTEE ;zapis

RDADRE: ACALL STARTE ;START podminka
ACALL EADRS ;vyber pameti pro zapis adresy!!!!!
ACALL WBYTEE ;zapis
JC RDADRE ;opakuj je BUSY
MOV A,R2 ;zapis adresy
ACALL WBYTEE ;zapis
ACALL STARTE ;restart
ACALL EADRS ;inicializace pameti
SETB ACC.0 ;pro cteni
ACALL WBYTEE ;zapis

Adresa je (pre pamete EEPROM A0h), pokiaľ sú adresné vstupy na GND
aj toto je v datašite-prvý byte zápisu

Teraz pozerám na schému druhý krát a vidím že to máte aj hardwarovo
rozlíšené. No zas ma moje myšlienky predbiehajú. Mohlo by to tak fungovať. Pri použití toho obojsmerného lachtu by sa ušetrilo miesto- o jedeno púzdro menej. No a teraz sa pustiť do vývoja SW- uff, držím palce!!
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Celeron



Založen: Apr 02, 2011
Příspěvky: 18070
Bydliště: Nový Bydžov

PříspěvekZaslal: st únor 11 2015, 10:09    Předmět: Citovat

Zkusím to nadrátovat. Půlka 74125 tam je volná, takže by mělo stačit přeprogramovat GAL a přidat na prcíře 7474 nad některou DIL14 a vydrátovat.
Akorát mám trochu problém s adresací těch dvou EEPROM. Na DHSERVISu píšou, že starší Microchip má nohy A0-A2 bez funkce? Předpokládám, že se konkrétní EEPROM (1 z Cool vybere podle shody HW adresy a SW adresy poslaný v Slave adres po Start byte. Pokud ale nohy A0 - A1 nemají funkci, tak se nemá SW adresa s čím komparovat a bude stále vybíraná stejná EEPROM a tudíž může být osazená pouze jedna?

Slave adresa je mi snad jasná:
-pokud budu zapisovat do EEPROM 7 tak pošlu 1010 1110, pak adresu H a adresu L a datový byte. Těch můžu poslat kolik chci, adresa v EEPROM se sama inkrementuje. Skončí se stop bitem.

-pokud budu číst z EEPROM 0 tak pošlu 1010 0000, pak adresu H a adresu L. Pak tomu dál moc nerozumím. Při čtení se posílá další start bit a control byte 1010 0001 a teprve pak jdou z EEPROM čtený byte??? Těch zase můžu číst kolik chci, adresa v EEPROM se sama inkrementuje. Skončí se zase stop bitem.
Načetl jsem to z šítu Microchip. Překvapuje mě, že to je při čtení složitější než při zápisu, třeba u Flash je to opačně, pro zápis se posílá hromada řídících slov.
Jo a ještě na závěr, předpokládám, že adresa v EEPROM a data jsou z hlediska co pošlu nebo přijmu vše inverzní, je to tak?

Díky za pomoc.
Jirka
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Celeron



Založen: Apr 02, 2011
Příspěvky: 18070
Bydliště: Nový Bydžov

PříspěvekZaslal: st únor 11 2015, 10:16    Předmět: Citovat

Zkusím to nadrátovat. Půlka 74125 tam je volná, takže by mělo stačit přeprogramovat GAL a přidat na prcíře 7474 nad některou DIL14 a vydrátovat.
Akorát mám trochu problém s adresací těch dvou EEPROM. Na DHSERVISu píšou, že starší Microchip má nohy A0-A2 bez funkce? Předpokládám, že se konkrétní EEPROM (jedna z osmi) vybere podle shody HW adresy a SW adresy poslaný v Slave adres po Start bit. Pokud ale nohy A0 - A1 nemají funkci, tak se nemá SW adresa s čím komparovat a bude stále vybíraná stejná EEPROM a tudíž může být osazená pouze jedna?

Slave adresa je mi snad jasná:
-pokud budu zapisovat do EEPROM 7 tak pošlu 1010 1110, pak adresu H a adresu L a datový byte a po každé čekám na ACK bit. Datových byte můžu poslat kolik chci, adresa v EEPROM se sama inkrementuje. Skončí se Stop bitem po posledním ACK.

-pokud budu číst z EEPROM 0 tak pošlu 1010 0000, pak adresu H a adresu L. Pak tomu dál moc nerozumím. Při čtení se posílá další Start bit a control byte 1010 0001 (pro EEPROM 0) a teprve pak jdou z EEPROM čtený byte??? Těch zase můžu číst kolik chci, adresa v EEPROM se sama inkrementuje. Skončí se zase stop bitem ale bez předchozího ACK.
Načetl jsem to z šítu Microchip. Překvapuje mě, že to je při čtení složitější než při zápisu, třeba u Flash je to opačně, pro zápis se posílá hromada řídících slov.
Jo a ještě na závěr, předpokládám, že adresa v EEPROM a data jsou z hlediska co pošlu nebo přijmu vše inverzní, je to tak?

Díky za pomoc.
Jirka
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
vlado5



Založen: Jul 19, 2011
Příspěvky: 157
Bydliště: Trenčín

PříspěvekZaslal: st únor 11 2015, 14:37    Předmět: Citovat

Dostal som sa až teraz na forum. Čo sa týka pamätí 24CXX, štúdiu ich datašitov som venoval asi týždeň. Píšem to preto, lebo si treba uvedomiť, že nie všetky sa obsluhujú rovnako-čo sa týka adresácie čipu a adresy čítania-zápisu. Preto sú aj na stránke dh.servis rozdelené na typy 02-16 a 64 a viac. Je to preto, lebo typ 24C16 má v device addres byte aj najvyššie 3 bity adresy (asi preto nie sú u tohoto typu zapojené, lebo adr. bity nie je kde umiestniť), ďalšie slovo obsahuje nižšiu časť adresy. Typy 24C64 a viac majú device addres, first word addres a second word addres. Ďalej je treba si uvedomiť, že zápis aj čítanie z pamätí je možné buďto na danú adresu (alebo z adresy), alebo sekvenčné čítanie (od zadanej adresy) do ukončenia stop bitom a na to pozor, pri zápise je možný zápis max. po blokoch, ktoré závisia od použitej EEPROM. Píšem to preto, lebo na začiatku ste spomínal 24C64 a schéme máte 24C16. Takže pamäť ktorá nemá od výroby zapojené adr. bity je možné použiť len jednu na zbernici. Pamäť 24C256 má zapojené len A0 a A1.
To je na vysvetlenie prvých dvoch otázok. Na otázku, či sú adresa a data
inverzné, môžem odpovedať že nie. Zadávajú a čítajú sa v pôvodnom stave.
Príklad: všetky adresové vstupy uzemnené - pvrý byte: 1010 0000
adresový vstup A0 EEPROM na "H" - prvý byte: 1010 0010

Ja som si pomohol aj týmto:
http://winide51.wz.cz/downloads/51/mit_cviceni.pdf

a odniekal som stiahol aj programy k tomu, prikladám obsluhu EEPROM a displeja. Tu je jasne vidieť, ako pracuje s device addres:



M019_1.asm
 Komentář:

Stáhnout
 Soubor:  M019_1.asm
 Velikost:  5.96 kB
 Staženo:  58 krát

Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů Časy uváděny v GMT + 1 hodina
Jdi na stránku 1, 2  Další
Strana 1 z 2

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra.
Nemůž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.
Nemůžete připojovat soubory k příspěvkům
Můžete stahovat a prohlížet přiložené soubory

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.22 sekund