Dienstag, 5. Februar 2013

SD-Karte lesen

Bild 1: SD-Karte im Slot des Hive.
In der aktuellen Ausbaustufe sollte der Hive eine SD-Karte (< 2GB; FAT16 formatiert) lesen (und schreiben) können. (Bild 1) Dies teste ich mit einer 32MB Karte, die ich unter Windows 7 entsprechend formatiert und mit Testdateien beschrieben habe. (Bild 2) 
Bild 2: Testprogramm Midi-Player im SpinTool; Formatierungs-
dialog; Information zum formatierten Datenträger.
Die Testdateien sind MIDI-Stücke, die im Archiv mit den Testprogrammen enthalten sind. Das Testprogramm selbst ist midi_player.spin mit den Unterobjekten, die das Lesen der SD-Karte, das Handhaben des Dateisystems und einen MIDI-Synthesizer implementieren.
Nach Kompilieren und Schreiben des genannten Codes in Administras RAM oder EEPROM mittels SpinTool (Bild 2) beginnt dieser, die Musikdateien auf der SD-Karte der Reihe nach wiederzugeben - Test bestanden.

Montag, 4. Februar 2013

SD-Karten-Slot

Bild 1: Zusätzliche Bauteile für den
SD-Karten-Slot.
Der Slot an sich wurde ja aus dort beschriebenen Gründen bereits eingebaut. Allerdings fehlen zur Funktionsfähigkeit noch einige Bauteile (Bild 1).
Mit diesen habe ich die Baugruppe SD-Slot vervollständigt (Schaltplan Revision 14v: Widerstände R58,59,62-65; Kondensatoren C26,27; sowie die Pins, mit denen sich ein Schreibschutzschalter realisieren ließe). (Bild 2)

Außerdem wurde noch R71 bestückt, um ihn später nicht zu vergessen (liegt quasi zwischen Administras EEPROM und dem SD-Karten-Slot).
Bild 2: Komponenten rund um den SD-Karten-Slot.

Sound!

Da nun Administra (Prozesser Nr. 2) funktionsbereit eingebaut ist, soll die Audioausgabe getestet werden. 

Also schreiben wir mit dem SpinTool soundtest1.spin (mit Unterobjekt yma_hss_v1.2-administra.spin) in Administras RAM und - 

es erklingt "Musik"...

Prozessor 2 - Administra

Bild 1: Cinch-Buchse und Widerstände für den Videoausgang.

Der Vollständigkeit halber (da ich - mangels Video-Monitor oder Fernseher -  nicht vorhabe, diese Schnittstelle in nächster Zeit zu nutzen) werden die Komponenten (vgl. Bild 1) für die Videoschnittstelle eingebaut.

Bild 2: Widerstände, Kondensatoren und 3.5 mm Klinkenbuchse
 für den Stereo - Audioausgang.









Mit den Bauteilen in Bild 2 wird die Stereo - Audioschnittstelle aufgebaut. 
Dabei sind für R21,22 und C13,14 im Schaltplan Revision 14v jeweils 2 alternative Werte angegeben. Nach Auskunft im Forum (25. Jänner 2013) ) ist mit den gegenüber Schaltplan Revision 13 zusätzlichen (optionalen) Hochpässen R74/C9 und R72/C10 der jeweils zweite der angegebenen Werte zu verwenden, ohne diese der erste.
Da ich die Hochpässe eingebaut habe, bekamen R21,22 den Wert 1kOhm und C13,14 den Wert 0.1µF.
Über die eingebauten Pins ließe sich eine zusätzliche Schaltung (etwa ein Verstärker) in die beiden Audiosignalwege einbauen. Für den Betrieb von Aktivboxen reicht es aber aus, die mittleren beiden Pins der einen Reihe mit denen der anderen Reihe zu verbinden (Bild 3).

Bild 3: Fertig aufgebaute Audio- und Videoschnittstellen.
Nach dem Einbau (Bild 5) der Sockel und einiger andere notwendiger Bauteile (Bild 4) für den zweiten Propeller - Prozessor und das zugehörige EEPROM habe ich - da inzwischen doch einiges hinzugekommen ist - die Funktion des Systems und insbesondere des ersten Prozessors (Bellatrix) in 4 einfachen Schritten nochmal überprüft:
Bild 4: Sockel für Administra und
zugehöriges EEPROM sowie Quarz,
Kondensator und Widerstand.

1. Einschalten: Power-On LED leuchtet.
2. Bellatrix wird vom Spintool identifiziert.
3. Testprogramm heartbeatLed.spin ins Bellatrix-ROM schreiben: Heartbeat - LED blinkt.
4. Reset-Taster betätigen: Heartbeat - LED geht aus und beginnt nach kurzer Zeit wieder zu blinken.
Bild 5: Sockel für Administra und EEPROM.


















So weit, so gut :-)
Jetzt werden (vorher Stromversorgung abschalten) ein Propeller- und ein EEPROM-IC in die entsprechenden Sockel gesteckt und wieder einige simple Tests ausgeführt:
1. Einschalten: Bellatrix' Heartbeat - LED blinkt immer noch.
2. DIP-Schalter umstellen für Kommunikation mit Administra: der Prozessor wird vom SpinTool identifiziert.
3. Testprogramm heartbeatLed.spin ins Administra-ROM schreiben: Heartbeat - LED blinkt (auch).
4. Reset-Taster betätigen: beide Heartbeat - LEDs gehen aus und beginnen nach kurzer Zeit wieder zu blinken.

Somit scheint der entstehende Hive zu einem funktionierenden 2-Prozessor-System gediehen zu sein!




Dienstag, 15. Januar 2013

Maus / Tastatur / Reset


Bild 1: Buchsen und Widerstände für PS/2 Maus- und
Tastaturanschluss
.
Mit wenigen weiteren Bauteilen (Bild 1) lassen sich ein Maus- und ein Tastaturanschluss herstellen. Außerdem wird ein Reset-Taster eingebaut.











Bild 2: Reset-Taster neben der Strom-
versorgungsbuchse; von oben und  vorne.
Test des Reset-Tasters: Testprogramm heartbeatLed.spin in das 
EEPROM geschrieben, woraufhin die Bellatrix-LED zu blinken beginnt; Reset-Taster (Bild 2) betätigt.
Daraufhin setzt das Blinken aus und beginnt nach einer kurzen Zeitspanne wieder (Bootvorgang aus dem EEPROM).

Bild 3: Buchsen für Maus und Tastatur und die
zusätzlich nötigen Widerstände.







Stecker für PS/2 Maus (grün) und Tastatur (violett) mitsamt den zugehörigen 8 Widerständen wurden eingebaut (Bild 3).

Die Tastatur wurde mit testKeyboard.spin (mit den untergeordneten Objekten os-1-bel-vga1024.spin und
os-1-bel-keyb-de.spin) getestet. 
Die Maus konnte noch nicht getestet werden, da die vorgeschlagenen Testprogramme keine Anzeige (vgl. auch das im vorhergehenden Post beschriebene Problem) auf dem verwendeten Monitor erzeugten - man sollte wirklich a) die Spezifikation dieses Monitors herausfinden und b) die Dinge auch mit einem anderen Monitor ausprobieren...



Bild 4: Makro-Aufnahme.

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...