Richi´s Lab

PCI-Karte

Will man einem Computer einen individuellen 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 beherrschbaren Aufwand nutzen, um eine Einsteckkarte zu entwickeln, die sowohl die Steuerung der Zusatzausstattung übernimmt, als auch vom Computer selbst gesteuert werden kann.

 

PCI-Karte Schaltplan

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.

 

PCI-Karte Layout

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.

 

PCI-Karte Layout

PCI-Karte Layout

 

PCI-Karte Platine

PCI-Karte Platine

Die Platine fertigte wieder einmal Q-PCB.

 

PCI-Karte Platine TQFP fail

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.

 

PCI-Karte Platine

Dieses Layout erscheint eher passend.

 

PCI-Karte Platine TQFP löten

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.

 

PCI-Karte Platine TQFP 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.

 

PCI-Karte Platine TQFP löten

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.

 

PCI-Karte Platine

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

 

PCI-Karte

Und tatsächlich funktioniert die Karte sofort.

 

PCI-Karte Platine

PCI-Karte Platine

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.

 

PCI-Karte Platine

 

PCI-Karte LCD

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

 

PCI-Karte LCD Platine

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

 

PCI-Karte Hilfsstromversorgung

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.

 

PCI-Karte STK500 Programmierung

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

 

PCI-Karte LCD Drehimpulsgeber

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.

 

PCI-Karte LCD Bild Bildschirmschoner

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

 

PCI-Karte Slotblech

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

 

zurück
oder unterstützt mich über Patreon

 

Creative Commons Lizenzvertrag