Freitag, 23. November 2012

VGA - Interface


Bild 1: VGA - Buchse und die benötigten Widerstände.
Mit wenigen zusätzlichen Bauteilen kann ein Propeller-Prozessor ein VGA-Bild erzeugen und auf einem Monitor ausgeben. Die "schnelle" Hardware, die im Pixel-Takt die benötigten Signale erzeugt, ist im Prozessor integriert, der Rest läßt sich in Software realisieren.
Einzig das mechanische Interface (VGA-Buchse aus einer alten Grafikkarte) und einige Widerstände (Bild 1) werden benötigt, um ein VGA-Kabel mehr oder weniger direkt an die Pins des Prozessors anschließen zu können.
Bild 2: Widerstände und VGA-Buchse eingebaut.


Ob nach dem in Bild 2 dargestellten Einbau alles funktioniert, läßt sich mit einem Testprogramm (Bild 3) überprüfen.
Nach dem upload via Spintool ergibt sich auf einem angeschlossenen VGA-Monitor die in Bild 4 dargestellte Ausgabe.
Bild 4: Ausgabe von "VGA Tile Driver Demo".
Es gibt noch zwei weitere Testprogramme, "BEL_VGA_Demo" und "VGA_640x240_Bitmap" welche aber den Monitor nur zu ständigem Klicken (der Relais) bringen. Vermutlich passen die erzeugten Frequenzen nicht zu den Spezifikationen des Monitors. Leider weist dieser keinerlei verwertbare Beschriftung auf.
Eine Analyse der Quelltexte würde Klarheit über die Parameter der erzeugten Signal bringen; mit eine Monitor von bekannter (und passender) Spezifikation wäre dann die Funktion dieser beiden Testprogramme zu verifizieren.
Bild 3: "VGA Tile Driver Demo" im Spintool.


Donnerstag, 22. November 2012

EEPROM und SD-Karten-Slot

Bild 1: EEPROM (links oben) und SD-Karten-Slot (rechts unten)
hinzugefügt. Letztere wird noch ein Zeit lang funktionslos bleiben,
aus Gründen der Lötbarkeit wird aber empfohlen, dieses Bauteil
nicht zu spät zu platzieren.
Nachdem nun die Kommunikation mit dem Prozessor funktioniert, wird mithilfe des Spintools ein erstes Programm ins RAM des Prozessors übertragen: siehe da, die "heart beat" LED des Prozessors blinkt. :-)
Sobald das EEPROM im entsprechenden Sockel steckt (Bild 1), ist es auch möglich, das Programm anstatt in den flüchtigen Speicher des Prozessors in das EEPROM zu übertragen. Von dort holt es sich der Prozessor, wenn er beim Booten keinen Kommunikationsversuch erkennt. 
Auch das funktioniert: nach Aus- und wieder Einschalten beginnt nach kurzer Zeit die "heart beat" LED zu blinken...

Montag, 12. November 2012

Der erste Prozessor

Bild 1: Parallax Propeller und
ein 5 MHz Quarz.
Nur zwei Bauteile fehlen noch, um den ersten Meilenstein zu erreichen: die Kommunikation mit einem eingebauten Prozessor. 
Da der Einbau des Quarzes die Schaltung doch grundlegend ändert (es gibt dann ein 5 MHz Taktsignal, während bislang die einzigen auftretenden Signal von der seriellen Schnittstelle kamen) habe ich nach dem Einbau des Quarzes (Bild 2) nochmal den früher beschriebenen Kommunkationstest (erfolgreich) durchgeführt. 



Bild 2: Propeller und Quarz auf der Platine. Letzterer vorsorglich
so eingebaut (vgl. Ausschnitt), daß sein Metallgehäuse nicht auf
der Platine aufliegen und einen Kurzschluß verursachen kann.


Bild 3: SpinTool
Nun wird der Propeller-Chip in den Sockel eingebaut (Bild 2). Sind dann Stromversorgung und serielle Verbindung hergestellt, kann mittels SpinTool (Bild 3) die Funktion der Schaltung über das Verhalten des Prozessors getestet werden. 
Bild 4: SpinTool empfing erwartete
Antwort vom Prozessor.







Mit den nach der Installation vorhandenen Standardeinstellungen läßt ein Druck auf F7 oder die Auswahl von Run/IdentifyHardware das SpinTool auf allen vorhandenen COM - Ports nach einem angeschlossenen Propeller suchen. Dies konnte erfolgreich (Bild 4) durchgeführt werden.

Montag, 10. September 2012

Kommunikationstest

Bild 1: Für den Einbau des ersten
Prozessors und EEPROMs noch
fehlende Bauteile.
Nachdem das Programmierkabel funktioniert, soll nun die ganze Kommunikationsstrecke vom PC bis zu den  Pins des ersten Prozessors ("Bellatrix") überprüft werden. Dazu werden die entsprechenden Bauteile (Bild 1) bis auf den Schwingquarz eingebaut. Dieser ist für den geplanten Test nicht nötig, und je einfacher die Schaltung, desto aussagekräftiger ist ein eventuelles Fehlschlagen des Tests.
Bild 2: EEPROM-Sockel (links); Prozessor-Sockel "mit" fehlendem
Quarz (orange Ellipse) rechts davon. MAX232-IC steckt im
entsprechenden Sockel und die DIP-Schalter 2 und 5 (orange
Kreise) leiten TxD und RxD vom PC an den einzigen
vorhandenen Prozessorsockel weiter.






Das Anliegen von 3.3V Betriebsspannung sowohl zwischen den EEPROM - Pins 4 und 8 (Bild 2, orange Punkte auf dem 8-poligen Sockel) als auch zwischen den Prozessor - Pins 12 und 29 (Bild 2, orange Punkte auf dem 40-poligen  Sockel ) wird verifiziert.

Der abschließende Test betrifft die Kommunikation: da der Propeller-Prozessor beim Bootvorgang versucht, eine serielle Kommunikation über Pins 39 und 40 aufzubauen, sollten wir verifizieren, daß die beiden Pins auch tatsächlich die Endpunkte der vom PC kommenden Kommunikationsleitungen darstellen. Verbindet man diese beiden mit einer Drahtbrücke (Bild 2, oranger Kreis auf dem 40-poligen Sockel), so sollte ein vom PC aus sendendes Terminal-Programm alle Zeichen postwendend wieder zurückbekommen. 
Bild 3: Putty und die erste Botschaft: doppelte Buchstaben
im Terminalfenster zeigen die Funktion des Hive-Boards. Der
jeweils erste Buchstabe ist das lokale Echo der gedrückten Taste,
der zweite stellt das zurückgesendet Zeichen dar.



Folglich verbinden wir für eine dahingehende Überprüfung das Hive-Board über das Programmierkabel mit dem PC und starten Putty. Offenbar sendet das Hive-Board Zeichen zurück (Bild 3), woraus sich die Schlußfolgerungen eines korrekten Aufbaus sowie richtiger Verdrahtung des Programmierkabels ziehen lassen.


Letzere ermutigt uns dann auch, den Mini-DIN - Stecker zusammenzubauen (Bild 4) und mit dem zusammengebauten Stecker den Kommunikationstest nochmal durchzuführen.
Bild 4: Ein Stück Isolierband stellt sicher, daß oberes und unteres
Kabelpaar beim Zusammenbau nicht "aneinandergeraten" (links),
und ein paar  Minuten elenden Gefummels später ist der Stecker komplett (rechts).


Freitag, 31. August 2012

Programmierkabel


Hier ergab sich folgende Zuordnung:
2-braun, 3-rot,4-orange und 5-gelb.
Die serielle Schnittstelle des Hive ist als 4-polige Mini-DIN Buchse realisiert. Von den 9 Leitungen eines COM-Ports des PCs  werden die Nummern 2 (RxD), 3 (TxD), 4 (DTR) und 5 (GND) verwendet. Da ich als Grundlage für mein Programmierkabel ein vorhandenes RS232-Kabel (Stecker abschneiden) verwendete, war zuerst die Zuordung der Adern des Kabels zu den Kontakten der Buchse festzustellen. Dies gelingt leicht mit eine Durchgangsprüfer oder Multimeter (Widerstand messen).

Der Mini-DIN Stecker besteht aus erstaunlich vielen Teilen...
Der nächste Schritt ist die Verbindung der entsprechenden Adern (braun - RxD, rot - TxD, orange - DTR und gelb - GND) mit einem Mini-DIN Stecker. Aus dem Schaltplan war nicht ersichtlich, ob die Nummerierung der Pins sich auf die Ansicht von der Lötseite oder von der Buchsenseite bezieht. Da der Stecker keine eingeprägten Nummern aufwies, habe ich auf "Ansicht von der Lötseite" getippt und damit die Adern des RS232-Kabels wie in folgendem Bild zu sehen mit den Pins des Steckers verbunden (vor dem Anlöten den Knickschutz über das Kabel schieben, den bekommt man nämlich sonst nicht mehr drauf).
Eingesteckter Stecker mit angelöteten Adern des RS232-Kabels.
Solange der Stecker nicht zusammengebaut ist, empfiehlt sich
eine alternative Zugentlastung für die Drähtchen: Kabel ist mit
Klebestreifen (rechts) auf der Platine fixiert.

Nun ist ein erster Test des Kabels möglich. Dazu muss das MAX232-IC aus der Fassung genommen werden und ein Drahtbrücke zwischen Pin7 (TxD) und Pin13 (RxD) angebracht werden. Ist die Verkabelung korrekt, dann bekommt ein Terminalprogramm (z.B. Putty) jedes gesendete Zeichen unmittelbar wieder zurück, d.h. in dessen Konsole erscheinen alle getippten Buchstaben auch ohne 'lokales Echo' (mit selbigem würde man jeden Buchstaben doppelt sehen). Bemerkung: dieser Test funktioniert auch ohne Stromversorgung der Hive-Platine, ist also  ein reiner Leitungstest. Einschränkung: der Test kann keine Auskunft darüber geben, ob TxD und RxD (also rot und braun, mithin auch gelb und orange) vertauscht sind (was der Fall wäre, wenn mein Tipp "Ansicht von der Lötseite" falsch ist).

Die Programmier- und Boot-Schnittstelle

Der nächste Schritt besteht im Aufbau der seriellen Schnittstelle des Hive: diese erlaubt es, (vgl. Propeller Manual 1.2, Abschnitt "Boot Up Procedure") über eine serielle Schnittstelle eines PC ein Programm zur Ausführung in das Propeller-RAM zu laden, oder in ein mit dem Propeller verbundenes EEPROM (für zukünftige Boot-Vorgänge) zu programmieren.
Bauteile für die serielle Schnittstelle.

Aus wenigen Bauteilen wird die serielle Schnittstelle nach Schaltplan aufgebaut. Die DIP-Schalter habe ich gesockelt, um sie evt. später an passender Stelle eines Gehäuses platzieren zu können.
Der Test der Schaltung erfolgt vorerst nur bezüglich der Versorgungsspannung: 5V liegen zwischen den
Schnittstelle aufgebaut. Die DIB-Schalter erlauben die
Auswahl des zu programmierenden der drei Prozessoren.
Pins 15 (GND) und 16 (5V) des Sockels für das MAX232 - IC.


Mittwoch, 15. August 2012

Stromversorgung

Platine für Hive Version R14v
Die Platine ist im Hive Shop verfügbar.
Bauteile für die Stromversorgung.


Aus wenigen Bauteilen habe ich die Strom-versorgung auf der noch leeren Platine aufgebaut. Die Mehrzahl der Bauteile habe ich bei Reichelt bestellt, einige andere (da gerade nicht verfügbar) bei RS-Components. Wichtig für den Test der Stromversorgung (Spannungsmessung) ist die LED, da die Spannungsregler ohne Laststrom nicht regeln können.
Meßpunkte
Stromversorgung mit LED (unten).
Eine genaue Beschreibung ist verfügbar.
Nach Anschließen einer Gleichspannung von 7.5 V konnte ich die Funktion der Stromversorgung durch Messung von 3.3 V bzw. 5 V zwischen den markierten Punkten verifizieren.

Mittwoch, 8. August 2012

Was ist ein Hive?

Ich bin auf diese website gestossen und war sofort fasziniert - es ist möglich, sich einen durchaus nicht simplen Computer selbst zu bauen.
Auf einer Grundfläche von 16 cm x 10 cm läßt sich mit aktueller Technologie (Multicore RISC Architektur, SD-Kartenleser, LAN, ...) und trotzdem verständlich bis zum letzten Bit und Bauteil ein Maschinchen ("Hive"; wegen der 24 Prozessorkerne, nehme ich an) integrieren, das eine Menge Spaß verspricht beim Experimentieren sowohl mit soft- als auch mit hardware.
Ein paar Euro später sind die Bauteile eingetroffen und der Aufbau kann beginnen...