5. SP3A-EVAL a BootLoader

Minule jsem rozchodil na fpga Z80 s pamětí ROM a teď nastal čas na otázku jak co nejjednodušším způsobem dostat do Z80 program. Nejprve ale byla potřeba nějaká paměť RAM – takže se přidal modul s interní pamětí ram o kapacitě 32kB. Dál jsem chtěl připojit dalších 32kB paměti ROM z FLASH co je na kitu. Toto se povedlo i to fungoval, ale nakonec jsem od toho upustil. Paměť není tak rychlá aby fungovala bez wait taktů.

Vzpoměl jsem si ale na jeden projekt jednodeskového počítače NCB85 na Nostalcompu (který jsem si taky nepostavil). Součástí základního software byl BootLoader, který si přes sériovou linku nakrmil ram z hex souboru z PC a program spustil od první adresy z hex souboru. Tak jsem provedl v projektu všechny potřebné úpravy pro použití BootLoaderu. Tady je seznam co momentálně obsahuje (jako hardware):

  1. DCM 16MHz -> 50MHz (zdroj: Xilinx)
  2. Z80 CPU bežící na 50MHz (zdroj: Opencore T80)
  3. Uart 115200kbps bez řízení a parity (zdroj: moje maličkost)
  4. RAM 32kB (zdroj: Xilinx)
  5. ROM 2kB (zdroj: Xilinx)

Všechno to je pospojované v entitě „main“. Způsob přístupu do pamětí ram a rom jsem si „vypůjčil“ z PMD85. Rom se přimapuje po resetu a je aktivní jen pokud A14=LOW, odmapuje se přístupem do řídícího portu uartu. Pokud je rom přimapována a do jejího prostoru se zapisuje je zápis proveden do ram. Ram (0-7FFFh) se zatím zrcadlí i v prostoru nad 8000h. BootLoader je v rom, ještě před vlastním čtením ze sériového portu se překopíruje do ram někam zhruba 7E00h – 7FFFh a odmapuje rom.

Jako test jsem použil opět LoopBack na sériové lince, úplně identický program jako minule, ale byl už nahraný z PC hyperterminálu jako hex soubor.

Zazipovaný projekt je ZDE.

Napsat komentář

Vaše emailová adresa nebude zveřejněna.

− six = three