|
|
MiniLA
[Bearbeiten] EinleitungDiese Seite soll eine Art Informationssammlung zum Open-Source-Logic-Analyzer "miniLA" werden um potentielle "Nachbauer" zu unterstützen. Die zugehörigen Threads im Forum sind inzwischen sehr umfangreich und dadurch leider auch etwas unübersichtlich geworden. Die Features das Gerätes sind auf der Projekt-Homepage zu finden. Es gab hier im Forum bereits drei Sammelbestellungen zur Platine und den nötigen Bauteilen. Die erste fand Anfang 2008, die zweite im Herbst 2008 und die dritte im Frühling 2009 statt. Details zu den Bestellungen und teils auch zur Hardware finden sich in diesem Thread. [Bearbeiten] Hardware[Bearbeiten] AllgemeinBei den Sammelbestellungen wurde jeweils die Version von Bob Grieb bestellt, bei der der USB-Anschluss direkt integriert ist. Wird dieser nicht benötigt, so werden die entsprechenden Teile einfach nicht bestückt. Es wurden einige kleine Veränderungen und Korrekturen am Layout durchgeführt, die Funktion blieb jedoch gleich. Die Daten zu dieser überarbeiteten Version sind hier zu finden. Details zu den Änderungen können in der enthaltenen "README2_v1.txt" nachgelesen werden. Der Schaltplan wurde mit TinyCAD und das Layout mit FreePCB erstellt. [Bearbeiten] Bauteile[Bearbeiten] MainboardLeider ist es nicht ganz einfach an einige der Bauteile zu kommen. Besonders passende SRAMs sind relativ schwer zu bekommen. Bei den ersten beiden Sammelbestellungen wurden die Bauteile aus folgenden Quellen bezogen:
Die beiden Reichelt-Warenkörbe sind unter Umständen nicht mehr ganz aktuell und sollten deswegen unbedingt mit der Stückliste abgeglichen werden. Bitte ggf. hier auf Fehler bei den Warenkörben hinweisen oder Michael K. diesbezüglich benachrichtigen! Bei der Bauteil-Auswahl gibt es nicht sehr viel zu beachten, lediglich CPLD, SRAM und der Multiplexer sind etwas kritischer. Beim CPLD muss es sich um einen Typ mit Speed-Grade 6 handeln (XC95288XL-6..., TQFP144), zur Auswahl von SRAM und HC4053 gibt es ein paar Anmerkungen in der "mlaUSBbom_v1.txt" und in der "README2_v1.txt". Bzgl. SRAM wurde seinerzeit nach passenden Alternativen zum ursprünglich verwendeten Alliance AS7C33128PFS32A gesucht und die Ergebnisse in eine Excel-Liste eingetragen. Auf Vollständigkeit, Richtigkeit und Aktualität kann es jedoch leider keine Garantie geben. Folgende SRAMs wurden bereits erfolgreich eingesetzt:
Die wichtigen Kriterien beim SRAM sind:
Falls ein SRAM verwendet wird, das größer ist als 128k, müssen evtl. ein paar Brücken eingelötet werden. Dies hängt von der Pinbelegung des SRAMs ab - meistens müssen nur Adressleitungen beschaltet werden, die sonst in der Luft hängen würden. Beim K7B803625B-PI65 aus den Sammelbestellungen wäre das bei Pin 43 (= A17) der Fall. Im nebenstehenden Bild ist Pin 43 mit GND verbunden. Es wäre aber ebenfalls möglich den Pin mit einem anderen Adresspin zu verbinden (z. B. Pin 44) oder mit Vcc, je nachdem was am einfachsten ist. [Bearbeiten] TastköpfeAls Schutz für den CPLD wurde eine Art Tastkopf entwickelt, der zwischen das zu messende Signal und den miniLA geschaltet wird. Dieser Tastkopf ist sehr einfach gehalten und besteht aus nur wenigen Bauteilen. Ein Tastkopf dient für 8 Kanäle, d.h. für alle 32 Kanäle werden 4 Stück benötigt. Die Schaltung wurde mittels TinyCAD und FreePCB entwickelt und die Daten dazu finden sich hier. Hinweise:
[Bearbeiten] TriggerDie obigen Platinen passen leider nur für die 32 Kanäle (K2-K5), nicht jedoch für die Trigger-Ein- und Clock-Ausgänge. Deswegen wurde im Zuge der dritten Sammelbestellung zusätzlich zu den Tastköpfen noch eine Triggerplatine entwickelt. Um Verwechslungen mit den Tastköpfen zu vermeiden ist auf dieser Platine eine 10polige Kontaktierung vorgesehen, die mit K1 des miniLA verbunden wird. Pin 7 (X8) davon ist im Moment noch nicht belegt und kann für eventuelle spätere Erweiterungen verwendet werden. Die beiden Jumper auf der Unterseite sind vorgesehen um die Richtung (Ein-/Ausgang) entsprechend wählen zu können. Schaltplan, Stückliste und Bestückpläne sind hier zu finden. Hinweise:
[Bearbeiten] SonstigesZum Betreiben des miniLA wird zusätzlich zu den, in der Stückliste aufgeführten Bauteilen
benötigt. [Bearbeiten] Firmware / SoftwareAls Firmware und Software kommen die Original-Versionen der Projekt-Seite zum Einsatz. Desweiteren gibt es bzgl. der PC-Software einen Beitrag in der Codesammlung. MiniLA Windows EXE Vers 0.6.4 für 256k- und 512k-Sample Speicher gibt es hier. [Bearbeiten] CPLD-ProgrammierungFür die Programmierung des CPLDs gibt es zwei Möglichkeiten: [Bearbeiten] via LPTDazu wird ein Xilinx-JTAG-Programmer benötigt, welcher sehr einfach nachgebaut werden kann. Die Original-Version von Xilinx, auf die von der miniLA-Seite aus verwiesen wird, ist allerdings nur eingeschränkt zu empfehlen, da einige Nutzer Probleme damit haben/hatten. Martiniman's Version sollte besser und zuverlässiger sein. Schaltplan und Layout seiner Version für Eagle können hier heruntergeladen werden. Eine Programmieranleitung findet sich auf der miniLA-Projektseite. [Bearbeiten] via USBDank Uwe Bonnes und seinem Programm "xc3sprog" kann der CPLD mittels FT2232 programmiert werden. Da bei der miniLA-Version von Bob Grieb bereits ein FT2232 auf dem Board bestückt ist, wird keine weitere Hardware (außer ein paar Litzen) benötigt. Vorgehensweise:
Die obige Anweisung gilt für Windows unter Benutzung des FT2232 auf dem miniLA-Mainboard. Es gibt aber ebenfalls eine Linux-Version von xc3sprog und es kann auch eine andere Platine mit FT2232 genutzt werden. Zwecks einfacherer Handhabung gibt es ein kleines Batch-Script zum Programmieren. Zusätzlich zu den enthaltenen Dateien, muss der Inhalt des Ordners "build-win32" und die *.jed-Files in das Verzeichnis kopiert und entsprechend benannt werden ("miniLA_state2.2.jed", "miniLA_time1.7_20mhz.jed", "miniLA_time1.7_40mhz.jed", "miniLA_time1.7_80mhz.jed" und "miniLA_time1.7_100mhz.jed"). Anschließend "programme_miniLA.bat" aufrufen und den Anweisungen folgen. [Bearbeiten] Siehe auchNachfolgend eine Zusammenfassung relevanter bzw. interessanter Links und Daten:
Artikel und Diskussionen auf www.mikrocontroller.net: |