Questa e' una scheda programmabile che ho definito "universale" perche' puo' essere facilmente modificata e adattata a svariati utilizzi.
La filosofia di base e' quella di avere una scheda programmabile rapidamente con un set di porte di I/O sufficiente per la maggior parte delle necessita' che si possono presentare negli impianti di automazione e controllo. A seconda della situazione basta quindi realizzare solo le opportune interfacce e scrivere il software.
La scheda e' stata pensata con le seguenti caratteristiche tecniche di base:
Microprocessore: Z80
ROM: fino a 8Kbyte
RAM: fino a 8Kbyte
Alimentazione:12 Vcc con watchdog
Batteria tampone per la ram.
Interfaccia di uscita: parallela, 8 bit, TTL.
Interfaccia di ingresso: parallela, 8 bit, TTL.
Porta seriale a 2400 baud
Slot per l'aggiunta di altre interfacce.
Hardware
Molti storceranno il naso nel vedere il microprocessore Z80. Certo e'
vecchiotto ma ancora validissimo. Ha un set di istruzioni che non ha niente
da invidiare ai piu' moderni microprocessori e microcontrollori a 8 bit.
Inoltre, il set di istruzioni dello Z80 e' adatto al tipo di applicazioni
che deve avere la scheda. Tale microprocessore si trova ancora facilmente
nuovo nei negozi di componentistica elettronica a prezzi veramente stracciati.
Se poi ci rivolgiamo al mercato surplus di schede, allora si trova a tonnellate.
L'impostazione della scheda e' davvero tradizionale, ed e' rappresentata nello schema a blocchi seguente:

Lo Z80 permette di indirizzare 64K indirizzi di memoria.
La scheda e' stata progettata per funzionare con 2K di ROM e 2K di RAM. Il 1° K di RAM e' posto agli indirizzi da $2000 a $23FF ed e' dedicato alle variabili di sistema e ai dati del programma. Il 2° K di RAM è indirizzato da $4000 a $43FF ed e' dedicato alla memorizzazione del programma utente. La RAM è dotata di batteria in tampone cosicchè il programma utente rimane in memoria anche a alimentazione staccata.
Il 1°K di ROM contiene il sistema operativo della scheda. E' indirizzato
da $0000 a $03FF. Al reset quindi la scheda esegue il sistema operativo.
Tramite un pc collegato al connettore seriale è possibile scrivere
e leggere sulla RAM e quindi sviluppare il programma utente. Sul pc deve
girare un apposito programma terminale scaricabile piu' avanti.
Al reset il Sistema operativo controlla lo switch mode. Se è
su program si ha la possibilità di scrivere/leggere la RAM e quindi
sviluppare e testare il programma utente. Se invece lo switch mode è
su RUN, la scheda esegue il programma sviluppato a partire dall'indirizzo
$4000.
Tramite i dip switch del blocco logica di indirizzamento e' possibile mappare il 2° K di ROM al posto del 2° K di RAM (indirizzi da $4000 a $43FF). E' possibile cosi' fissare su ROM il Programma utente definitivo.
Il blocco clock è quarzato e produce sia il clock a 2.4576 MHz che un segnale di interrupt a ___ Hz.
L'alimentatore è controllato da un watchdog che in caso di anomalia dell'alimentazione blocca il microprocessore prima che possa fare danno.
Per le porte di I/O non sono stati utilizzati integrati dedicati ma delle normali porte latch. Non ci sono integrati uart quindi la seriale viene gestita via software ed è a livello TTL quindi per la connessione ad un pc occorre un adattatore di livello da TTL a RS232.
Lo schema e' riportato di seguito.
Software
Qui potete trovare il listato in assembler del sistema operativo:
Nel file sist_op_310.bin vi e' invece l'immagine in binario del sistema operativo.
Sul pc che intendete utilizzare come terminale occorre compilare e far girare il seguente "programma terminale":
Il programma term.pas e' scritto in turbo pascal, gira sotto dos ed e' compilabile con il turbopascal 5.5 della Borland.
Maggiori informazioni sul protocollo di comunicazioni sono contenute
nel file so310.txt
Con questa scheda sono stati realizzati svariati timer, una chiave elettronica, un patch bay midi.

| Back |