So, wie ich bereits mal angekündigt habe anbei eine Anleitung für die Shields mit dem OGBA. (Wird noch ausgebaut)
Vorbereitungen GBA (optional)
1. Anpassung: Powerschalter überbrücken, damit der GBA immer im eingeschalteten Zustand ist:
Der Einfachheit halber habe ich den Schalter komplett abgelötet.
2. Anpassung: Die drei Pins des Lautstärkereglers überbrücken, damit der GBA immer auf voller Lautstärke ist:
Der Quarz muss abgelötet werden, da das Spartan Edge Board diese Funktion übernimmt:
Hookup Board aufbringen und Testpunkte löten:
Vorbereitungen GBA SP
Beim GBA muss ebenfalls der Quarz runter. Dieser befindet sich neben der CPU - dies geht am besten mit einem Heißluftfön:
Wenn das Case von @jotheripper verwendet werden soll müssen die L + R-Buttons herausgelötet werden.
Dies geht gut mit Entlötlitze und Flux:
Anschließend kleben wir das Hookup Board auf das Mainboard und beginnen die TP-Punkte zu verlöten:
So könnte es dann aussehen:
Anmerkung:
Für diejenigen, die noch ein Board mit der Versionsnummer v20210406 haben (das sollten alle meiner Bestellten Boards sein):
Ihr habt auf eurem Hookup Board das Pad "BAT+" nicht - dies ist bei euch noch als EX1 gelabelt - das Pad erfüllt aber die gleiche Funktion.
Zusätzlich müsst ihr auf dem Shield noch ein Kabel von J1 an den Widerstand R3 verlöten:
Der Powerschalter des GBA SP bleibt auf "Aus" - dieser könnte ebenfalls, wie beim SP auf "aus" gebrückt werden - ich habe ihn jetzt mal dran gelassen und lasse ihn in der "Aus" Stellung.
Programmierung Spartan Edge-Board
Wir müssen auf den ESP32 auf dem Spartan Edge-Board das 01LoadDefaultBitstream Sketch rauf bekommen, damit die dafault.bit von der der SD Karte geladen wird.
Schritt 1:
Wir nehmen uns eine SD Karte, Formatieren sie als FAT32 und legen im root-Verzeichnis einen Ordner "overlay" an und legen die default.bin aus @zwenergys Github (gbaHD/bitstream/) in dem Verzeichnis ab. Die SD-Karte kann dann in den SD-Karten Slot eingelegt werden.
Schritt 2:
Wir stellen jetzt sicher, dass der Power-Schalter am Spartan Edge auf "Off" steht und der JTAG-Schalter "Slave" auf "ON" steht
Danach schließen wir den Spartan Edge per USB an den PC an.
Schritt 3:
Wir laden uns die aktuelle "01LoadDefaultBitstream" herunter - diese wird von @zwenergy in seinem GitHub angeboten:
github.com/zwenergy/spartan-edge-esp32-boot/
In der .zip-File finden wir dann den Ordner mit der "01LoadDefaultBitstream.ino"
Diese öffnen wir jetzt mit Arduino IDE.
In den Eigenschaften von Arduino IDE müssen wir zusätzliche Boards hinzufügen, da das ESP32 per Default nicht hinterlegt ist.
Hierzu nehmen wir uns die URL aus dem SeeedStudio-Wiki... dl.espressif.com/dl/package_esp32_index.json
... und fügen sie im Arduino IDE unter dem Menüpunkt "Datei" -> "Voreinstellungen" -> "Zusätzliche Boardverwalter-URLs" ein.
Wir gehen unter "Werkzeuge" -> "Board:" dann in den "Boardverwalter" und suchen esp32 und installieren die library:
Anschließend wählen wir die korrekten Board-Einstellungen für den ESP32:
Und öffnen über "Serieller Monitor / Serial Monitor " eben diesen und stellen unten rechts die Baud-Rate mit 115200 ein.
Nun können wir den Sketch über den Menünpunkt "Sketch" -> "Überprüfen/Kompilieren" kompilieren und später über "Sketch" -> "Hochladen" auf den ESP laden.
Beim Upload ist wichtig, dass NACH dem Kompilieren und VOR dem Uploaden auf den ESP einmal die "BOOT"-Taste gedrückt wird, damit der ESP in den Bootloaderloader-Modus wechselt (ggf. kann es auch sein, dass man währen ddes ganzen Uploads die "BOOT"-Taste gedrückt halten muss).
Der Upload sollte dann im Output angezeigt werden und nach erfolgreichem Upload sollte im Serial Monitor "run" mehrfach untereinander stehen:
Ab jetzt kann das Spartan Edge-Board genutzt werden.
Firmware Updates werden ab jetzt immer über die default.bit-Datei auf der SD-Karte eingespielt.
Der Slave-Schalter kann nun wieder in die "OFF"-Position.
Vorbereitungen Spartan Edge-Board
Am Spartan-Edge Board müssen die Stiftleisten angelötet werden. Es werden benötigt: 2x 10 Pin, 2x 8 Pin 1x 6 Pin
Für die Stromversorgung des Shields muss ein Jumper auf der Unterseite des Shields gelötet werden:
Ebenfalls für die Stromversorgung muss der Powerjumper auf "On" gestellt sein:
Vorbereitungen Shield:
Am Shield muss der Jumper für den OGBA oder GBA-SP Modus gesetzt sein:
Anschließend wird das Shield-Board auf die Pins vom Spartan Edge-Board gesteckt und die Flex-Kabel vom GBA und Hookup Board in das Shield gesteckt.
Programmierung / Update Shield:
Das Shield benötigt die Firmware von @ManCloud um die notwendigen Tastendrücke an den GBA weiter zu reichen.
Hierfür verwende ich einen Arduino Nano
Diesen schließen wir per USB-C an den PC an und spielen das ArduinoISP-Sketch auf den Nano:
Wählen unter Tools -> Boards den Arduino Nano mit dem ATmega328p und dem COM-Port des Arduinos
und klicken auf "Upload"
Anschließend trennen wir den Nano vom USB um ihn mit dem Shield zu verbinden.
Zur Programmierung des Shields muss er nun wieder mit dem PC verbunden werden.
!! Das Shield bitte ebenfalls nicht programmieren, wenn es in dem Spartan Edge Board eingesteckt ist !!
Die Anschlussnamen vom ISCP-Header beim Shield sind in diesem Fall die Anschlussnamen von den Nano-Pins:
Die ISCP Pins wären:
D10 = Reset
D11 = MOSI
D12 = MISO
D13 = SCK
3,3v = 3,3v
GND = GND
Hier einfach mit Jumper-Kabeln die Verbindung aufbauen.
Anschließend die aktuelle Firmware aus @ManClouds GitHub laden und die .ino-Datei öffnen.
Als Board das Arduino Pro or Pro Mini auswählen, 3,3v 8MHz und als Programmer "Arduino as ISP"
Dann wählen wir Sketch -> Upload Using Programmer
Danach muss man noch überprüfen, ob die Fuses richtig gesetzt wurden. Ich prüfe das bspw. mit dem Programm AVRDUDESS:
Als Programmer wähle ich den "Atmel AVR ISP" an der entsprechenden COM-Schnittstelle aus, die auch im IDE angezeigt wird. Als Baud rate 19200.
Als 1. schauen wir, dass der MCU korrekt erkannt wird - dafür auf ATmega328P stellen und zur Sicherheit auf "Detect" klicken.
Anschließend lesen wir mit "Read" die Fuses aus und programmieren sie ggf. anhand der Angaben aus dem GitHub (korrekte Werte L: 0xE2 H: 0xD9 E: 0xFF einsetzen; "Set fuses" anhaken und auf "Write" klicken).
Damit sollte die Firmware drauf sein und die Fuses korrekt gesetzt sein.
Dieser Beitrag wurde bereits 21 mal editiert, zuletzt von n00b ()