\documentclass[final, ms, a4paper, 11pt]{memoir} \usepackage[a4paper, inner=3cm, outer=3cm, marginpar=0pt]{geometry} \usepackage[explicit]{titlesec} \usepackage{wrapfig} \usepackage{graphicx} \usepackage{xcolor} % % set line height \renewcommand{\baselinestretch}{1} % font hyphenation \usepackage{everysel} \EverySelectfont{% \fontdimen2\font=0.6em % interword space \fontdimen3\font=0.2em % interword stretch \fontdimen4\font=0.1em % interword shrink \fontdimen7\font=0.9em % extra space \hyphenchar\font=`\-% to allow hyphenation } % set section style % \newcommand{\secstyle}[2]{[ #2 ] \textcolor{red!50!black}{\MakeUppercase{#1}}} % \renewcommand*\thesection{\arabic{section}} % hide chapter \newcommand\ddate{01.01.1970} \titleformat{\section} {\normalfont}{- \ddate{}:}{1em} {\textcolor{red!50!black}{\MakeUppercase{#1}} -} % monochrome % \titleformat{\section} % {\normalfont}{\thesection}{1em}{\MakeUppercase{#1}} \begin{document} \noindent {\Large Z80 Single Board Computer: Note e Diario di Lavoro} \\\\ \noindent SAM Bellinzona 2016/2017 \\ \noindent REF: Daniele Kamm \\ \noindent PIF: Naoki Pross \\ \vspace{5mm} \renewcommand\ddate{30.01.2017} \section{Perch\`e uno Z80?} Originariamente questo progetto era un esperimento per costruire una cartridge per il GameBoy Classic (DMZ-01) che conteneva dell'hardware aggiuntivo che avrebbe potuto interfacciare dell'hardware esterno con la CPU del GameBoy. Successivamente per\`o il progetto si \`e rivelato pi\`u complicato del previsto a causa della complessa struttura del GB (GameBoy) e la difficolt\`a per ritrovare l'hardware stesso. Quindi sotto consiglio del docente ho cambiato il progetto in un Single Board Computer dato che sono interessato in informatica di basso livello e la CPU del GB era basata sul processore Z80 con un instruction set e assembly simile. \renewcommand\ddate{09.02.2017} \section{Hardware} Dopo una ricerca abbastanza intensiva dal magazzino della scuola abbiamo trovato i seguenti componenti principali del che utilizzer\`o per costruire il computer. \begin{table}[h!] \centering \begin{tabular}{ l l l l } Z8400AB1 (Z80ACPU) & Zilog & x1 & CPU \\ Z8420AB1 (Z80APIO) & Zilog & x1 & Port Interface \\ Z8430AB1 (Z80ACTC) & Zilog & x1 & Timer Clock \\ M28C64 & ST & x2 & EEPROM \\ HM62256B & HITACHI & x1 & SRAM \\ TL16C550C & TI & x1 & Seriale (UART / RS232) \\ \end{tabular} \end{table} Tutti gli altri componenti secondati come porte logiche e circuiti combinatori integrati saranno indicati in una lista finale nella documentazione riassuntiva. \renewcommand\ddate{13.02.2017} \section{Address space} \begin{wrapfigure}{R}{.35\linewidth} \centering \includegraphics[width=.9\linewidth]{res/addrspace.pdf} \end{wrapfigure} Come prima cosa dopo aver deciso il processore (Z80) \`e necessario definire l'address space per decidere come collegare l'hardware. Si vede chiaramente che la RAM usa la maggior parte dell'address space mentre la rom \`e solamente di 16KB, ma questo non \`e un problema perch\`e ho intenzione di aggiungere delle interfacce esterne per poter collegare dispositivi di memoria come per esempio le uSD. Dunque questa EEPROM vicina al processore sar\`a utilizzata unicamente per il bootloader e per un sistema operativo molto basilare. \renewcommand\ddate{23.02.2017} \section{Banchi di memoria} \renewcommand\ddate{06.03.2017} \section{Schede normate e clock secondari} In seguito ad una discussione ho deciso di implementare il circuito su un PCB di dimensioni standard, come per esempio l'Eurocard (IEEE 1101.10) in maniera da poter montare tutte le schede su un rack. Cos\`i facendo si avrebbe dei connettori standard sul retro che si potrebbero utilizzare per le periferiche esterne. Alternativamente si potrebbe utilizzare una struttura simile al PC/104 permettendo di interfacciare delle periferiche specifiche per computer ancora diponibili sul mercato. \end{document}