Der Prototyp eines möglichen KC85 TCP/IP-Interface nimmt Gestalt an.

Irgendwie müssen wir dem Kind einen Namen geben und so habe ich kurz und schmerzlos "KCNET" gewählt. Nachdem die ersten selbstgesteckten Ziele mit dem "KC85 Labor" erreicht waren,  ging es natürlich mit der TCP/IP-Geschichte weiter. Es sollte zunächst noch eine ganz wichtige Änderung gegenüber der originalen Variante des EasyTCP - Projektes vorgenommen werden.

Die erste Generation des WIZnet TCP-IP-Chips W3100A stammt ca. aus dem Jahr 2002/2003. Mittlerweile ist die Entwicklung weitergegangen und WIZnet hat 2 neue Varianten vorgestellt. Im September 2005 wurde der Nachfolger W3150A vorgestellt und im Januar 2007 der W5100. Beide unterscheiden sich dadurch, dass im W5100 der bisher zusätzlich notwendige Ethernetcontroller mit im Chip implementiert wurde, dadurch reduzieren sich die Herstellungskosten um etwa 50%. Vom Datenblatt her konnte ich bisher keine wesentlichen Unterschiede ausmachen, das heisst die Programmierung dürfte sich so gut wie gar nicht unterscheiden.

Beim Studium der Daten des W3100A und der Assemblerroutinen aus der BASCOM-Bibliothek war mir 2006 bereits negativ aufgefallen, dass die Programmierung eines Treibers nicht ganz trivial und auch etwas umständlich vorgenommen werden muss. Nachdem ich das mit dem W3150A verglichen hatte, war ziemlich schnell klar - diese Nachteile hatte die zweite und dritte Generation nicht mehr und eigentlich sollte man das Projekt nur mit den aktuellen Varianten weiterführen.

Voraussetzung war natürlich, dass meine vorhandene Controllerplatine vom EasyTCP weiterverwendet werden kann. Als ich das im Mai 2007 prüfte, stellte ich erfreut fest, dass WIZnet hier Weitsicht bewiesen hatte. Das fertige WIZnet Modul NM7010B+ mit einem W3150A+ (Revision des W3150A) sollte nach wenigen Änderungen an der Originalplatine genauso funktionieren, wie das IIM7000A mit W3100A. Ich bestellte dann im Mai das neue Modul und so sieht das aus: 

NM7010B+


NM7010B+ von der Seite


NM7010B+ oben


NM7010B+ von oben mit dem WIZnet-Chip
 
 
NM7010B+ unten
 
 
NM7010B+ von unten mit dem Ethernet-Controller


Auf den Abbildungen kann man bereits einen wesentlichen Unterschied zum IIM7000A erkennen. Der Übertrager ist mit auf die kleine Modulplatine gewandert, was erstens ein eigenes Layout und Routing der kritischen Leiterbahnen (25 MHz!) auf einer eigenen Platine erspart und zweitens ein erheblich kompakteres Design beim Nachbau ermöglicht.

Der aktuellere TCP/IP-Core des W3150A+ lässt sich einfacher und unkomplizierter programmieren als die erste Variante im W3100A. Da die externen Verbindungen zum Übertrager nicht mehr vom Modul herausgeführt werden müssen, spart man vier Leiterzüge ein bzw. sie werden beim NM7010B+ für die Aktivierung des SPI-Mode umfunktioniert, welchen der neue Chip jetzt auch kann. Ansonsten sind die beiden Module elektrisch pinkompatibel. Das neuere Modul hat allerdings zwei 28 polige Stiftleisten gegenüber 24 polig beim alten Modul, die zusätzlichen Pins sind aber alle nicht belegt.

Damit man das NM7010B+ auf dem EasyTCP betreiben kann sind die folgenden drei Änderungen unbedingt durchzuführen. Als erstes sind zur Kontaktierung des Moduls zwei 2mm Buchsenleisten pro Seite notwendig, die erste wird in die Platine gelötet und die zweite im Huckepack aufgesteckt. Dadurch bekommt das Modul die notwendige mechanische Höhe und lässt sich abschliessend oben aufstecken, auch wenn man alle IC's des EasyTCP sockelt:


NM7010B+ Sockel links

Ansicht von links 

NM7010B+ Sockel rechts

 Ansicht von rechts

NM7010B+ Sockel gross

Nahaufnahme, rechts sieht man die unbenutzten Pins gegenüber dem IIM7000A


Zweitens sind die Widerstände R2, R3, R4 und R9 zu entfernen oder bei einem Neuaufbau wegzulassen. Das sind die ehemaligen Leitungen zum externen Übertrager des alten Moduls, welche keine elektrische Verbindung zur alten Schaltungsvariante haben sollten.

R2 R3 R4 R9 entfernen

R2, R3, R4, R9 entfernen oder nicht bestücken 


Drittens ist die alte RJ45-Buchse für den Anschluss des Patchkabels auszulöten bzw. ebenfalls wegzulassen, sie befindet sich ja beim neuen Modul "onboard":

RJ45 entfernen

RJ45 auslöten oder weglassen


Das war schon alles, bei einem Neuaufbau spart man mit der neuen Variante sogar noch Zeit und Geld ein.

Für meine Umgebung habe ich noch eine vierte Änderung durchgeführt. Da ich schon immer mit dem Programmieradapter des STK200 meine AVR-Schaltungen in Betrieb nehme und in der Schaltung neu programmiere, habe ich die eigentlich vorgesehene Variante des EasyTCP mit Parallelkabel noch nie benutzt und die Bauteile auch nicht bestückt.

Ich brauche aber natürlich dann die 10 polige ISP-Schnittstelle für mein Programmierkabel. Dort gab es bisher manchmal Ärger (KC85 hängte sich sporadisch auf), da die SPI-Schnittstelle des ATmega parallel an einigen Verbindungsleitungen zur Z80-PIO hängt. Dann funktioniert meist das Entkoppeln mit Dioden oder Widerständen nicht mehr, da die Programmierimpulse die Schaltung stören können, in diesem Fall also die initialisierte PIO im M001.

Meine Sparvariante wurde durch eine richtige Umschaltung mit Hilfe von Analogschaltern ersetzt, dann wird die PIO während des Programmiervorganges sauber von den Portleitungen getrennt. Die Schaltung ist auch im Handbuch des STK200 abgebildet und beschrieben:

ISP neu

geänderte ISP-Schnittstelle mit 4053 


Damit man den geringen Aufwand der Handverdrahtung sehen kann, nachfolgend noch ein Bild von der Unterseite der betriebsbereiten Platine.

 

KCNET Unterseite

Unterseite KCNET-Platine 


Nachdem diese ganzen Arbeiten erledigt waren, konnte der Praxistest erfolgen. Die KCNET-Platine wurde wieder verkabelt und am KC85/5 angeschlossen:

 

KCNET 3

KCNET 2

 
KCNET 1

Durch den Umstieg auf den W3150A+ mussten abschliessend noch unbedeutende Anpassungen am CAOS-Programm für die Netzwerkinitialisierung vorgenommen werden. Dann konnte ich endlich alles in Betrieb nehmen und es hat erfreulicherweise genauso funktioniert wie mit dem alten Modul. Die nachfolgenden Abbildungen sind diesmal Screenshots vom KC und PC - im Netzwerk unterscheidet sich der KC natürlich nicht von anderen Computern, so dass man der bekannten PC-Meldung das Besondere nicht ansieht!

 

KC85-TCP 2

 

Der erste Test der KCNET-Platine mit dem KC85/5

 

KC Ping-Antwort

 

Der PC meldet sich wie immer 

  

FAZIT

Die KCNET-Platine stellt dem KC85 und jedem PIO-fähigen Z80 Rechner einen frei programmierbaren  TCP/IP-Stack mit Anbindung an ein Ethernet-Netzwerk zur Verfügung. Die Hardwarebasis ist nun vorhanden und an der entsprechenden Software sollte es nicht scheitern.

Man kann 4 Verbindungen ins Netzwerk/Internet parallel öffnen - das sollte ausreichen, es wird wohl niemand auf die Idee kommen mit Z80-Rechnern eine Serverfarm aufzubauen - oder?