Στις δύο αυτές συναντήσεις ασχοληθήκαμε με το κύκλωμα οθόνης του Rainbow Project.
To κύκλωμα αυτό αν και βασίζεται σε οθόνη LCD τύπου HD44781 παρουσιάζει κάποιες ιδιαιτερότητες:
- Θέλουμε να υλοποιηθεί με σχετικά απλό τρόπο
- Θέλουμε να λειτουργεί ικανοποιητικά ακόμα και με σταματημένο ή πολύ αργό το βασικό μας Z80
Για τους λόγους αυτούς επιλέξαμε να μην οδηγεί απευθείας την οθόνη ο Ζ80 (αν και αυτό θα ήταν δυνατό) αλλά να φτιάξουμε κάτι σαν αυτόνομη "κάρτα γραφικών". Η υλοποίηση μας ονομάζεται "Intelligent Display Interface" (IDI) και λειτουργεί με τον παρακάτω τρόπο:
- Στον έλεγχο της οθόνης βρίσκεται ένας μικροελεγκτής MSP430G2553. Ο ελεγκτής αυτός είναι σε κατάσταση "sleep" και ενεργοποιείται όταν λάβει σήμα IORQ από το Ζ80
- Ο Ζ80 στέλνει ένα byte το οποίο μπορεί να είναι είτε εντολή (καθαρισμός οθόνης, μετακίνηση κέρσορα σε θέση κλπ) είτε δεδομένα για εμφάνιση
- Ο MSP λαμβάνει τα δεδομένα και πράττει ανάλογα. Κατόπιν πέφτει ξανά σε sleep
Μια επιπλέον ιδιαιτερότητα του κυκλώματος είναι βέβαια ότι ο MSP λειτουργεί στα 3.3V και όχι στα 5V, οπότε χρειάζεται level translation για να επικοινωνήσει με το Ζ80. Αυτό το επιτυχαμε με διαιρέτες αντιστάσεων και ένα κύκλωμα buffer 74HC44. Μπορείτε να δείτε το πετυχημένο μας αποτέλεσμα στο παρακάτω βίντεο: