OldComp.cz

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


Právě je 24.04.2024, 16:28

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 ... 9, 10, 11, 12, 13, 14, 15  Další
Autor Zpráva
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 19.03.2021, 13:19 
Offline
Radil

Registrován: 08.10.2013, 18:00
Příspěvky: 297
Has thanked: 13 times
Been thanked: 228 times
Charlie_XZ píše:
Nebuď takovej pesouš, STM32L4 už těmahle "ale" netrpí, GPIO periferie běží na 80MHz stejně jako jádro, kód by nemusel být v RAM protože až do 80MHz je 0WS (jinak kód v RAM není problém ani v C)
Ok, GPIO a EXTI konkrétně na zmíněném STM32L412 už problém není, ale to slavné "0WS" z FLASH nefunguje na vše, to je jen marketingový kec, dělá to jen ... "the accelerator implements an instruction prefetch queue and branch cache", tedy funguje dobře na nepřerušovaný kód, ale běda jak přide přerušení, to se jaksi nedá odhadovat pár instrukcí dopředu, takže to celé jejich 0WS ukázkově selže, můžu předvést na debuggeru.

Spouštění z RAM taky není všespásné, protože pak je potřeba mít data v RAM na jiné sběrnici než kód, jinak se bude vzájemně brzdit načítání instrukcí a dat a ve finále může být pomalejší než kdyby to jelo z FLASH. Zmíněný STM32L412 tuhle možnost rozdělení má. Ale na obsluhu sběrnice v přerušení je stejně dost pomalý, pro řešení s přerušením bych sáhl asi po STM32G431, pokud má být ve stejném pouzdře. Je ale pravda, že s takovým výkonem, kdyby měl větší RAM, tak už pravděpodobně nebude potřebovat ten zbytek počítače, ke kterému se připojuje :lol:


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

Registrován: 24.05.2018, 22:32
Příspěvky: 1976
Bydliště: Most, Praha
Has thanked: 873 times
Been thanked: 699 times
nobomi píše:
...Je ale pravda, že s takovým výkonem, kdyby měl větší RAM, tak už pravděpodobně nebude potřebovat ten zbytek počítače, ke kterému se připojuje :lol:
Po pravdě, to ani s tou ATmegou by zbytek počítače nepotřebovala. Což je problém všech novodobých periferií, že pomáhají veteránovi co by samy zvládly snáz. Jako když rodič pomáhá dítěti, když sám by to měl 10x rychleji: "Jé ty jsi šikovný!".

_________________
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: 19.03.2021, 15:31 
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
Bohužel, to rozhraní je úzké místo.
Je lepší, když původní "počítač" slouží jen jako obsluha klávesnice a do té "hloupé" periferie se přesune vše ostatní.
Přehození kablíku od obrazovky je už jen hw prkotina, to zvládne i začáteřník :lol:

_________________
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


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

Registrován: 22.05.2013, 21:14
Příspěvky: 3671
Bydliště: Bratislava
Has thanked: 373 times
Been thanked: 798 times
danhard píše:
Je lepší, když původní "počítač" slouží jen jako obsluha klávesnice a do té "hloupé" periferie se přesune vše ostatní.
Nebolo by v tom pripade lepsie na tu "hlupu" krabicku rovno pripojit aj nejaku USB klavesnicu ? ;) :D


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 19.03.2021, 23:03 
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
Pak by původní počítadlo dělalo jen obsluhu kontrolky "zapnuto" :lol:

_________________
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


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

Registrován: 15.01.2014, 20:08
Příspěvky: 788
Bydliště: Šlapanice
Has thanked: 131 times
Been thanked: 98 times
Ach jo, nechcete rovnou vyhodit ty historické stroje a nahradit je moderními patlafouny.

Jak to tu čtu tak stihat sběrnici na 2MHz je pro ty moderní obvody nad jejich sily aneb to vidím tak že bez mezivrstvy na logice to jaksi nepůjde, aneb bud se tam nacpe 3212 nebo podobny obvod v FPGA aby ten moderní bazmek vůbec stíhal, případně to celé spáchat v FPGA.

Malá ukázka jak to plečka na 2MHz stíhá s prstem v nose a moderní sráč který tu plečku zvládne emulovat nestíhá …. http://www.astromik.org/raspi/48.htm

_________________
Ne všichni jsme měli z češtiny za jedna, aneb jsem dyslektik a dysgrafik.

http://www.sapi.cz/


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

Registrován: 07.07.2019, 22:14
Příspěvky: 3826
Has thanked: 280 times
Been thanked: 457 times
Taky mi přijde že se to vyvíjí poněkud odlišným směrem než by takový obvod měl. I když je představa jednoho malého čipu lákavá, není nakonec technicky proveditelnější přídavné pcb? Pokud se tedy nebude jednat o nějaké FPGA, ve kterém dotyčný naprogramuje celé to rozhraní. Nápad tu šumí za nápadem, až to celé zase vyšumí... Ta 3212 je pravda poněkud rozměrově hovado ale zase v PP je místa dost a fungovalo by to. 16pinové pouzdro je holt poněkud fyzicky malé na samodomo doplňky. Když si vezmu jak jsou řešené ty karty v PP s jednotlivými částmi počítače, tak taková přídavná destička do 15 cm2 plochy je vlastně tintítko a na FPU takových možností tehdejšími technologiemi RVHP by to pořád bylo krutopřísně integrované :-).

K té malině - holt kolik MHz frekvence se přidá, tolik cyklů navíc sežere programovací jazyk s GUI, proti kterému interpret Basicu je pomalu Assembler... :-). Počítače mají gigahertzové procesory a desítky GB RAM aby běžným uživatelům dělaly obdobné úlohy přibližně stejně rychle, jen to má víc barviček a pixelů :lol:.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: HW násobička MH1020
PříspěvekNapsal: 20.03.2021, 00:53 
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
Pánové, Vaše připomínky vycházejí z toho, že jste natolik hloupí, že takovou periferii, rozhraní neumíte udělat sami.
Kdyby jste to uměli, tak to sem dávno dáte a nebudete kritizovat naše snahy, jak to udělat co nejlépe.

_________________
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


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

Registrován: 07.07.2019, 22:14
Příspěvky: 3826
Has thanked: 280 times
Been thanked: 457 times
Ano, neumím to a ani to nikdy umět nebudu, tohle je tak specifická věc že i lidi co elektro reálně studovali se v tom lehce utopí. Přesto se nemůžu zbavit dojmu, že se ta debata začíná točit dokolečka odnikud nikam. To vidím z těch posledních pár "odborných" příspěvků jak se ta debata přesunula na kvazi připojování USB klávesnic k zařízení, které bude původní počítač používat ke správě kontrolky napájení. To není moc k tématu.

I jako laik vidím že to není žádná sranda, že tu probíhá pokus spojovat technologie, které dělí desítky let a ta idea je na pomezí dvou přístupů "nechme to tak" a "udělejme z toho nový počítač," které oba mají své zapálené zastánce co s tím druhým přístupem obvykle mají problém :-).

Ale ten fokus se ztrácí, proběhlo několik nápadů, všude se objevilo nějaké zásadní "tudy ne, přátelé" a postupně to zase na povrchu utichá. A to je takový varovný znak že brzy téma zase usne do ztracena aniž dojde k nějakému ukončení, protože fáze švitořivého optimismu narazila na tu šedou realitu že to vůbec rozběhat bude pěkný oser. Možná jsem jen málo trpělivý.

Takže nekritizuju žádné snahy udělat to co nejlépe, jen říkám pozor aby ty snahy postupně neutichly bez výsledku, ať ten už bude jakýkoliv (i konstatování že tímto směrem ne je výsledek). A je to jen můj osobní dojem z toho jak to tady vidím, nevidím nikomu do hlavy co na pozadí sám udělal, dělá a nebo zamýšlí udělat aniž by to tu nutně chtěl ventilovat.

Nechci se nikoho dotknout, je to běh na dlouhou trať a každý to dělá ve svém volném čase zdarma. Naopak si všech řešitelů velmi vážím, jen prosím řešme FPU.


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

Registrován: 15.01.2014, 20:08
Příspěvky: 788
Bydliště: Šlapanice
Has thanked: 131 times
Been thanked: 98 times
Tak se to pokusím shrnout a budu u toho vážný.

Se znalostmi jsem na tom o trochu lip než Czech Human aneb tuším, odkud vane. To že ne vše se dá stihnout programově jsem se utvrdil v době, kdy se řešila náhrada klávesnice (vlastní matice tlačítek) v SPO186 ONDRA aneb tam se čte klávesnice jen jednou instrukcí IN, takže na kompletní zpracování je jen 450ns. Musím říct, že dost programátoru oněch moderních MCU nepochopilo problém a ti co to pochopili tak zjistily, že to není žádná sranda udělat … aneb to skončilo u moc giganticky výkonného MCU nebo spínací matice ovládaná tuctovým (dobovým) MCU. (s tou spínací maticí je řešeno dobové připojení klávesnice C262.9(12) k DIDAKTIKu M)

A tady se naráží na podobny problém aneb děje na 2(4)MHz sběrnici se dějí dost rychle, takže moderní MCU tam stihnou udělat jen „málo instrukcí“ na plné zpracování sběrnice. A jak z toho ven bud se najde MCU který to bude stíhat i na 4MHz sběrnici s prstem v nose a nebude mu vadit 5V nebo se použije mezi vrstva na logice, která dá více času pro ten MCU. To jak bude řešená ta mezi vrstva, nechám na vás aneb je to nad mé znalosti. To že tu prudím s tou 3212 je to, že ta 3212 se k tomu perfektně hodí ale je gigantická má monstrózní spotřebu ale už se nevyrábí.

Z mého pohledu jsou dvě možná řešení, aby to v těch historických strojích nebilo jak pěst na oko. Postavit to celé v THT tj. DIL pouzdra ale bude to přídavná destička, která bude sedět bud přímo na sběrnici nebo se bude strkat do patice pro MH102. V té THT verzi těch IO asi bude povícero aneb pokut tam bude ta mezivrstva a bude se řešit z vyráběných „TTL“ IO tak se tam bude muset spáchat něco funkčně podobného 3212. Druhá možnost je to že se to povede narvat na redukční desku o velikosti DIL16 aby to šlo rovnou strčit místo MH102. A jak tu bylo zmíněno tak se dělají i MCU s FPGA polem takže ta mezi vrstva může být v tom FPGA ale problém bude v tom aby snesl 5V logiku.

Nebo to skončí tak že se to odpíská aneb neřešitelný problém.

_________________
Ne všichni jsme měli z češtiny za jedna, aneb jsem dyslektik a dysgrafik.

http://www.sapi.cz/


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

Registrován: 24.05.2018, 22:32
Příspěvky: 1976
Bydliště: Most, Praha
Has thanked: 873 times
Been thanked: 699 times
Zkusil jsem lehký nástin obsluhy sběrnice pro to zapojení které jsem uváděl. Vychází mi max. doba reakce na změnu na sběrnici na asi 15 instrukcí, tj. asi max. 0.2 us. Obsluha běhá v čekací smyčce, jela by tedy z cache.

Celkově bych asi softwarovou obsluhu sběrnice v MCU (STM32 i ATmega) zařadil do skupiny "tudy cesta nevede", nestíhá to uspokojivě ani rychlý procesor. Asi se bez přídavné hw podpory neobejde. STM32x4 dobrý, rychlý, ale bude také potřebovat latch a oddělovač. Bylo by dál otázkou zda 8-bitový ATmega v DIL nebo 10x až 100x rychlejší 32-bitový STM32 v SMD.
Kód:
   .syntax unified
   .cpu cortex-m4
   .thumb

   .section data

// lokalni data
BusData:
   .lcomm   BusDataMulL,1      // 0: nasobek LOW
   .lcomm   BudDataMulH,1      // 1: nasobek HIGH
   .lcomm   BusDataMulResL,1   // 2: nasobek vysledek LOW
   .lcomm   BudDataMulResH,1   // 3: nasobek vysledek HIGH

   .section .text

/* Piny:
PA15 - D1
PA14 - D2 (SWCLK)
PA13 - D3 (SWDIO)
PA12 - D4
PA11 - D5
PA10 - D6
PA9 - D7
PA8 - D8
PA7 - A0
PA6 - /CS
PA5, PA4, PA3 - 0
PA2 - /WR
PA1 - /RD
PA0 - FR
*/

// --------------------------------------------------------
//       Obsluha sbernice pri cekani na command
// --------------------------------------------------------

.global BusCmd
BusCmd:
   // uschova registru
   push   {r4,r5,r6}

   // priprava basove adresy GPIOA -> R3
   movs   r3,#0x90      // bazova adresa GPIOA >> 23
   lsls   r3,r3,#23      // posun, basova adresa GPIOA = 0x48000000

   // bazova adresa tabulky skoku -> R12
   ldr   r12,=BusCmdJmp

   // priprava masky ridicich signalu -> R2
   movs   r2,#0xf8      // maska, bity 3..7

   // priprava bazove adresy lokalnich dat
   ldr   r6,=BusData

// zacatek cekaci smycky
BusCmdLoop:

   // nacteni portu A
   ldr   r1,[r3, #0x10]      // nacteni vstupu z GPIOA (registr IDR)

   // priprava adresy skoku (adresa skoku je nasobek 8) -> R4
   // pozn: bity 3..5 jsou = 0
   lsls   r4,r1,#3      // portA << 3
   orrs   r4,r1         // portA | (portA << 3)
   ands   r4,r2         // maskovani bitu ridicich signalu
   add   r3,r12         // pricteni bazove adresy tabulky skoku

   // skok na obsluhu
   bx   r3

// --------------------------------------------------------
//   Obsluhy ridicich signalu sbernice - cekani na povel
// --------------------------------------------------------
// - je to 64 obsluh, kazda obsluha 8 bajtu = 4 instrukce
// Cela tabulka ma velikost 256 bajtu.

   .align   3      // zarovnani na 8 bajtu
BusCmdJmp:         // zacatek tabulky obsluh

// ---- 00000: neplatny stav
//  B7: A0 = 0
//  B6: /CS = 0
//  B5: /WR = 0
//  B4: /RD = 0
//  B5: A1 = 0
   .align   3      // zarovnani na 8 bajtu
   b   BusCmdLoop   // skok zpet do smycky
// .... atd

// ---- 00100: zacatek cteciho impulsu, adresa 0: cteni vysledku nasobeni LOW
//  B7: A0 = 0
//  B6: /CS = 0
//  B5: /WR = 1
//  B4: /RD = 0
//  B5: A1 = 0
   .align   3      // zarovnani na 8 bajtu
   b   BusReadL   // skok na obsluhu cteni vysledku nasobeni LOW
// .... atd

// Obsluha cteni vysledku nasobeni LOW
BusReadL:

   ldrb   r1,[r6,#2]   // nasobek vysledku LOW
   lsls   r1,r1,#8   // posun
   strb   r1,[r3,#0x14]   // vystup na port GPIOA (registr ODR)
   
   ldr   r1,=0x55550000   // bity 8..15 jako vystup
   str   r1,[r3,#0]   // nastaveni bitu jako vystup

// ... pokracuje obsluha cekani na konec /RD

_________________
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: 20.03.2021, 15:52 
Offline
Kecálek

Registrován: 07.05.2014, 12:10
Příspěvky: 197
Bydliště: Jbc
Has thanked: 0 time
Been thanked: 39 times
Misto instrukce bx R3 by slo pouzit TBB [PC,R3]
Mimochodem, nemelo by to byt ADD R4,R12 a BX R4 ?


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

Registrován: 15.01.2014, 20:08
Příspěvky: 788
Bydliště: Šlapanice
Has thanked: 131 times
Been thanked: 98 times
Abych tu jen neproudil tak aby se ušetřilo nějaké to pouzdro v THT variantě tak by šlo použit něco z rodiny IO 74LS651 až 74LS657 aneb dva sběrnicové registry v jednom pouzdru ale jaká je dostupnost netuším, aby ta 3212 nebyla dostupnější.

_________________
Ne všichni jsme měli z češtiny za jedna, aneb jsem dyslektik a dysgrafik.

http://www.sapi.cz/


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

Registrován: 24.05.2018, 22:32
Příspěvky: 1976
Bydliště: Most, Praha
Has thanked: 873 times
Been thanked: 699 times
hynek píše:
Misto instrukce bx R3 by slo pouzit TBB [PC,R3]
Mimochodem, nemelo by to byt ADD R4,R12 a BX R4 ?
Jo jo, je to špatně. Byl to jen letmý nástřel pro utvoření představy, jak asi by to bylo rychlé.

_________________
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: 20.03.2021, 16:37 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 24.05.2018, 22:32
Příspěvky: 1976
Bydliště: Most, Praha
Has thanked: 873 times
Been thanked: 699 times
EC1045.01 píše:
Abych tu jen neproudil tak aby se ušetřilo nějaké to pouzdro v THT variantě tak by šlo použit něco z rodiny IO 74LS651 až 74LS657 aneb dva sběrnicové registry v jednom pouzdru ale jaká je dostupnost netuším, aby ta 3212 nebyla dostupnější.
Původně jsem měl představu 74HC573 pro zápis dat a 74HC245 pro čtení. Levné, malé a dostupné. Šly by?

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


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 ... 9, 10, 11, 12, 13, 14, 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 6 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