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