|
|
|
|
|
|
Endgültiges Layout |
Man braucht erstmal eine Platine. Ich habe einige Platinen machen lassen, näheres siehe unter Bestellung. Für jeden, der sich für das Schaltbild interessiert oder die Platine selbst herstellen lassen möchte, gibt es Schaltplan und Layout im Eagle 4.03 Format. Der MiniMegaHmpeg kann einfach in den vorhandenen Sockel des AVR 8515 gesteckt werden. Dafür ist allerdings ein sog. PLCC-Adapter notwendig. Das ist leider kein Standardbauteil und daher teuer und schwer erhältlich. Das Layout der MiniMega-Platine ist so gestaltet, dass folgende PLCC-Adapter verwendet werden können (und wahrscheinlich andere auch): |
|
Achtung: Die Adapter von Cab gibt es in verschiedenen Bauhöhen (siehe Datenblatt). Die Cab Adapter sehen übrigens stabiler aus als die von Samtec. Der billigste dieser Adapter ist einer aus der Serie 532 von Cab. Diese Serie hat normale Pins, wird aber im Datenblatt auch als SMD-tauglich beschrieben. Ich schlage vor, wir machen eine Sammelbestellung dieses Steckers. Die Preisliste von Cab sieht folgende Mengenrabatte vor: 1 - 4 netto Bei 25 Stück würde die Nummer 3306832 also noch DM 15,68 kosten. Bei Interesse siehe Bestellung. Der Stecker 3306832 ist der niedrigste dieser Serie. Er reicht aus, damit der MiniMegaAdapter über alle Bauteile des HMpegs passt. Sonstige benötigte Bauteile: |
|
1) Leuchtet beim Flashen des AVRs, zumindest mit dem STK200 Programmiergerät.
Ich habe die Festplattensoftware HD 0.991 an den MiniMegaHmpeg angepasst (= HD 0.991m). Die Änderungen halten sich in Grenzen, da sich die zwei Microcontroller sehr ähnlich sind. Unterschiede bestehen eigentlich nur in unterschiedlicher Pinbelegung, der niedrigeren Frequenz des Megas (maximal 6 MHz im Gegensatz zu 8 MHz beim 8515) und geringe Unterschiede bei einigen Konfigurationsregistern. Die portierte HD Version hat zunächst keine zusätzlichen Funktionen und ist somit als Ausgangsbasis für eigene Erweiterungen gedacht. Download HD 0.991m2 (135k) Zum Kompilieren kann die “alte” AVR-GCC Version 2.95 verwendet werden (die findet ihr im Downloadbereich auf der HMpeg Seite) oder die aktuelle GCC Version 3.0. GCC 2.95 Vor dem erfolgreichen Kompilieren mit GCC 2.95 muss man allerdings einen Fehler in der Datei make2 korrigieren, die steht im Kompilerverzeichnis unter /include: Folgendes steht da (ungefähr in der Mitte): LIB += $(LIBDIR)/crt1$(MCU).o $(LIBDIR)/crtn.o Und folgendes sollte da stehen: ifeq ($(AVRMEGA),1) Außerdem muss man in der Datei progmen.h (ebenfalls unter /include) noch folgendes ändern: #define PRG_RDB(addr) __elpm_macro(addr) ändern in: #define PRG_RDB(addr) __elpm_macro((unsigned long) addr) oder besser (effizienterer Code) in: #define PRG_RDB(addr) __lpm_macro((unsigned short) addr) Das steht ziemlich unten nach #if (FLASHEND > 0xFFFFUL) /* >64K program memory (ATmega103) */
GCC 3.0 Zum Kompilieren mit GCC 3.0 müssen nur die Dateien make1 und make2 aus dem GCCTEST Paket ins Compilerverzeichnis unter /include kopiert werden.
Danach sollte sich die HD 0.991m genauso kopilieren lassen wie die normale HD 0.991. Da alle Änderungen mit #if geklammert sind, kann man auch die HD 0.991m für den normalen HMpeg kompilieren, dazu in my_defs.h #define MINIMEGAHMPEG FALSE eintragen und im makefile MCU = -mega103 gegen MCU = -8515 ersetzen.
Da der AVR Mega103 nur bis 6 MHz spezifiziert ist (8 MHz beim 8515), stellt sich natürlich die Frage, ob das für den HMpeg ausreicht. Dazu habe ich mal einen kleinen Vergleichstest gemacht. Getestet wurden der normale HMpeg mit dem 8515 bei 8 MHz gegen den MiniMegaHmpeg mit dem auf 6 MHz laufenden Mega103. Die Festplatte war eine IBM DTLA-307030. Getestet wurden bei jeder Bitrate zwei verschiedene Songs. Die Lieder wurden mit Lame kodiert. Die VBR-Songs waren mit 192-320 kbps kodiert und erreichten eine mittlere Bitrate von ca. 220 kbps. Die Festplatte wurde vorher mit Windows 98 SE defragmentiert. |
|
Aha. Wie man sieht, konnte ich keine Unterschiede zwischen den zwei Versionen feststellen, sie verhielten sich genau gleich. Leider nicht gleich gut, sondern eher gleich schlecht. Bei 128 kbps funktionierte alles perfekt, auch ein Druck auf die Fernbedienung brachte den Player nicht aus dem Tritt. Aber bei allem was darüber hinaus geht, musste ich mit einem kurzen Aussetzer rechnen, wenn ich die Fernbedienung betätigte. Bei 256 kbps war´s am schlechtesten, total unbrauchbar, auch ohne Fernbedienung. Seltsamerweise funktionierte dann 320 kbps wieder viel besser, aber leider auch nicht perfekt. Ich vermute mal, dass es je nach Festplatte `kritische´ Bitraten gibt, bei denen vielleicht das Caching der Platte nicht mit dem Timing des HMpeg harmoniert oder umgekehrt oder sowas in der Art... Einen Einfluss der niedrigeren Taktfrequenz konnte ich jedenfalls mit diesem Test nicht feststellen. Wer will, kann auch versuchen, den Mega ebenfalls mit 8 MHz zu betreiben. Ein kurzer Test mit dem Protoyp ist positiv verlaufen. Allerdings läuft der Mega damit ganz klar außerhalb der Spezifikation, somit sind Hardwareschäden nicht auszuschließen und es ist auch fraglich, ob der Mega auf Dauer zuverlässig bei erhöhter Taktfrequenz läuft (es hat sicher einen Grund, dass nur 6 MHz auf dem Chip stehen). Wer also übertaktet, tut das auf eigenes Risiko und darf sich nicht beschweren, wenn irgendwas nicht funktioniert, schon gar nicht bei mir.
|
|
|
|