|
Ich habe hier einige häufig gestellte Fragen und Antworten zusammengestellt,
und dabei versucht, die typischen "Anfängerfragen" zu beantworten. Bitte lest
das FAQ komplett durch, bevor ihr Fragen per eMail schreibt. Von Zeit zu Zeit
werde ich die Einträge updaten, wenn sich eine Information verändert hat, oder
neue Fragen auftauchen.
- 9.1.2002: Einträge aus dem Nachbau-FAQ von Christoph Hofmann
- 19.1.2002: Neue Tips zum Displayanschluss und ExtIDE.
Is there an english version of your page?
No, there isn't. I had the choice between building a mediocre english
page, that i would quickly loose interest in, or a good german one.
I choose the german one. Apart from that, the sourcecode and documentation
for the player itself are in english, so you shouldn't have too many
problems building the player.
If someone would like to volunteer to proof read english pages,
I would perhaps consider making an english version of my site.
Allgemeine Fragen
Was brauche ich, um den Player nachzubauen?
Viel Zeit. Und Erfahrung, da es sich hierbei nicht um ein Anfängerprojekt
handelt. Man sollte auf jeden Fall schon ein paar SMD-Platinen bestückt
haben, und sich mit Mikrocontroller-, bzw. DOS-Programmierung auskennen.
Außerdem sollte man C gut beherrschen, mit Pascal o.ä. kommt man i.d.R.
nicht sehr weit. (Die API ist in C geschrieben. Das sollte man also lesen
und verstehen können!). Idealerweise hat man vorher schon mal etwas mit
dem Beck IPC@Chip angestellt.
Ich beantworte zwar gerne alle Fragen, werde aber keine "Nachhilfe" in
Elektronik oder C-Programmierung geben!
Mit Elektronik kenne ich mich nicht aus..
Es gibt im Netz sehr viele Projekte, die genauso interessant, aber einfacher
nachzubauen sind. Einen guten Überblick gibt die Liste unter
http://www.mp3project.com.
Die kommerziellen Player werden auch immer besser, und vielleicht
reicht auch eine Fertig-Lösung (der Bastelspaß beim Autoeinbau ist auch
nicht schlecht :)
Was kostet ein fertiger Player in etwa?
Die Kosten hängen im wesentlichen an IPC@Chip, Platine, VS1001 Decoderchip
und dem Display. Alle anderen Teile sind fast vernachlässigbar, und finden
sich in vielen Bastelkisten. Hier nur eine kurze Abschätzung:
IPC@Chip SC12 80,00 €
HALO FS22101Y4 8,00 €
Platine 25,00 €
VS1001k 25,00 €
Display 25,00 €
sonstige Teile ca. 30,00 €
Damit kommt man auf einen Gesamtpreis von etwa 200€, je nach Bauteillieferant,
schon vorhandenen Teilen, etc. Im vergleich zu anderen Playern dieser
Leistungsklasse ist das allerdings relativ günstig.
!Ich biete keine fertigen Player an!
Gibt es eine Sammelbestellung für die Platinen?
Ja, von Zeit zu Zeit, und je nach Bedarf organisiert
Marcus Kraemer
eine Bestellung. Alle weiteren Details bitte direkt mit ihm abklären!
Welche Anschlussmöglichkeiten hat der Player?
10MBit Ethernet, zwei ATA-Ports für eine 2.5" und/oder 3.5" Festplatte, einen Kopfhörer-Ausgang,
einen Line-Out, sowie einen Feature-Connector für Erweiterungen. Die ersten 20 Pins des
Connectors stimmen mit den Anschlüssen für ein Grafik-LCD-Display überein. Außerdem besitzt
der Player einen TSOP1738 IR-Empfänger für alle gängigen Fernbedienungen.
Nach dem Anschluss des LCDs bleiben immer noch eine serielle Schnittstelle und ein paar
multifunktions-PIOs übrig. Insbesondere lassen sich dadurch PCF8574, 8bit I2C I/O
Erweiterungschips samt Interrupts anschließen, womit man dann auch Tasten und Drehencoder
an den Player bekommt.
Welche Fernbedienungen werden unterstützt?
Prinzipiell: Alle. Die Hardware ist in der lage, ein IR-Datagramm µs-genau auszumessen,
softwaremäßig werden im Moment der verbreitete RC5-Code, sowie NEC unterstützt.
Die Bauteil-Bestellung
Wo bekommt man ein 2.5" IDE-Kabel her?
http://www.kabelspezialist.de,
Unter Produkte->Computerkabel und Zubehör->Amiga Kabel->Spezialkabel Intern/Extern.
Wo finde ich eine Bestückungsliste?
Die Bestückung geht am einfachsten, wenn man sich vorher von www.cadsoft.de
die freeware-version von Eagle besorgt. Danach öffnet man das mp3v2.brd file,
und klickt jeweils mit "info" auf die Bauteile. Ich werde aber noch eine
detaillierte Liste für die Version B2 ins Netz stellen.
Welchen Quarz brauche ich? 12.288 MHz oder 24.576 MHZ?
Der Quarz ist nur für den VS1001K MP3-Decoder. Die Leistung dieses ICs (und
somit die Qualität der Dekodierung) ist von der Geschwindigkeit des Quarzes
abhängig. Wird ein Quarz kleiner als 18.432 MHz eingesetzt, wird intern die
Frequenz verdoppelt. Somit ist es also völlig egal, ob ein Quarz mit 12.288 MHz
oder 24.576 MHz eingesetzt wird. Bei dieser Frequenz ist übrigens eine
vernünftige Dekodierleistung zu erwarten (siehe auch Datenblatt des VS1001K).
Jeder andere Quarz würde es auch tun, allerdings ist dann eine Änderung in
der Playersoftware nötig. Es gibt aber bereits Fälle, wo es Probleme mit
anderen Frequenzen (z.B. 15 MHz) gab.
Muss ich unbedingt diese BLAUE LED bestellen?
Nein, jede andere Farbe tut es auch! Gegebenenfalls muss nur der Vorwiderstand
etwas nach oben korrigiert werden, da Rote und Grüne LEDs in der Regel weniger
Strom benötigen. Ausprobieren hilft hier, ich schlage 330R vor.
Ich habe hier noch einen HCT245 rumliegen. Kann ich den nehmen?
Nein, auf keinen Fall. Der 74 LS 245 ist zur Pegelwandlung der 5V
CMOS-Logikpegel auf die 3.3V des VS1001 zuständig. Der VS1001 verträgt an
seinen Eingängen maximal Vcc+1V, LS-TTL liefert bei einem High typischerweise
3.4V. HCT liefert hingegen fast die vollen 5V, und treibt den VS1001 damit
ausserhalb seiner Spezifikation. Mein Testaufbau hatte ohne 245er bzw. mit
einem HC-Typ nicht funktioniert!
[wer darüberhinaus noch an dem Thema interessiert ist, sollte sich mal
die
Philips Application Note AN240 durchlesen]
Funktionieren auch andere Ethernet-Übertrager?
Statt dem HALO FS22-101Y4 funktioniert auch z.B. ein FD22-101H. Allerdings ist er
nicht Pin-kompatibel und passt auch nicht ins Layout. Wenn man ihn dennoch anschliessen
möchte, sollte man das so tun:
HALO FS22-101Y4 Pin | = | HALO FD22-101H Pin
|
---|
1 | | 1
| 2 | | 3
| 3 | | 6
| 4 | | 8
| 7 | | 11
| 8 | | 9
| 9 | | 16
| 10 | | 14
|
Datenblatt HALO FS22-101Y4
Datenblatt HALO FD22-101H
Laut berichten aus der @chip newsgroup funktionieren auch viele andere, für 10MBit geeignete
Ethernet-Übertrager, wie man sie z.B. billig von alten Netzwerkkarten auslöten kann. Man
sollte sich dann auf jedenfall das Datenblatt besorgen, und die richtige Pinzuordnung finden.
Welche LCD-Displays kann man anschließen?
Getestet habe ich nur das Conrad 122x32 Grafik-LCD mit LED Hintergrundbeleuchtung und
SED1520 Controller. (Best. #18 73 99) Das passt sogar mit Abstandsbolzen direkt auf die
Platine.
Es sollten jedoch auch alle anderen Displays funktionieren. (Es stehen 2 Chipselects, 3
Adressleitungen, 8bit Datenbus, RD/WR, Reset, 1 Transistor-PWM Ausgang, und 4 PIOs (bzw. RS232)
zur Verfügung)
Der Aufbau
Womit soll man anfangen?
Zuallererst sollten die drei SMD-Bauteile aufgelötet werden. Für den Lattice ispLSI
empfielt sich ein SMD-PLCC Sockel, bei dem man vorher vorsichtig den Plastikteil in
der Mitte entfernt hat. Der Mittelteil sollte sich mit etwas Kraft mit dem Finger
herausbrechen lassen, und macht dann das Löten viel einfacher. Die PLCC-Pins sonst
nur recht schwer zu beherrschen, mit dem Sockel wird es allerdings genauso leicht,
wie jeder andere SMD-Chip.
Vor dem Lattice sollte man allerdings den 74LS245 montieren, da man sonst leicht den
Lattice-Sockel verkokelt. Beim auflöten des VS1001 muss man eigentlich nur darauf
achten, nicht eins der benachbarten Löcher für andere Bauteile mit zu erwischen.
Insgesamt sollte man immer etwas entlötlitze bereithalten, falls man zwei SMD-Pins
ausversehen miteinander verbindet. Der Rest der Platine ist dann ja einfach zu
bestücken.
Bauteile UNTER dem IPC@Chip?!
Aus Platzmangel mussten leider zwei Kondensatoren und ein Chip unter den @Chip rücken.
Da man aber den Chip sowieso sockeln sollte, sitzt er entsprechend höher und die Bauteile
haben unter dem Chip Platz. Den kleinen 8pin IC muss man dann natürlich direkt, ohne
Sockel einlöten.
Wie rum baut man die Leuchtdioden ein?
Die LEDs haben jeweils ein langes Beinchen (Anode, +) und ein kurzes Beinchen (Kathode, -).
Wenn man die Platine so vor sich liegen hat, daß man den Bestückungsdruck normal lesen kann,
ist die Anode von D1 rechts und die Anode von D2 und D3 jeweils links.
Ausserdem ist jeweils die Leiterbahn für die +5V ein wenig dicker, als die andere.
Wie schliesst man das LC-Display an?!
Das Display wird einfach mit einem Flachbandkabel an die LCD-Pfostenleiste
angeschlossen. Dabei werdem vom 26-Poligen Kabel nur die ersten 20 Leitungen
gebraucht, die anderen kann man entweder direkt weglassen, oder später für
Erweiterungen benutzen.
Ganz wichtig ist jedoch, dass Leitung 18 _NICHT_ an das Display angeschlossen
wird. Stattdessen müssen Pin 1 und Pin 18 am Display mit einem kurzen Stück
Draht verbunden werden. Ich glaube, das habe ich irgendwie vergessen, auf der
Webseite zu erwähnen (Ich dachte, das hätte ich im neuem Layout schon
behoben).
Es handelt sich bei Leitung 18 um die invertierte Reset-Leitung, wie
sie bei Intel-Controllern üblich ist - das Display erwartet jedoch (dämlicherweise)
einen nicht-invertierten Reset. Wer es ganz richtig machen möchte, kann deswegen
auch einen Inverter anstatt der Drahtbrücke einsetzen.
Danach sollte das Display funktionieren. Auf keinen Fall sollte man aber die
autoexec.bat vergessen, da das Display sonst zerstört werden könnte.
Inbetriebnahme
Wie programmiert man den ispLSI?
Im Sourcecode-Archiv finden sich 2 Baupläne für einen JTAG-Programmer, die jeweils am
Parallelport eines PCs angeschlossen werden können.
Der einfache Programmer funktioniert einwandfrei, und ist für die Programmierung des
Lattice-ICs auf dem Player völlig ausreichend. PIN 1 des JTAG Interfaces befindet sich
übrigens ganz rechts (der Pin zum IDE-Interface hin). Danach besorgt man sich bei Lattice
das Softwarepaket
ispVM 8.2. Davon benötigt man eigentlich nur die Software WDOWNLD.EXE aus dem
Installationsverzeichnis \ispTOOLS\ispvmsystem\ispDCD. (vorsicht: die ispTOOLS reagieren
teilweise allergisch auf " " im Pfadnamen. Wer also (wie ich) ein englishes Windows
benutzt, sollte nach Möglichkeit nicht nach "/Program Files/ispTools" installieren!)
Man sollte erstmal nicht den IPC@Chip einsetzen sondern erstmal vorsichtig probieren, ob
beim Anlegen der Spannung (5V) nicht gleich alles in die Luft fliegt ;). Zum Programmieren
des ISPs ist die Versorgungsspannung notwendig. Erst nachdem dieser Test bestanden ist,
sollte man den ISP programmieren ;).
Das geht so: In der Software auf Scan Board klicken. Jetzt sollte
der ISP gefunden und im mittleren Fenster angezeigt werden. Dort kann nun das ISP-Programm
(iopld.jed aus dem PLD Verzeichnis des Source-Archivs) ausgewählt werden und mit Run Operation
(STRG+R) auf den ISP übertragen werden. Fertig.
Welche Stromversorgung benötigt der Player?
Der Player benötigt eine (geregelte, kein billigst-Steckernetzteil!) Versorgung von 5V,
und zieht im Betrieb mit Display ca. 300mA. Bei Reichelt gibt es sehr nette, kleine
Schaltnetzteile, die sich hervorragend für den Player eignen. Bestellnummern usw. findet
man wie üblich im hardware.pdf aus dem Sourcecodearchiv.
Ich rate übrigens davon ab, den Player mit 6V (z.B. aus Batterien), oder nur mit 4.5V
zu betreiben. Die Platine hat keinen eigenen Spannungsregler (der LM317 ist nur für den
VS1001 zuständig), und kann daher durch falsche Versorgung leicht zerstört werden!
Was sollte nach dem booten passieren?!
Man sollte die LED D1 beobachten. Wenn KEIN Netzwerkkabel angeschlossen ist, passiert
folgendes: Die LED leuchtet kurz hell auf, 3 Sekunden Pause, -blink-, eine Sekunde Pause,
-blink- (und vielleicht noch ein paar "blink"s ;) ). WENN ein Netzwerkkabel angeschlossen
ist, leuchtet die LED D1 ständig und blinkt kurz bei 4 und 5 Sekunden nach Anschließen
der Spannung.
ExtIDE meldet "drive IRQ not ready"!
Wenn der extide-Treiber "EXTIDE: drive IRQ not ready" meldet, sollte man versuchen,
den Timeout-Wert hochzusetzen. Alte Platten brauchen beim Hochfahren zum Teil recht
lange, man sollte daher ein "extide /v /t 60" versuchen. Die Platte muss übrigens auf
Master eingestellt sein.
Bei eMail-Nachfragen bitte unbedingt die Ausgabe von ExtIDE im verbose-Modus
(also mit /v), und die genaue Bezeichnung der Platte mitschicken. Sonst kann ich
die Fehlerursache nur schwer finden.
Wofür sind die ganzen LEDs gut?
LED D1 blinkt beim Einschalten, zeigt den Netzwerk-Link (Dauerleuchten) und den
Netzwerkverkehr (Blinken) an. LED D2 blinkt sehr schnell (meistens sieht man nur dauerndes
leuchten), wenn Daten über das MP3-Decoder IC ausgegeben werden. LED D3 zeigt die
Festplattenaktivität an und blinkt beim Abspielen von MP3s ca. 4 mal pro Sekunde kurz auf.
[vorsicht: diese LED ist z.T. recht nervig, und ich selbst habe sie daher nicht bestückt ;]
Wie bekommt man Daten auf die Festplatte?
Am schnellsten natürlich über die IDE-Schnittstelle. Am komfortabelsten per FTP. Je nachdem
ob man plant, ständig Gigabyteweise Daten zu übertragen, sollte man vielleicht einen
HD-Wechselrahmen verwenden. Der FTP Transfer ist im Moment zwar Funktionstüchtig, aber nicht
wirklich schnell (ca. 100kb/s). Beck scheint jedoch bereits am BIOS zu arbeiten.
Die IDE-Schnittstelle auf dem Player selbst schafft jedoch bis zu 1200 kByte/s.
Software
Wie steht's mit der Software?
Man darf den Player nicht mit einem Fertig-Produkt verwechseln. Das ist ein Bastelprojekt!
Die Software wird von mir zwar ständig erweitert, im Moment besteht sie jedoch im wesentlichen
aus einer (sehr gut dokumentierten) Bibliothek für die Hardware- Komponenten. Eine einfach
Playersoftware ist aber schon fertig.
Hier brauche ich eure Hilfe! Wenn jemand eine komfortablere Software geschrieben hat, würde
ich mich über den Sourcecode freuen!
Was ist mit dem CD-ROM Support passiert?
Ich habe für die aktuelle Version meine eigenen ATA-Treiber durch die von Hale Landis
(http://www.ata-atapi.com) ersetzt. Daher funktionieren die alten ISO9660 Routinen nicht mehr.
Wenn ich Zeit habe, werde ich diese Funktionalität aber wieder einbauen. (und dann auch gleich
einen FAT32 Treiber für große Festplatten)
Ich möchte an der Software mitentwickeln!
Besorg dir den Sourcecode, und Entwickel ihn weiter. Ich freue mich über alle Bug-Reports,
neuen Code, und Verbesserungen.
Wenn ich ihn in den normalen Source-Tree aufnehmen soll, ist es am besten, wenn man sich an
den bestehenden Code-Style hält. Besonders wichtig sind auch die doxygen kompatiblen Kommentare
für die Docs.
|