Richi´s Lab

 

PCI-Karte

Will man einem Computer einen persönlichen Touch geben, so gibt es technologisch interessantere Wege als nur den Verbau von Lüftern und Leuchtdioden. Die PCI-Schnittstelle lässt sich ähnlich wie die ISA-Schnittstelle noch mit einem beherrschbarem Aufwand nutzen, um eine Einsteckkarte zu entwickeln, die sowohl die Steuerung der Zusatzausstattung übernimmt, als auch vom Computer selbst gesteuert werden kann.

 

Die Grundlage dieser PCI-Karte bildet ein PCI-RS232-Wandler von Oxford Semiconductors. Der OX16PCI952 stellt zwei RS232-Schnittstellen zur Verfügung, über die sich ein Mikrocontroller kontrollieren lässt. Nach einem oberflächlichen Studium der 344-seitigen PCI-Bus-Spezifikation und des OX16PCI952-Datenblattes ist es nicht allzu schwierig den Schaltplan einer PCI-Karte zu entwerfen.

Die Schaltung enthält die Ansteuerung für viele Leuchtdioden, ein LCD mit RGB-Hintergrundbeleuchtung und einige Lüfter. Eingelesen wird ein Drehimpulsgeber, eine IR-Fernbedienung, Temperaturfühler und natürlich eine der seriellen Schnittstellen. Grundlage dafür ist ein Atmega256. Die zweite serielle Schnittstelle des OX16PCI952 ist über einen Pegelwandler nach außen geführt.

 

Bei dieser Platine ist es verständlicherweise sehr wichtig, dass die Abmessungen genau stimmen. Praktischerweise existiert in Eagle eine Library mit einer PCI-Karte. Zu ergänzen ist dort noch die türkise Fräskontur. Die nicht benötigten Steckkontakte wurden entfernt.

 

 

Die Platine fertigte wieder einmal Q-PCB.

 

Bei der Erstellung der Eagle-Library für den OX16PCI952 hat sich ein ärgerlicher Fehler eingeschlichen. Der Chip ist in einem TQFP-128-Package untergebracht. Der Footprint ist allerdings auf das größere QFP-128-Package ausgelegt. Eine provisorische Verkabelung ist hier natürlich nicht mehr möglich. Der einzige Ausweg ist die Konstruktion einer neuen Platine.

 

Dieses Layout erscheint eher passend.

 

Das händische Löten eines TQFP-128-Packages ist eine Herausforderung. Die Pins sind nur 0,15mm breit. Der Abstand zwischen zwei Pins beträgt 0,25mm.

Am Besten geht man folgendermaßen vor: Zuerst richtet man den Chip aus und fixiert ihn in zwei Ecken. Danach lötet man mit viel zusätzlichen Flussmittel, großzügigen Loteinsatz und einer relativ großen Lötkolbenspitze Seite für Seite. Das sorgt dafür, dass alle Pins und Pads benetzt sind. Hier sieht das Ergebnis nicht besonders sauber aus, es handelt sich aber auch um den ersten Versuch ein solches Package zu löten.

 

Mit einer Entlötsauglitzen und erneut großzügigem Einsatz von Flussmittel entfernt man dann das überflüssige Lötzinn. Das Ergebnis spricht für sich.

 

Im Vergleich zum OX16PCI952 ist das TQFP-100-Package des Atmel256 regelrecht einfach zu löten. Die Pins sind hier 0,3mm breit und haben einen Abstand von 0,35mm.

 

Der erste Test erfolgt nur mit der notwendigsten Bestückung in einem älteren Computer.

 

Und tatsächlich funktioniert die Karte sofort.

 

Für den OX16PCI952 ist ein Sockel vorgehalten, in den ein EEPROM eingesteckt werden kann. Der PIC-RS232-Wandler besitzt Grundeinstellungen, die für die meisten Anwendungen eine gute Basis darstellen. Spezielle Konfigurationen können in dem EEPROM abgelegt werden, von wo sie der OX16PCI952 beim Hochfahren einliest.

Stiftleisten ermöglichen später das Kontaktieren des externen Equipments.

 

 

Als LCD wurde ein EA DOGM128W ausgewählt. Die Hintergrundbeleuchtung kann beliebig gewählt werden, hier handelt es sich um ein RGB-Modul.

 

Die LCD-Platine diente hauptsächlich der mechanischen Fixierung. Es werden nur einige Kondensatoren für die Ladungspumpe benötigt.

 

Um mit der Platine auch außerhalb eines Computers arbeiten zu können, war ein kleines 12V/5V/3,3V-Netzteil notwendig. Auf der Platine ist eine Stiftleiste für die Fremdversorgung während der Entwicklung vorgehalten.

 

Zur Programmierung und für Tests konnte die erste, fehlerhafte Platine genutzt werden.

 

Nach der Initialisierung des LCDs, war als erstes der Drehimpulsgeber in Betrieb zu nehmen.
Hier zeigt das Display die vom Controller gezählten Impulse an.

 

Der nächste Schritt war die Anzeige von Grafiken. Dazu wandelt man ein JPG-Bild zum Beispiel mit Photoshop in ein Schwarz-Weiß-Bild um. Danach reduziert man die Auflösung, speicherte es als Bitmap ab und wandelte es in eine Reihe von Hex-Zahlen um. Für die Umwandlung in Hex-Zahlen existiert Freeware. Danach müssen nur noch diese Zahlen in den richtigen Zeilen des Displays ablegt werden.

Darauf folgt die Integration eines Bildschirmschoners. Im Hintergrund läuft eine Temperaturmessung, die sichtbar wird sobald man den Drehimpulsgeber betätigt: Video

 

Das Fräsen des Slotblechausschnitts ist ohne professionellem Werkzeug eine langwierige Arbeit.

 

zurück