Das EasyTCP schliesst den KC85 an das Netzwerk an.

Nachdem Ende 2006 die Funktionalität des ersten TCP/IP-Chips der Firma WIZnet im Zusammenspiel mit der EasyTCP-Platine erfolgreich gestestet werden konnte, wurde alles erst mal wieder beiseite gelegt. Zunächst musste das angefangene KC85Transfer, der Prototyp der WTools, zu einem Abschluss gebracht werden.

Das ging bis in den März 2007, wobei ich in dieser Zeit natürlich hin und wieder über das Anschlusskonzept der EasyTCP-Platine an den KC85 nachgedacht habe. Nach der Fertigstellung der WTools ging es etwas später als geplant Anfang April dann endlich damit weiter.

Während der Entwicklung des Scanner-Projektes für den KC85 konnte ich bereits Erfahrungen mit dem Anschluss von externen Schaltungen am Digital-In/Out Modul M001 sammeln. Die damalige Schaltung wurde später auch unverändert in das Modul M051 übernommen und funktioniert reibungslos in vielen Modulen, welche mittlerweile von Anwendern aufgebaut wurden.

Also wählte ich auch für das EasyTCP diese Variante der Ankopplung, allerdings sollte diesmal bereits beim Entwurf die Möglichkeit berücksichtigt werden, dass sowohl die PIO im M001 als auch der ATmega im EasyTCP mit der maximalen Geschwindigkeit arbeiten können.

Das bedeutete, dass beide Seiten gegenseitig Interrupts auslösen können müssen und das Handshake bei der byteweisen Datenübertragung durch die Hardware selbständig abgewickelt werden kann. Insgesamt waren also 12 Verbindungen notwendig, 8 Datenleitungen und 4 Quittungssignale. Der Kanal A der PIO arbeitete im bidirektionalen Modus und der Anschlussport des ATmega wurde je nach Richtung der Datenübertragung während des Betriebes entsprechend umprogrammiert.

Dann war die EasyTCP-Platine an der Reihe. Sie erhielt einen 25 poligen SUB-D Anschluss, das war auch endlich mal ein richtiger Grund, das M001 genauso umzubauen! Die Verbindungsleitungen zu den Schaltungspunkten der Platine wurden auf der Unterseite freifliegend verdrahtet und für den Anschluss am M001 wurde ein 1:1 Flachbandkabel mit den passenden Gegensteckern hergestellt.


EasyTCP am KC85

umgebaute "Easy-TCP" - Platine für den KC85/5


Im Bild lassen sich die wichtigsten Schaltungsbestandteile gut erkennen, unten links der Anschluss für das M001 des KC85, daneben der ISP-Stecker für die Programmierung des ATmega mit einem STK200-Adapter, weiter rechts die beiden LED leuchten blau bei LINK und rot bei POWER. Darüber sind Bauteile für die Stromversorgung der Platine mit 3,3V und 5V, ganz oben rechts ist das externe Netzteil angesteckt. Links daneben befindet sich die Netzwerkanschlussbuchse mit integriertem Übertrager und den beiden BUSY-LED für 10MBit- bzw. 100MBit-Betrieb. Der SUB-D Anschluss oben führt die serielle Schnittstelle des ATmega nach aussen und in der Mitte befindet sich das aufgesteckte WIZnet-Modul IIM7000A mit dem ATmega162 links davon.

Nachdem das alles erledigt war, ging es erst mal an die Software für den ATmega162. Ich programmierte eine notwendige Minimalversion der ersten Firmware in Assembler. Die hatte nicht viel zu tun, da die Register und der Sende- bzw. Empfangspuffer des W3100A als Dual-Port-RAM im Adressbereich des AVR liegen und über einfache Lese- und Schreibbefehle angesprochen werden. Neben den notwendigen Interruptroutinen für das Empfangen und Senden von Bytes vom/zum KC85, war nur noch ein kleiner Monitor für die serielle Schnittstelle des AVR eingebaut. Damit konnte man sich die Inhalte von Speicherzellen des AVR auf dem PC anschauen und das hat mir am Anfang sehr geholfen, um nachzuschauen, ob der KC85 mit dem AVR richtig sprechen kann.

Auf dem nächsten Bild ist der experimentelle Aufbau zu dieser Zeit in voller Aktion zu sehen:


KC85 am EasyTCP

Der KC85 und das EasyTCP am Netzwerk


Das sieht zwar etwas unübersichtlich aus, erfüllte aber alles seinen zugedachten Zweck. Vorn geht das bunte Flachbandkabel zum M001 des KC85 nach unten. Oben sieht man die abgehenden Anschlusskabel zum Netzteil, Netzwerk und zur seriellen Schnittstelle des PC für den AVR-Monitor der Firmware. Leider hat mein toller Computer nur noch eine richtige COM-Schnittstelle. Deshalb sieht man vor dem KC unten noch dieses helle blaue Licht, welches vom am M051 des KC85 angeschlossenen RS232-USB-Adapter stammt. Über diese Verbindung konnte der KC85 die auf dem PC erstellten KC-Programme mit Hilfe der MTools/WTools abholen.

Dieses KC-Programm für die Kontaktaufnahme mit dem W3100A auf dem EasyTCP-Modul wurde schliesslich abschliessend noch entwickelt, um die Übertragungskette zu schliessen und damit auch den logischen Anschluss des KC85 an das Netzwerk zu vollziehen. Da es durch den direkten Hardwarezugriff erst mal schneller umzusetzen war, wurde es für die CAOS-Betriebsart des KC85 erstellt.

Eine Woche vor dem KC-Clubtreffen 2007 funktionierte alles soweit in beiden Richtungen, das Senden und Empfangen im ATmega und der Z80-PIO lief beidseitig komplett per Interrupt gesteuert fehlerfrei.

Um die Funktion zum Treffen wenigstens ansatzweise zeigen zu können, erweiterte ich das CAOS-Programm noch dahingehend, dass man den WIZnet-Chip mit den gewünschten IP-Einstellungen des Netzwerkes beschreiben und initialisieren konnte - danach war es möglich den KC85 aus dem Netzwerk mit dem PING-Befehl auf die programmierte IP anzusprechen, leider reichte dann die Zeit für eine richtige Kommunikation vom KC über den AVR und WIZnet-Chip zum PC nicht mehr aber prinzipiell waren keinerlei Probleme mehr zu erwarten, da alle Teile der Übertragungskette getestet wurden - eine funktionierende TCP/IP - Kommunikation war nur noch eine Frage der entsprechenden Software.

Dieses Bild zeigt das CAOS-Programm in Aktion während der kurzen Demonstration zum KC-Clubtreffen 2007:


KC85-TCP 1


CAOS-Steuerprogramm für W3100A auf dem KC85/5