[zxspectrum] Re: x Alessandro: riguardo alla ZXMMC...

  • From: "Alessandro" <apoppi@xxxxxxxx>
  • To: <zxspectrum@xxxxxxxxxxxxx>
  • Date: Sat, 3 Feb 2007 19:54:02 +0100

On Saturday, February 03, 2007 7:24 PM [GMT+1],
Paolo Ferraris <pieffe8@xxxxxxxxx> wrote:

Cosi` ad occhio, temo che una serie di OUTI consecutive non lascino
abbastanza tempo. Basterebbe 1T-state in piu`, probabilmente. Faro`
sicuramente una prova!

Direi anche io. Siamo troppo al limite. Se anche funzionasse su uno
Spectrum/Badaloc potrebbe essere "di culo" e magari su un'altro
potrebbe fallire.

E infatti non ha funzionato. Per essere sicuro di non aver commesso qualche
errore banale, ho verificato il corretto funzionamento a 14MHz della routine
costituita dai 16 INI (che purtroppo e` risultata ok).

Si potrebbe mettere un NOP dopo ogni OUTI (20 T-states invece dei 21
del OTIR) ma il guadagno in termine di velocita' diventerebbe
ridicolo.

Certo che ne pensi una piu` del diavolo! Se non altro, se tu dici che non
c'e' modo di avere I/O cadenziato sui 17/18T-states, allora sono sicuro che
NON C'E`.

...e se io mettessi 1 wait state sugli I/O eseguiti sulla porta SPI? :-)

C'e' anche da dire un altra cosa: sullo spectrum il problema sarebbe
risolvibile dotando l'interfaccia di un proprio oscillatore piu` veloce, anche se
l'operazione sarebbe molto piu` complessa di quanto possa sembrare perche`
il clock Z80 serve per sincronizzare il latch dei dati. Magari un multiplo...

Sul badaloc piu` di 21MHz temo mi creerebbero qualche grattacapo... il clock principale e` 85MHz e quello a 21 viene ottenuto mediante divisione /4 (21.25MHz)... /3 non si puo` fare perche` la cpld dovrebbe commutare anche sull'altro fronte. Dovrei portarlo a 42.5MHz, eccedendo pero` in tal modo la frequenza massima accettabile per la SD card, che e` 20MHz (SPI_CLK diventerebbe 21.25MHz).

Poco male, comunque...

Un vero peccato. L'ultimo incremento di velocita` l'ho ottenuto quando ho alzato la frequenza di clock della cpld I/O (prima era 14MHz fissi), arrivando agli attuali 1011KB/sec @21MHz (OTIR/INIR). Col tuo trucco avrei potuto raggiungere i 25fps di video :-)

Ciao!


Other related posts: