djtulan Music, Hackerspace, Retrocomputing

easy kernal von zschunky

Eine sehr nette Erweiterung ist diese Woche zum Betatesten eingetroffen. Es handelt sich um das sog. "easy kernal" und wurde von zschunky entwickelt. 

undefined

easy kernal ist ein Kernal Umschalter, der aber in Zukunft auch Onefiler starten können soll. Das tolle daran ist, dass er mit THT Technologie aufgebaut ist, sodass "SMD Ängstliche" auch auf ihren Bastelspaß kommen.

Ich bin schon gespannt wie sich das Teil entwickelt. Vielen Dank an zschunky vom Forum64, dass ich bei den Testern dabei sein darf. 

EasyFlash³ - DIY Tutorial 5/5 - Flash Menu

Damit man nun die fertige Hardware am C64 verwenden kann, muss noch die Software für das EF3-Menü eingespielt werden.

Es gibt dafür zwei verschiedene Cartridge Files

  • EF3-Init (EF3 Menü mit inkl verschiedener Kernals und EasyProg)
  • EF3-Menu (nur das EF3 Menü mit EasyProg)

in zwei unterschiedlichen Versionen: (je nachdem welche CPLD Version ihr geflasht habt!!!)

  • Version von Skoe (hier)
  • von Kim Jorgensen (hier)

ACHTUNG!!! Für alle, die Probleme beim Flashen haben. Das kann an einem bereits vorprogrammierten CPLD liegen.

Im Forum64 hat "no parity" eine Version erstellt, die via JTAG Kommando zuerst ein Unlock und Delete auf dem CPLD macht.
Diese Versionen haben bei mir bisher bei allen CPLDs funktioniert:

Skoe Version:

https://www.forum64.de/index.php?thread/87062-easyflash3-per-jtag-programmieren/&postID=1357019#post1357019

Kim Jorgensen:

https://www.forum64.de/index.php?thread/87062-easyflash3-per-jtag-programmieren/&postID=1357022#post1357022

 

Hat man ein komplett neues EF3 gebaut hat, dann sollte man das EF3-Init einspielen.

Am einfachsten geht das, wenn man im Besitz eines SD2IEC Laufwerks ist. Aber es ist auch möglich das EF3-Menü von Diskette aus zu installieren.

Flashen via SD2IEC

Kopiert folgende Dateien auf euere SD2IEC SD-Karte:

  • EasyProg ... Software zum Flashen
  • EF3-Init
  • EF3-Menu

Dann startet euren C64 mit angestecktem EF3. Ist noch keine Software im EF3, dann bekommt ihr einen blauen Screen.

Mit der mittleren Taste (SPECIAL) eures EF3 kommt ihr einfach in das C64 BASIC.

Jetzt lädt ihr EasyProg es sollte folgender Schirm erscheinen:

undefined 

Mit der Taste "M" kommt man in das erste Menü, hier könnt ihr nun "Write CRT to flash" auswählen und das EF3-Init zu flashen.

Bevor man das macht (bei neu gebauter Hardware) sollte man vorher ein "Erase all" durchführen, damit alle Slots sauber gelöscht sind.

Wurde das EF-Init fertig geflasht, kann man einen C64 Neustart durchführen oder die Linke Taste des EF3 (MENU) drücken, dann kommt ihr ins EF-Menü.

undefined

Fertig!

Flashen via Diskette

Eigentlich das gleiche Vorgehen wie für SD2IEC. Mit dem Unterschied, dass auf eine Diskettenseite das EF3-Init nicht Platz findet.

EasyProg und EF-Menu passen aber auf eine Diskettenseite, und man kann sich ein Menü ohne die Kernal und Freezer flashen.

 

EasyFlash³ - DIY Tutorial 4/5 - Configure FTDI and CPLD

In diesem Teil des Tutorials wird erklärt, wie die Logik in das CPLD eingespielt wird. Um das CPLD zu flashen ist es zuerst notwendig den FTDI Chip zu konfigurieren. In den folgenden Abschnitten wird erklärt wie man beide Chips programmiert.

FTDI

undefined

Der Chip verwendet ein EEPROM, indem die entsprechenden Parameter gespeichert werden. Zur Konfiguration des FTDI Chips gibt es mehrere Herangehensweisen.

Konfiguration unter Windows

Am einfachsten ist es, das fertige Tool von FTDI names FT_Prog unter Windows zu verwenden. Skoe hat dazu eine Anleitung mit der passende XML Datei vorbereitet, die die benötigte Konfiguration enthält. Also im Grunde FT_Prog starten, XML Laden, USB Kabel an EF3 anstecken (Dieser Schritt benötigt keinen C64!), Konfiguration einspielen, fertig.

Dieser Ablauf funktioniert leider nur dann, solange man keinen vorprogrammierten Chip eingekauft hat. Da der Chip relativ teuer ist, werden auf ebay oder AliExpress sehr gerne Chips aus Restbeständen einer Produktion angeboten. Diese Chips sind in vielen Fällen bereits vorprogrammiert. Das heißt, sie beinhalten oft andere VENDOR oder PRODUCT Ids, als ein jungfräulicher Chip. Hat man so einen Chip ergattert und bereits verlötet, dann ist es mit FT_PROG nicht mehr möglich den Chip umzuprogrammieren.

Vielen Dank dafür an die Firma FTDI!

Hier ein paar Beispiele von Chips, die ich über ebay eingekauft habe:

usb 3-3.4.4: new full-speed USB device number 10 using xhci_hcd
usb 3-3.4.4: New USB device found, idVendor=1789, idProduct=0016, bcdDevice= 6.00
usb 3-3.4.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 3-3.4.4: Product: TEMS Symphony Phone MIF ACM
usb 3-3.4.4: Manufacturer: FTDI
usb 3-3.4.4: SerialNumber: 30X0U6HT

usb 3-3.4.4: new full-speed USB device number 11 using xhci_hcd
usb 3-3.4.4: New USB device found, idVendor=0403, idProduct=6001, bcdDevice= 6.00
usb 3-3.4.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 3-3.4.4: Product: NCP_PRNT
usb 3-3.4.4: Manufacturer: LAUNCH
usb 3-3.4.4: SerialNumber: 170000E6

usb 3-3.4.4: new full-speed USB device number 10 using xhci_hcd
usb 3-3.4.4: New USB device found, idVendor=0403, idProduct=c76a, bcdDevice= 6.00
usb 3-3.4.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 3-3.4.4: Product: TITENG TP-9000
usb 3-3.4.4: Manufacturer: TITENG

Schlimmer noch, es gibt hin und wieder auch Händler, die fake Chips verkaufen. Bitte werft unbedingt einen Blick auf die Bewertungen von den Verkäufern oder kauft die Chips bei einem seriösen Elektronikhändler. Wenn ein FTDI Chip für unter 2€ angeboten wird sollte man skeptisch sein.

Konfiguration unter Linux

Eine andere, nicht weniger komfortable Lösung, ist das Tool ftdi_eeprom, das in den meisten Linux Distributionen enthalten ist. Unter Ubuntu / Debian kann man es einfach mit folgenden Kommando installieren:

sudo apt install ftdi-eeprom

ftdi_eeprom ist ein Commandline Tool, mit dem sich auch FTDI Chips umprogrammieren lassen, die bereits vorprogrammiert wurden. Ich habe dazu ein paar Dateien vorbereitet, die einem dabei helfen werden.

  • ftdi_eeprom config file … enthält die Configuration
  • EEPROM File … enthält die EEPROM Daten für ein EF3

Hier geht es zum Download

Um zu zu erkennen welche VENDOR und PRODUCT Id in den Chip programmiert wurde, ist der Befehl dmesg sehr praktisch. Mit dmesg wird der Kernel Log des Linux Systems dargestellt. Hier ein Log eines richtig konfigurierten EF3.

dmesg -r

usb 3-3.4.4: USB disconnect, device number 11
usb 3-3.4.4: new full-speed USB device number 12 using xhci_hcd
usb 3-3.4.4: New USB device found, idVendor=0403, idProduct=8738, bcdDevice= 6.00
usb 3-3.4.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 3-3.4.4: Product: EasyFlash 3
usb 3-3.4.4: Manufacturer: skoe
usb 3-3.4.4: SerialNumber: A63702E2

Um nun den Chip unter Linux zu konfigurieren bitte folgender Schritte durchführen:

  1. Bitte alle anderen FTDI USB Geräte anstecken (z.B. Serial Converter)
  2. Fertig aufgebautes EF3 anstecken
  3. mit dmesg die idVendor und idProduct feststellen (siehe Beispiele oben)
  4. die zwei Dateien in ein Verzeichnis kopieren und entpacken
  5. Terminalfenster aufmachen und in das Verzeichnis wechseln

 undefined

Danach folgenden Befehl ausführen: 

sudo ftdi_eeprom --flash-eeprom --device i:0x0403:0x8738 easy.conf
  • statt 0x0403 bitte die richtige idVendor einsetzen
  • statt 0x8738 bitte die richtige idProduct einsetzen 

Hat das Umkonfigurieren des FTDI Chips funktioniert, dann sollte mit dmesg nun die Meldung ausgegeben werden:

dmesg -r

usb 3-3.4.4: USB disconnect, device number 11
usb 3-3.4.4: new full-speed USB device number 12 using xhci_hcd
usb 3-3.4.4: New USB device found, idVendor=0403, idProduct=8738, bcdDevice= 6.00
usb 3-3.4.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 3-3.4.4: Product: EasyFlash 3
usb 3-3.4.4: Manufacturer: skoe
usb 3-3.4.4: SerialNumber: A63702E2

Als nächstes kann nun das CPLD mit der benötigten EasyFlash3 Logik geflasht werden.

CPLD

undefined

Zum Flashen des CPLDs hat Skoe das Programm easp bereitgestellt. Es ist ein Open Source Tool, das mit Hilfe des FTDI Chips das CPLD via JTAG Schnittstelle programmiert. Es basiert auf dem Programm „prog_cpld“ von Tilmann Hentze.

Weiters benötigt man die Dateien, die die richtige CPLD Logik enthalten. Entweder man verwendet die Dateien von Skoe oder man verwendet die neuere Version von Kim Jorgensen.

Ich persönlich verwende immer die neuere Version von Kim Jorgensen, weil damit auch Final Cartridge III+ unterstützt werden.

Um das CPLD zu flashen müssen folgenden Vorbedingungen erfüllt werden:

  • die Jumper des EF3 auf PROG stehen.
  • Das EF3 muss in einem C64 stecken und Letzterer muss eingeschaltet sein, damit das EF3 mit Spannung versorgt wird.
  • Die benötigte svf Datei sollte ein einem Verzeichnis bereit liegen

undefined


CPLD Dann wird das easp gestartet, der Aufruf ist ganz simple:

./easp -p 0x8738 ef3-cpld-1.2.1.svf

undefined

Nach der Meldung <<< All TDO outputs matched to the expected values! >>> wurde auch das CPLD erfolgreich programmiert.

Hin und wieder kommt es vor, dass eine gewisse Anzahl an TDO outputs als falsch gekennzeichnet wird. Dann sollte man sich nochmals alle Pins des CPLD ansehen. Manchmal ist ein Pin einfach nicht ordentlich verlötet.

Bekommt man die Meldung <<< 49127 TDO outputs didn't match to the expected values... >>> dann hat man vergessen die 4 Jumper auf PROG zu setzten.

Wenn man großes Pech hat, dann ist das CPLD beschädigt und lässt sich gar nicht programmieren, dann sollte man es mit einer Heißluftstation entlöten und gegen ein Neues tauschen.

Zur Info, während des Flashvorgangs stürzt der C64 ab. Sofern alles gut gelaufen ist, kann man nun die mittlere Taste des EF3 betätigen (SPECIAL) um wieder in den blauen READY Schirm des C64 zu gelangen.

Jetzt fehlt nur noch die Programmierung des EF3 Menüs. Dazu mehr im nächsten Kapitel.

EasyFlash³ - DIY Tutorial 3/5 - THT Parts

THT steht für (engl.: through-hole technology), also all das was durch Löcher in der Platine gesteckt und eingelötet wird. Im Gegensatz dazu werden alle Bauteile, die bisher gelötet wurden, SMT (engl.: surface-mounting technology) oder SMD (engl.: surface-mounting device) genannt.

1. Montage der Stiftleisten

Würde man die Stiftleisten so einlöten wie es eigentlich vorgesehen ist, dann würden die fertigen EasyFlash³ Platinen nicht in ein standard C64 Cartridge Gehäuse passen. Es gibt zwei Möglichkeiten, dieses Problem zu umgehen:

  1. Stiftleisten wie gewohnt einlöten und danach den Kunststoffrahmen entfernen, der die Leiste zusammenhält. Das ist aber recht aufwändig.

  2. Die Stifte der Stiftleiste mit Hilfe einer Zange herausschieben, bis sie bis nur noch auf einer Seite im Rahmen stecken. Und dann die Stiftleiste von hinten durchstecken und oben einlöten. Das ist die einfachere und elegantere Möglichkeit.

 

a.) Stiftleisten vorher:
undefined

b.) Stiftleisten nachher:

undefined

 Die Stiftleisten dann von oben verlöten.

 

2. Einlöten der Taster und der LED

3. Reinigung mit Isopropanol

Hat man nun alle Teile eingelötet folgt ein Bad in Isopropanol. Am besten ordentlich einziehen lassen und dann mit einem Pinsel oder einer kleinen Bürste alle Stellen ordentlich schrubben.

Danach mit einem fusselfreien Tuch trockenwischen. Am besten eigenen sich dazu "Clean Room Wipes".

 

Video folgt in Kürze

 

 

Neuere Posts → Home ← Ältere Posts