OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 27.04.2024, 09:49

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 225 ]  Přejít na stránku Předchozí  1, 2, 3, 4, 5 ... 15  Další
Autor Zpráva
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 23.02.2021, 19:03 
Offline
Profík

Registrován: 28.07.2018, 14:37
Příspěvky: 932
Has thanked: 43 times
Been thanked: 414 times
Ano. Tak je to správně.

mvi A,n (7T, 7/2048000=3,4usec)
out port (10T, 10/2048000=4,9usec)
mov r1,r2 (5T, 5/2048000=2,4usec)

Na PMD-85 jsou však vkládány čekací stavy (WAIT STATE) kvůli souběžnému přístupu CPU a videoprocesoru, proto jsou všechny instrukce o 1-3T CPU delší (kvůli těm vloženým čekacím stavům). Ale takt sem, takt tam, řádově je představa správná.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 23.02.2021, 19:13 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 24.05.2018, 22:32
Příspěvky: 1980
Bydliště: Most, Praha
Has thanked: 874 times
Been thanked: 699 times
Děkuji. Chtěl jsem mít základní představu o náročnosti. Takže ATmega bude mít dost času na ukládání povelů (za tu dobu udělá kolem 100 instrukcí).

_________________
i++ (INC) increment
i-- (DEC) decrement
i@@ (EXC) excrement


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 23.02.2021, 22:33 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3829
Has thanked: 280 times
Been thanked: 457 times
Jen tak pro lepší naladění na MH1020 jsem udělal ideový obrázek pcb. Oměřil jsem si origo ROM modul a to pcb je vysoké 62 mm a dlouhé že konce nevidět. Tak jsem to zasekl na 10 cm aby ještě bylo dvouvrstvé a levné na výrobu (aktuálně na obrázku je to jen 7 cm pro přesnost). Ty 3 čipy, oscilátor a pár součástek se tam myslím vleze. Na ten konektor se připojí káblík co se zasune do patice pro MH102. Napájení mě napadlo vytáhnout z napájecích bodů vlevo v bedně, ale zase by to byly dlouhé dráty, tak jsem připravil 8pin, tedy 14 pinů na patici a 2 piny na +5V a případné druhé GND :-). Ty díry pak vycentruju přesně aby odpovídaly dvěma šroubům, co normálně drží ROM modul vpravo.


Přílohy:
Strana A.png
Strana A.png [ 53.35 KiB | Zobrazeno 2310 krát ]
Strana B.png
Strana B.png [ 24.46 KiB | Zobrazeno 2310 krát ]
Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 24.02.2021, 09:16 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3829
Has thanked: 280 times
Been thanked: 457 times
Taky jsem si přečetl datašít od origo násobičky kvůli signálům a touze mít ideálně zpětnou kompatibilitu a musí se sledovat vícero linek a propojit s latchem a případně oddělovačem sběrnice.

Násobička má tyto signály:

CS/ - signál kdy stav L značí prázdný obvod a H blokuje zápis - násobička si aktuálně pamatuje výsledek.
W/ - ten je druhou závorou zápisu do obdvodu - stav L umožňuje zápis, stav H zápis blokuje.
RD/ - pro čtení z obvodu - L umožňuje číst D1-D8, stav H nikoliv.
A0 - rozhoduje, který bajt se čte, nebo zapisuje H - vyšší bajt, L - nižší bajt. Je použitý pro každý zápis i čtení.
FR - slouží pro určení znamínkového násobení, tedy L - kladné číslo H - záporné číslo 7bitů, bit D8 se bere stav H mínus, stav L plus.

RND1 - mě ze spartánského popisu poněkud méně pochopitelný signál pro zaokrouhlení, kdy ve stavu L nezaokrouhluje a ve stavu H zaokrouhluje. Nicméně se ještě funkčně pojí se signálem FR a jeho stav dále určuje jakým způsobem zaokrouhlení proběhne. Poprosil bych více znalé kdyby mohli funkci tohoto signálu vysvětlit.

D1-D8 - datové bity pro bajt do násobičky.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 24.02.2021, 09:23 
Offline
Profík

Registrován: 26.11.2018, 16:59
Příspěvky: 582
Bydliště: Holešov
Has thanked: 13 times
Been thanked: 91 times
znaménkové násobení je úplně k ničemu a na zaokrouhlování už jsem dotaz dával a nikdo se nevyjádřil .... taky nechápu proč bych u násobení celých čísel měl chtít něco zaokrouhlovat

ke schématu: proč si nevytáhneš napájení z patice MH102? je celkem žravá tak by to mohlo stačit pro moderní součástky


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 24.02.2021, 10:01 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3829
Has thanked: 280 times
Been thanked: 457 times
Ad napájení - taky jsem nad tím přemýšlel ale je tam ten rezistor a násobička žere do 180 mA max. tak aby to stačilo a nějak se rezistor nehřál. Samozřejmě pokud by to tu destičku uživilo, tak to s radostí použiju a byl by jeden kablík na piny bez jakéhokoliv pájení, což je zcela ideální řešení... Teď to tam tak je že 14 pinů jsou datové cesty a signály a GND a VCC jsou 15,16. Násobička sama má 16 nožiček. No ale kdyby to neutáhlo tak bych to napájel nejraději z hlavních napájecích míst a ne někde z desky.

S tou zpětnou kompatibilitou mi to přijde méně a méně praktické, protože na ovládání té Atmegy by se hodil nějaký signál nebo dva taky (třeba ten signál pro přepnutí na jinou variantu přesnosti, RESET nebo něco obdobného). CS, W a RD padne na ovládání sběrnice a FR by pořád mohl určovat znaménko daného čísla, jen to bude třeba 16 bitů dlouhé. Zbývá A0, který je poslední "volný." Ta patice je prostě signálově poněkud malá :-).


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 24.02.2021, 10:14 
Offline
Profík

Registrován: 26.11.2018, 16:59
Příspěvky: 582
Bydliště: Holešov
Has thanked: 13 times
Been thanked: 91 times
já bych osobně asi moc zpětnou kompatibilitu neřešil, stejně se na to budou muset napsat úplně nové knihovny aby to mělo nějaký smysl a stávájící SW prakticky neexistuje


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 24.02.2021, 10:24 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 24.05.2018, 22:32
Příspěvky: 1980
Bydliště: Most, Praha
Has thanked: 874 times
Been thanked: 699 times
ATmega bere 2 mA.

Patici má PDIP28 úzkou ( https://www.gme.cz/atmega328p-pu-sdip28-atmel ). Zapojení pinů:
Kód:
/RESET (1)   (28) WD5
   WD6 (2)   (27) WD4
   WD7 (3)   (26) WD3
   CMD (4)   (25) WD2
  DATA (5)   (24) WD1
     ? (6)   (23) WD0
   VCC (7)   (22) GND
   GND (8)   (21) x
 XTAL1 (9)   (20) VCC
XTAL2 (10)   (19) RD5
 BUSY (11)   (18) RD4
  RD6 (12)   (17) RD3
  RD7 (13)   (16) RD2
  RD0 (14)   (15) RD1

VCC .. napájení 5V
GND ... zem 0V
XTAL1 a XTAL2 ... krystal 20MHz, na zem blokovací kondenzátory 22pF nebo 27pF
RD0..RD7 ... data čtená z ATmegy
WD0..WD7 ... povel nebo data zapisovaná do ATmegy
BUSY ... H=ATmega pracuje, L=nečinná nebo má připravený výsledek
CMD ... sestupná hrana H->L zapíše povel do ATmegy
DATA ... sestupná hrana H->L zapíše data nebo čte data z ATmegy
/RESET ... resetování ATmegy při L, může se buď řídit procesorem (z dekodéru adresy) nebo napojit na VCC (není nutné přes odpor).
Pin 6 je zatím nevyužitý.
Pin 21 musí zůstat volný.

Polarita signálů BUSY, CMD a DATA může být i obráceně.

Připojení: ATmega neumí oddělit sběrnici, proto na vstupu WD0..WD7 musí být latch, který si zapamatuje zapisovaná data a drží ji pro ATmegu než si to přečte. Zápis do ATmegy se provede signálem CMD nebo DATA. Podobně při čtení si hlavní procesor přečte RD0..RD7 přes oddělovač sběrnice a přečtení potvrdí signálem DATA. Zda se DATA použije pro zápis nebo čtení závisí od povelu. Hlavní procesor to odliší kombinací adresy s WR/RD.

Signál BUSY by asi hlavní procesor měl možnost číst jako port, aby mohl u dlouhých operací čekat. (u krátkých operací jako integer MUL a DIV se dá asi počítat s pevným časem).

Kdyby ATmega nebyla v patici, asi by se hodilo tam mít i programovací konektor ISP (signály 17 MOSI, 18 MISO, 19 SCK, 1 RESET). V tom případě by RESET musel být na VCC přes odpor.

_________________
i++ (INC) increment
i-- (DEC) decrement
i@@ (EXC) excrement


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 24.02.2021, 10:43 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3829
Has thanked: 280 times
Been thanked: 457 times
Děkuji za podrobný popis, zkusím to slepit dohromady :-). Atmegu bych primárně dával do patice aby se dala lehce zrecyklovat jinde a bez problémů naprogramovat. NIcméně ty kontakty na programování v destičce se vyvést dají, jen to pak musí zkouknout někdo kdo tomu taky rozumí :-D.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 24.02.2021, 10:53 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 24.05.2018, 22:32
Příspěvky: 1980
Bydliště: Most, Praha
Has thanked: 874 times
Been thanked: 699 times
Ten volný pin 6 by se asi dal použít na indikaci chyby ERROR (např. dělení nulou) a mohl by se číst spolu se signálem BUSY. Předběžný odhad součástek (ale nevím jak to vyjde s připojením): latch 74HC573 pro zápis do ATmegy, budič sběrnice 74HC245 pro čtení z ATmegy, budič sběrnice 74HC365 pro čtení BUSY a ERROR z ATmegy, a pak nějaký dekodér adresy. A něčím vygenerovat signál DATA aby se dal použít pro čtení i zápis dat.

Zapojení ISP programovacího konektoru je vidět např. zde, ten procesor má stejné vývody.

_________________
i++ (INC) increment
i-- (DEC) decrement
i@@ (EXC) excrement


Naposledy upravil Panda38 dne 24.02.2021, 10:58, celkově upraveno 1

Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 24.02.2021, 10:57 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3675
Bydliště: Bratislava
Has thanked: 373 times
Been thanked: 798 times
Panda38 píše:
Připojení: ATmega neumí oddělit sběrnici, proto na vstupu WD0..WD7 musí být latch, který si zapamatuje zapisovaná data a drží ji pro ATmegu než si to přečte.
A je ten latch nutny ? Ak by ATmega malo piny nastavene ako vstupne, enable pre povodny latch by bolo zapojene na prerusenie, a ATmega by zosnimal data priamo z datovky v preruseni, nestihal by to ? A podobne aj opacny smer - IN z prislusneho portu v CPU vyvola v ATmega prerusenie a ATmega vtedy posle na datovku pozadovany udaj.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 24.02.2021, 11:02 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 24.05.2018, 22:32
Příspěvky: 1980
Bydliště: Most, Praha
Has thanked: 874 times
Been thanked: 699 times
To by nejspíš nestíhala. Při zápisu dat trvá asi 1,5 us než se vyvolá přerušení a porty si přečte. Při čtení by navíc musela detekovat jak dlouho je signál aktivní a asi by se nestrefovala moc přesně na vypnutí dat, mohla by zablokovat sběrnici.

_________________
i++ (INC) increment
i-- (DEC) decrement
i@@ (EXC) excrement


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 24.02.2021, 11:09 
Offline
Profík

Registrován: 26.11.2018, 16:59
Příspěvky: 582
Bydliště: Holešov
Has thanked: 13 times
Been thanked: 91 times
jen taková vsuvka, pokud to czechhuman plánuje jako náhradu obvodu MH102 v jeho patici, tak je potřeba překódovat A0,CS,W,RD případně ještě k tomu i FR a RND na signály CMD a Data

dále by bylo dobré dohodnout jak se bude testovat co za obvod je v dané mašině (HM102 nebo 1020), např. test přítomnosti MH102 je že tam pošlu třeba 100x100 a přečtu si výsledek a pokud se mi vrátí 65535 nebo jiná hodnota než 10 000 tak nemám MH102 (třeba na IQčku je vše pullupnuté nahoru, takže když nic není na portu čtení vrátí 255), na toto ale musí správně reagovat 1020 pokud by to mělo být kompatibilní

je tam ale úplně jiná filozofie práce... klasická MH102 při jakémkoliv zápisu hodnoty (jedno do kterého registru) hned umožňuje čtení výsledku násobení, kdežto atmega potřebuje příkaz a pak data aby to umělo víc než tupé 8-bitové násobení, takže je zde vůbec důvod přemýšlet nad zpětnou kompatibilitou?


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 24.02.2021, 11:44 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3829
Has thanked: 280 times
Been thanked: 457 times
Já tu kompatibilitu už v hlavě opustil, protože ta Atmega potřebuje pár signálů na svoje základní řízení a to bez zneužití a změny významu těch současných není možné. Je mi jasné že násobička je instantní záležitost, zatímco Atmega bude muset počítat a dostat nějak najevo co si po ní přejeme udělat a případně že je hotovo. Proto jsem se nechtěl tak úplně vzdávat 4 nebo alespoň 3 portů aby se nemíchaly data a povely byť to znamená složitější dekodér adres. Já bych to řešil tak, že z každého páru portů na vstup a výstup se nechá jeden na vkládání dat, jeden na čtení výsledků po bajtech a jeden ex-vstupní port by sloužil pro přepínání režimů (je jich tam vymyšlených požehnaně) a druhý ex-výstupní port pro kód druhu operace (bereme v potaz že to bude FPU, tedy poměrně dost kódů funkcí). Samozřejmě by se dal asi jeden port ušetřit když režim a funkci spojíme, ale zase nerad bych narazil na nějaký limit a je to jednodušší programovat když se používají různé porty, v programu pak lépe vidíte co to má udělat. Atmega bohužel jinak nezjistí s omezeným repertoárem signálů, kolik bajtů čekat a co s nimi udělat.

Ten způsob komunikace chce si dobře promyslet, protože každý ušetřený bajt co se nezapíše znamená až 20% urychlení komunikace v základním režimu a ty změny typu násobení by pokud možno měly být co nejdynamičtější aby se dalo počítat s minimální nutnou přesností a tedy i minimálními potřebami na data. Hodně nás omezuje jen 8bitová sběrnice, u operace s párem 32bit čísel se jedná o 13 bajtů, zatímco u 8/16bitové přesnosti to je pouze 5 a 9 bajtů. Tak nějak pocitově mi vychází že nejlepší poměr cena/výkon má 16bitová přesnost protože se dostaneme na už celkem velká čísla 16bitů x16bitů=až 32bitů ale zároveň je to pořád o dost kratší než 32bit přenos. Největší čas nám tak zabere právě ten přesun dat. Stejně tak se musí nastavit pravidla pro znamínko, signál FR se k tomu přímo nabízí.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 24.02.2021, 16:13 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3677
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
Czech Human píše:
Já tu kompatibilitu už v hlavě opustil, protože ta Atmega potřebuje pár signálů na svoje základní řízení a to bez zneužití a změny významu těch současných není možné. Je mi jasné že násobička je instantní záležitost, zatímco Atmega bude muset počítat a dostat nějak najevo co si po ní přejeme udělat a případně že je hotovo.

Ale na to je tam ten drát A0, když je 0, tak to jsou data, když je 1, tak je to instrukce, nebo status.
To té ATmega stačí.
Umí to i jen na datovém portu, třeba i seriově, ale to je trochu složitější.

Interrupt se použít nedá, ale když periferie nepočítá, tak čeká akorát na to, co tam dá CPU za povel.
Čili jen testuje ve smyčce jeden vstupní bit a když je aktivní, tak přečte data, nebo tam dá připravená data.
Z80 mí I/O operace automaticky s 1 waittem.

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Naposledy upravil danhard dne 24.02.2021, 17:34, celkově upraveno 1

Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 225 ]  Přejít na stránku Předchozí  1, 2, 3, 4, 5 ... 15  Další

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 72 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat 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 přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz