Přejít na obsah
ARCHIVEKArchiv e-mailových konferencí o 8bitových počítačích Archiv Pandory 1999 až 2013

Původní podoba příspěvku

Petr Žydek Zpět na příspěvek

Surová data tak, jak byla v roce 2013 stažena z Pandory (HTML zdroj bez úprav, osobní e-mailové adresy jsou maskované).

<!-------------------------------------------------------------->

<!-------------------------------------------------------------->
<table width="100%"><tr><td align="left" valign="middle"><B>RTC - popis, ramdisk - úvod k seriálu:</B></td><td align=right valign="middle"></td></tr></table><BR><p>Stručně o sběrnici I2C</p> <p><br/>Specifikaci I2C definoval Philips,<br/>původním záměrem bylo číslicové <br/>ovládání integrovaných obvodů<br/>v přístrojích spotřební elektroniky.<br/>Roli řídícího obvodu (master) zde plní<br/>jednočipový mikrokontrolér (např.<br/>některý z klonů 805x), roli řízeného<br/>hraje příslušný "periferní" obvod:<br/>audio resp. RBG procesor, EEPROM paměť<br/>atd., v našem případě je masterem CPU<br/>Z80 a slavem obvod RTC.</p> <p>Používá pouhých dvou datových vodičů:<br/>SCL (serial clock), generuje jej master<br/>SDA (serial data), obousměrná datová linka</p> <p>(pozn.: jistou podobnost podobnost lze<br/>vypozorovat u připojení MBUS telefonů<br/>Nokia, zde se funkce obou vodičů kombinuje<br/>v jediném datovém vodiči)</p> <p>Signál SCL vysílá master, je jednosměrný,<br/>tvořený bitovým výstupem brány MCU 8051,<br/>výstupem TTL hradla, výstupem klopného<br/>obvodu atd. Klidová úroveň logická 1<br/>(HIGH) se zajišťuje rezistorem zapojeným<br/>mezi napájecí napětí 5V a výše uvedeným<br/>výstupem. Signál SDA využívají obě strany<br/>pro příjem i vysílání dat, i on má tzv.<br/>pull up rezistor. Strana která vysílá, pak<br/>sepne SDA proti vodiči GND, čímž docílí<br/>stav logická 0 (LOW), nesepnutý stav znamená<br/>HIGH, toto zapříčiňuje pull up rezistor.<br/>Kolize na sběrnici, která by způsobila<br/>poruchu či zničení hardware je vyloučena,<br/>pokud by se obě strany "sešly" současně<br/>s úmyslem vysílat, první z nich by sepla SDA<br/>do LOW, druhá strana by již vyšla naprázdno.<br/>Výsledkemm by byla jen ztráta kontextu a<br/>neplatnost přenosu.<br/>Veškerá data se přenáší vodičem SDA (sériově),<br/>SCL slouží k synchronizaci přenosu.<br/>Detailní popis přenosového protokolu bývá<br/>součástí každého "slave" obvodu, PCF8583<br/>nevyjímaje.</p> <p><br/>Realizace I2C v MZ800:</p> <p>Podstatou je jediný obvod 74xx74. Obsahuje<br/>dva klopné obvody D s nulováním a nastavením,<br/>datovými vstupy D a výstupy Q, Q non (negované).<br/>Oba vstupy clock jsou buzeny z výstupu Prom/Eprom<br/>dekodéru (např. z kombo desky), je zde hodnota<br/>LOW při zápisu na port 88h (vybrán od oka, lze<br/>vyčlenit i jiný), v poslední fázi instrukce<br/>OUT 88h přechází hodnota na vstupech clock v HIGH<br/>a výstupy Q klopných obvodů si od toho<br/>okamžiku pamatují hodnoty ze vstupů D (jsou buzeny<br/>z datové sběrnice Sharpa).</p> <p>Zápis do portu 88h .... ovládání linky SCL, SDA<br/>&nbsp;(0. bit=SDA, 1.bit=SCL).</p> <p>Klopný obvod zachycující D1 vede rovnou do SCL<br/>RTCčka, klopný obvod zachycující D0 je od SDA<br/>RTCčka oddělen diodou (HIGH na SDA je dána<br/>pull up rezistorem). Pokud by LOW na SDA<br/>(iniciovaná procesorem) nebyla "spolehlivá",<br/>vyhoví NPN tranzistor s bází buzenou z Q non<br/>klopného obvodu (přes rezistor např. 10K).</p> <p>Pro čtení stavu I2C je zapotřebí jediný obvod<br/>74xx367. Část nevyužitá pro RTC se uplatní<br/>jako zesilovač signálů pro řadič HDD v rámci<br/>kombo desky. Pro RTC se využijí dva neinvertující<br/>zesilovače ovládané blokovacím vstupem, logická<br/>LOW přivedená naň z dekodéru Eprom (čtení<br/>z portu 88h, není totožný s pinem dekodéru<br/>určeným pro zápis na SCL, SDA) otvírá výstupy<br/>zesilovačů, hodnoty na SCL a SDA se přečtou<br/>instrukcí IN 88h.</p> <p>Čtení z portu 88h .... čtení linky SCL, SDA<br/>&nbsp;(0. bit=SDA, 1.bit=SCL).<br/>Má-li být čtení reakcí na zahájené vysílání<br/>ze slave obvodu, musí mu předcházet zápis HIGH<br/>do bitu 0 portu 88h!!<br/>(jinak by byly čteny samé nuly)</p> <p>Howgh (co se týče RTC)</p> <p>K obrázkům:</p> <p>-ramdisk "Müller" 256KB bude použit při obecném<br/>&nbsp;výkladu<br/>-redukce "patice SIMM 30pin to 2xDIP18" slouží<br/>&nbsp;pro experimentální připojení SIMMu 256KB, 1MB, 4MB<br/>&nbsp;prostřednictvím jedné 64KB stránky RD Müller,<br/>&nbsp;zatím mi ten kabelový salát zřejmě způsobuje<br/>&nbsp;rušení a nic neseje, proto ten další bod:<br/>-redukce "patice DIP18 to DRAM 1Mx4" je první<br/>&nbsp;úspěšně zrealizovaný test funkčnosti dvou<br/>&nbsp;pamětí 1Mx4, které tvoří blok 1MB (otestováno<br/>&nbsp;vždy jen 64KB z adresního prostoru pochopitelně),<br/>&nbsp;na rozdíl od spleti popsané výše, "bez SIMMu<br/>&nbsp;na přímo" tyto paměti chodí(!!)<br/>-foto "DRAM 1Mx4 v RD256K" ukazuje praktickou<br/>&nbsp;realizaci "big DRAMs" v 256KB Müllerovi<br/>-foto s různými SIMMy znamená toto:<br/>&nbsp;[1] SIMM 1MB upravený pro budoucí aplikaci<br/>&nbsp;&nbsp;&nbsp;&nbsp; v Sharpovi, PC moduly mají OE\' trvale LOW!<br/>&nbsp;[2] testovací a měřicí SIMM bez pamětí<br/>&nbsp;[3] SIMM 4MB ze svou pamětí 4Mx4bit, můj<br/>&nbsp;&nbsp;&nbsp;&nbsp; další cíl</p> <p>Petr de Zviqov</p>