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ředávání dat mezi dvěma 8 bit procesory

 
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: 17907
Bydliště: Nový Bydžov

PříspěvekZaslal: čt březen 13 2014, 10:50    Předmět: Předávání dat mezi dvěma 8 bit procesory Citovat

Potřebuju vyřešit starý zařízení s I85, který nestíhá obsluhu dodatečně namontovaný periférie. Urychlit by se to dalo že by se "nadřazená" I85 nezabývala obsluhou periférie ale jen "poslala data na port" a vlastní obsluhu periférie by provedl "podřízený" Atmel 89C51.
Mám představu, že D(0-7) I85 by šly na Port 0 A51 a adresy A(0-7) I85 by šly na adresovej dekodér portu a v součinu s /IOW by vyvolaly INT0 přerušení v A51 a ten načetl nový data.
Nezkoušel jste někdo něco podobnýho? Teoreticky to asi chodit může, ale třeba si neuvědomuju nějakej časovej problém.
Díky
Jirka
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Niki31
Zablokován


Založen: Jul 05, 2008
Příspěvky: 131

PříspěvekZaslal: pá březen 14 2014, 17:17    Předmět: Citovat

Co to je I85 ?

Každopádně je na to vhodná sběrnice SPI.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Hill
Administrátor


Založen: Sep 10, 2004
Příspěvky: 19578
Bydliště: Jičín, Český ráj

PříspěvekZaslal: pá březen 14 2014, 18:27    Předmět: Citovat

Procesor Intel 8085
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Niki31
Zablokován


Založen: Jul 05, 2008
Příspěvky: 131

PříspěvekZaslal: so březen 15 2014, 18:13    Předmět: Citovat

Jó,teď je to už jasný když je znám celý název.
Procesory 8080 kompatibilní důverně znám,začínal jsem na nich.
Akorát se divím,že se ještě dnes někdo zabývá takovou vykopávkou.

Podobný problém jsem už kdysi řešil pomocí dvoubánové vyrovnávací paměti,nakonec bylo zapotřebí složité logiky kterou jsem musel realizovat pomocí GAL obvodu.Veliký problém byl v přístupu do paměti,jelikož
oba procesory nebylo možno nijak synchronizovat a docházelo ke kolizím.

Dnešní mikrokontroléry jsou mnohem výkonnější, možná by šel tento problém vyřešit emulací konkrétního počítače pomocí mikrokontroléru.
Na netu jsem už pár krát narazil na program který emuluje PMD80,
Amigu nebo ZX spektrum.Amiga na jednočipu běžela údajně mnohem rychleji než původní počítač.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Jenda_KL



Založen: Sep 10, 2008
Příspěvky: 1173
Bydliště: Kadaň

PříspěvekZaslal: so březen 15 2014, 19:21    Předmět: Citovat

Celeron napsal(a):
nějakej časovej problém.
(jestli jsem to pochopil dobře) Jde o to, jestli nadřazený I85 nechá na výstupu ty data dostatečně dlouhou dobu, aby cílový procesor stihl přerušit a provést dva čtecí cykly.
Nebo obráceně, aby po /IOR stihl cílový procesor přerušit a zapsat nahoru včas.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Celeron



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

PříspěvekZaslal: ne březen 16 2014, 2:43    Předmět: Citovat

To Jenda_KL: Pochopil jsi to naprosto správně. Při zápisu na port v tom původním zařízení s I85 se zdekóduje z jeho adresový sběrnice a /IOW selekt pro Atmela, kterej v přerušení načte datovou sběrnici I85. Jde jen o směr do Atmela, zpět nic nejde.
Jenže, už jsem zjistil, že to takhle jednoduše nemůže jít, protože než Atmel provede přerušení a načte port, tak už je datová sběrnice I85 úplně jiná. Ale pokud se zároveň selektem nahodí klopák RDY, tak se I85 zastaví a až Atmel načte data, tak bitovým portem klopák RDY shodí a I85 pojede dál. Aspoň si to tedy muslím...
A proč to dělám? Je to CNC mašina z začátku 90 let, která se dnes dá sehnat ekvivalent kolem mega a něco na ní odešlo. A právě na něčem jiným, novějším, na co mám i ladící systém chci nahradit tu odešlou část. Předělávat celej původní řídící systém na novější procesor je nesmysl, nejsou zdrojáky a epromek tam je 48kb. To co potřebuju na tuhle náhradu se dá dobádat a vyměřit.
Jirka
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
ohryzek36



Založen: Dec 24, 2008
Příspěvky: 2376
Bydliště: Zlínsko

PříspěvekZaslal: ne březen 16 2014, 6:43    Předmět: Citovat

74LS273?

Možná je to ale blbost - dnes mi to moc nemyslí...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Jenda_KL



Založen: Sep 10, 2008
Příspěvky: 1173
Bydliště: Kadaň

PříspěvekZaslal: ne březen 16 2014, 10:13    Předmět: Citovat

Pokud tedy jde o data pro jednu cílovou IO adresu:
Poradil bych si s tou 273 jako data latch a jednou EPROM jako addr decoder, kde nejvyšší databit bude 0 pro určenou adresu



adecoder.PNG
 Komentář:

Stáhnout
 Soubor:  adecoder.PNG
 Velikost:  18.32 kB
 Staženo:  94 krát

Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Niki31
Zablokován


Založen: Jul 05, 2008
Příspěvky: 131

PříspěvekZaslal: ne březen 16 2014, 14:00    Předmět: Citovat

Tohle je mnohem širší problematika a pochybuju,že to bude možné vyřešit jedním adresním dekodérem a bufferem.Určitě bude potřeba data taky
číst a co když bude procesor do periferie posílat celý blok dat.
Čas mezi jednotlivými Byte může být dlouhý jenom jako jeden instrukční
(nebo sběrnicový) cyklus.To nezvládne žádna obsluha přerušení.Dále pak nemůžeme vzít
páječku a na základní desce někde k procesoru připájet hrst drátů abychom
si vyvedli potřebné signály.
Takhle se to nedělá.

Tohle bez podrobného rozboru nikdo nevyřeší, a určitě ne na fóru.
Spíš bych se pohrával s myšlenkou přetaktování procesoru...
Pokud jde jen o zvýšení rychlosti.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Jenda_KL



Založen: Sep 10, 2008
Příspěvky: 1173
Bydliště: Kadaň

PříspěvekZaslal: ne březen 16 2014, 14:23    Předmět: Citovat

Samozřejmě, jakou šíři má celá problematika ví jen tazatel.
Hádám že si zjistil co tam leze, uvidíme.

Já podobně řešil vysmaženou kartu DA/AD převodníku pro servosystém.
Vysmaženou myslím tak, že v ní byla díra.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
weed_smoker



Založen: Dec 02, 2011
Příspěvky: 2676
Bydliště: Jaroměř

PříspěvekZaslal: ne březen 16 2014, 18:20    Předmět: Citovat

MCU x51 maj multiprocesorovou komunikaci přes sériovej port (zapíná se to nějakym bitem v SCON nebo SMOD),u 8085 nevim. Možná bude potřeba rozšiřovat pomocí 8255 a ošéfovat to nějak adresováním.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Celeron



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

PříspěvekZaslal: ne březen 16 2014, 20:32    Předmět: Citovat

Tak s tím zastavením I85 pomocí RDY to chodí. Prostě jakmile I85 zapíše do svýho portu, nahodí se dobastlenej klopák wait a sběrnice I85 se zastaví a je na ní stále adresa a data. Atmel si v klidu dokončí instrukci, skočí do přerušení, udělá si těch pár instrukcí (cca10) na slíznutí adresy a dat ze sběrnice I85 a pak jedním bitem P3 schodí klopák wait a I85 jede dál. Zkoušel jsem to sice jen na jedný adrese a dvěma bity dat, ale vypadá to, že to nemá problém.
Koukal jsem do knih a takhle přes RDY se dělaly pomalý paměti nebo aproximační převodníky, prostě se zastavil procesor, dokud data nezpracovala periférie, či neskončil AD převod. Uvidíme v reálu, zda těch asi 15uS zastavení bude v tý CNC mašině nějak vadit.
Jirka
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Niki31
Zablokován


Založen: Jul 05, 2008
Příspěvky: 131

PříspěvekZaslal: po březen 17 2014, 11:52    Předmět: Citovat

To je zajímavé,spočátku I85 nestíhal,
citace:

zařízení s I85, který nestíhá obsluhu dodatečně namontovaný periférie

a teď ho je třeba najednou zastavovat,takže asi nebude stíhat ještě víc.
Spracovat dva bity za 15uS,to je skutečný výkon.

Ale když to fachčí,nic proti tomu... Very Happy
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Celeron



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

PříspěvekZaslal: po březen 17 2014, 13:55    Předmět: Citovat

I85 nestíhal obsluhovat tu periférii, co teď bude řídit Atmel! Před tím musel čekat na zpracování dat v periférii a protože neměl pořádnej přerušovací systém a jelo to v čekacích smyčkách, nestíhal. U rychlýho Atmela 89C55 nebo 89S8253 je kupa přerušení a obsluha periférie se dá s přerušením napsat úplně jinak.
Jinak s tou poznámkou "2 bity za 15uS" by mě celkem zajímalo, co tím pán myslel Rolling Eyes Řekl bych, že vůbec nepochopil vo co go. Přenášel jsem celej byte ale zadrátoval na bastldesce na zkoušku pouze 2 bity. Stejně tak to "připájení hrsti drátů někam k procesoru" posledně... Ten I85 má přístupnou systémovou sběrnici pro rozšiřující desky ale to v problému není podstatný.
Jirka
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Jenda_KL



Založen: Sep 10, 2008
Příspěvky: 1173
Bydliště: Kadaň

PříspěvekZaslal: po březen 17 2014, 15:34    Předmět: Citovat

na mě je 15us taky dost dlouhá doba, obzvláště když to bude zastavovat za každým zápisem na bus.
Klopák bych dal za adresní dekodér, pokud by byl vůcec potřeba.
Ten dekodér zajistí přerušení (event. zastavení) jen když je psáno na vybrané adresy, navíc to cílový procesor nemusí zjišťovat.
S AVRkem na 8MHz (125ns instr.cyklus) by byla rekace na přerušení asi takováto :
max. 2 - předchozí instrukce
2 - JMP INT
1 - IN rx,portina
1 - IN ry,portinb
1 - ORI rz,recflagbit
( event. 1 - SBI portn,DRstBit )
( 1 CBI - portn,DRstBit )
2 - RETI

to je 9-11 cyklů což je 1,1-1,3 us
Když se nebude Dčkem zastavovat tak data na busu a délka IOW musí být kratší než 750ns, když clockneš to AVRko tak klidně poloviční.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
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
Strana 1 z 1

 
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.16 sekund