Hallo Besucher, der Thread wurde 13k mal aufgerufen und enthält 106 Antworten

letzter Beitrag von mario am

HerMIDI für SidWizard - wer kann ihn bauen?

  • Im SID Wizard ist aktuell nur das Namesoft Interface implementiert, und richtig, es wird aktuell nur die gedrückte Taste angezeigt, hermit arbeitet noch an weiteren Funktionen.


    Also falls das Programm hier bei dir funktioniert, dann wäre ein Screenshot davon gut, wenn der Fehler auftritt. Also erstmal ohne den Rhytmus zu ändern ein paar Tasten drücken und schauen, ob überhaupt was ankommt (vielleicht ist es ja auch ein Windows oder Linux Problem). Falls ja, davon ein Screenshot, dann kann ich das für meinen Code simulieren und debuggen. Und danach die Sequenz, die bei SID Wizard funktioniert.

  • KB gerade abgebaut, muss leider bis morgen warten! Aber zuerst kam gestern garkein Zeichen, erst als ich bei Rhytmus herumdrückte füllte sich der Bildschirm zu ~1/3 mit Zeichen, kein Ton zu hören, danach erst konnte ich hör-und sichtbar auf den Tasten des KB spielen und es änderten sich dabei inmitten des Zeichenwirrwars immer ein paar davon.


    Ganz komisch, wie als wenn der Rhytmus meines KB die Eingabe über die normalen Tasten erst ´initialisieren´ würde...hab mich mit Midi noch nie vorher befasst, ist irgendwas aus meiner spärlichen Anleitung dafür vielleicht interessant?

  • Ich habe das Problem gefunden, auch warum die Programme manchmal aussteigen. Ist ein Bug in VICE, den ich korrigiert habe:


    https://sourceforge.net/p/vice-emu/patches/85/


    Damit ist es jetzt sogar möglich, vom PC aus Dateien an den VICE zu übertragen, mit einem kleinen Qt-Programm was ich geschrieben habe.


    Man kann VICE auch ohne Neucompilierung in Windows patchen. Dazu in der Datei x64.exe (Vice 2.4, 64-bit version, 3768832 Bytes lang) an Stelle 0x2880f die Bytefolge 8b 05 c7 54 34 00 durch b8 20 01 00 00 90 ersetzen (geht prima z.B. mit Ultraedit).


    Ich habe übrigens auch ein paar USB-MIDI-Adapter getestet:


    http://www.frank-buss.de/midi/index.html


    Die schrottigen 4 Euro eBay-Adapter übertragen SysEx-Nachrichten nicht vollständig, daher habe ich für meine Übertragung die Daten in Note-Off Nachrichten codiert. Damit sollte es mit jedem MIDI-Adapter gehen.


    hermit meint, man könnte die Datei-Empfangsroutine sogar mit der PIC-Lösung realisieren. Ich habe es erstmal für mein Expansionsport-MIDI Interface programmiert. Wird wohl noch ein paar Wochen dauern, bis alle Teile und die Platinen aus China da sind, aber dann kann ich das dann auch auf einem realen C64 testen und werde dann auch den Quelltext und alles veröffentlichen.

  • Sehr schön, Hermit hat ja auch wieder weitergemacht...mein Programmer ist gestern auch eingetroffen, hab nur grad kaum Zeit...muss heute erstmal umziehen, aber ich freu mich schon drauf alles dort aufzubauen...Platz ohne Ende :)
    Werd mir die Tage jetzt noch den Rest fürs HerMidi mal bestellen und dann mal ans bauen gehen!


    Das mit Vice kann ich die Tage auch mal probieren, ich nutze als Midi-Interface am PC ne Soundblaster X-Fi, das Frontpanel...aber wie da was übertragen wird/ob es korrekt funktioniert - keine Ahnung, hoffe ich doch.

  • Und ich muss jetzt nurnoch auf meinen Sockel warten und dann gehts hier auch mal los...


    Bevor ich was falsch mach - da ist ein 0-Ohm-Widerstand eingezeichnet, das ist kein Fehler? Sehe ich das richtig, das ich den durch eine Drahtbrücke ersetzen kann? Hab den bei Reichelt nicht gefunden und bei Ebay sollen 20Stck 5 Euro kosten...muss das also sein oder kann ich den weglassen?


    Hab das glaube ich woanders auch schonmal gefragt, find nur die Antworten nichtmehr wieder: auch der Anschluss, ich kann den Hermidi also einfach zw Boardanschluss und Sd2iec setzen, an die gleichen Kabel, da muss nichts besonderes beachtet werden, ? (will das intern in den Deckel mit einbauen)


    Edit: gartenzwerg, ein Hermidi 1.5 konnte ich auch nirgends finden - sicher das da schon ein Update kam und sich das nicht bloss auf den SidWizard bezog?

  • Zitat

    Fortunately the daisy-chaining is quite simple: just connecting all communication wires (ATN,CLK,DATA,RESET) to each other. The IEC bus works as 'wired OR' logic, any device can pull the lines down to 0V, and the wire is only at 5V (by C64 internal pullup-resistor) when all devices let it be so by going to high-impedance with their bus-driving transistors... no direct driving from +5V so theoretically you can't make Serial Port wrong by cable-flaws, I guess...


    I think if you solder a cable like that or you make an Y-shape exparder that would do the trick and you could have HerMIDI and 1541U at the same time.


    Schätze, diese Aussage über HerMIDI + Ultimate gilt auch für das SD2IEC.


    Quelle:
    http://csdb.dk/release/?id=126812 zweiter Kommentar von Hermit, relativ weit unten.

  • 0 Ohm Widerstand kannst du problemlos durch eine Drahtbrücke ersetzen. Sowas macht man manchmal für Schaltungsvariationen, wenn man es später automatisch bestücken lassen will, denn da gehen keine Drahtbrücken, oder wären unverhältnismäßig teuer. Und wenn man 0-Ohm-Widerstände im 0201-Format nimmt, dann reicht ein Lötzinnklecks :)


    Wo hast du denn welche für 25 Cent her? Normalerweise kosten die sowas um die 2 Cent:


    http://www.digikey.de/product-…CF0805ZT0R00CT-ND/1942606

  • Ebay - gut, dann lass ich die/den weg!
    Hab auch alles im normalen Format genommen, kein SMD, sind ja meine ich aus dem Kopf grad eh nur 2 versch. Bauteile, Widerstand und Kondensator (+den Chip).
    Lässt sich auf Lochraster besser mit arbeiten als mit SMD find ich...ja dann sollte das mit dem Sd2Iec ja eig. auch kein Problem sein, mal schauen wie ich das da jetzt noch alles reinbekomme.....son C64C wird irgendwann doch ziemlich eng.


    Einbauen kann ichs mangels Sockel eh noch nicht, werd mir das jetzt erstmal nur zurechtlegen und wenn der Sockel da ist kommt der Rest, evtl morgen schon...muss dann sowieso erstmal schauen wie ich den Chip programmier...aber wird schon schiefgehen! Hab in weiser Vorraussicht schonmal alles doppelt bestellt^^


    Wenn ich nicht weiter weiss frag ich einfach und wenns geklappt hat erfahrt ihr es ebenso.

  • Jetzt tauchen grad erste Probleme beim Programmieren auf...der Programmer ist ein ´K150´, die Software MicroBurn läuft nicht auf x64, auf meinem x86 findet er ihn eigenartigerweise als 6 (1-4 belegt? - eigentlich nicht, Maus+Tastatur), wenn ich die Software auf 6 einstelle sagt er mir sinngemäß ´no communication possible/reset failed oder so...ich probiers jetzt nochmal mit diesem Mplab, hoffe das er damit kompatibel ist.....läd grad, ist ja schonmal etwas grösser...

  • ...und dann kann man das HEX-File darin öffnen und per Mausklick den PIC programmieren.

    Programm ist offen, .hex-File geöffnet - nur wie programmiert man da was?! Ich find auf die schnelle nichtmal irgendwelche Einstellungen zum Programmer...
    Die simple 2-3Mb-Variante - die ja leider nicht funktioniert - gefällt mir deutlich besser/sieht wesentlich DAU-freundlicher aus...


    Edit: Nee, also das übersteigt meine Kenntnisse deutlichst - dafür brauch ich bitte eine detaillierte Beschreibung :D
    Einfacher wäre es glaube ich zu ergründen warum MicroBurn nicht funktioniert - liegts vielleicht an einem falschen Treiber? Wüsste grad nicht das da welche bei waren, hatte ihn natürlich schon ausgepackt und in der alten Wohnung...mir also irgendwelche aus dem Netz besorgt lt. hier - oder muss ich dazu wirklich - wie hier z.B. angegeben - erst den Chip auf dem Teil selbst neu flashen (was so ja aber gar nicht geht)?

  • Habe noch nie vom K150 gehört, wird wahrscheinlich nicht mit MPLAB laufen. Wieso hast du denn kein PICKit gekauft, wie ich in Posting 25 empfohlen hatte, und stattdessen ein Teil von einer Hobby-Webseite von 2005? Aber du hast ja 14 Tage Rückgaberecht bei Online gekauften Sachen. Kannst also noch einen richtigen Programmer kaufen, der dann auch unter 64-Bit-Systemen funktioniert. Mein PICKit 2 läuft hier prima unter 64 Bit Windows 7.

  • Wieso hast du denn kein PICKit gekauft, wie ich in Posting 25 empfohlen hatte, und stattdessen ein Teil von einer Hobby-Webseite von 2005? Aber du hast ja 14 Tage Rückgaberecht bei Online gekauften Sachen. Kannst also noch einen richtigen Programmer kaufen, der dann auch unter 64-Bit-Systemen funktioniert.

    Das ist einfach - derhier hat neu 10€ incl, Versand gekostet und sah aus als könne er viel :D
    Da aus Fernost ist ein Umtausch ausgeschlossen.


    Die MicroB - Software sieht eig. auch sehr einfach und für mich zu handeln aus, wenn es denn funktionieren würd. ich werd nochmal eben nen schnellen Versuch machen, ansonsten werd ich den x86 morgen mal verkabeln und an den Router hängen und noch ein wenig weiterexperimentieren (ohne immer Daten über nen Stick hin- u. herkopieren zu müssen), vielleicht funktioniert eine ältere/andere Version davon ja.

  • So, jetzt habe ich die Software, die dazugehört...mal schauen.
    Ist wohl in der Tat so, das dieses Teil nur mit der Software/dem Diypack funktioniert, dessen Firmware auch geflasht ist.
    Ich bin gespannt, ziehs grad auf den anderen PC...


    Edit: Geht natürlich nicht...dann will ich mal die ~50 Ordner und teils gepackten Files in unlesbaren Schriftzeichen und Programme in...Chinesisch? etwas durchprobieren^^


    Frag mich auch, warum mein Pc mir sagt Com 1-4 seien vergeben...wofür? Hab eben extra ne Ps-2-Maus drangesteckt und die Option ´Usb-mouse-support´ im Bios deaktiviert...trotzdem. Irgendwie merkwürdig. Das Usbkabel hab ich eben auch schon getauscht, ohne Änderung - eine Led leuchtet dauerhaft und keine Reaktion. Ausser das ers im Gerätemanager findet (auch mit Treiber). Vielleicht auch der falsche Treiber? ...


    Editedit: Ha, Mplab befindet sich auch in einem der Ordner...ob es damit wohl doch kompatibel ist?
    Bräuchte zu dem Prog wie gesagt nur bitte eine detaillierte Beschreibung - versteh da nur Bahnhof.

  • Man glaubt es kaum, aber ich bin einen Schritt weiter...es scheint an der COM-Port-Vergabe meines PCs zu liegen, so ´einfach´ (warum das so merkwürdig ist würd ich immernoch gern wissen, aber das ist n anderes Thema) - ich hab ihn trotz Warnung manuell auf 3 gestellt, und schwupps erkennt MicroB ihn auch.


    Jetzt sagt er mir wenn ich die .hex-Datei flashen will:

    Zitat

    The OSCAL values should be in the form of MOVLW instruction [0Cxx], current [0Fxx] - you want to change?


    Will ich? Muss ich? Was möchte er da von mir (und wieso)??


    Edit: Das flashen an sich scheint zu funktionieren, ging mir ein wenig schnell, aber wenn ich auf ´read´ drück zeigt er mir das, was ich vorher geladen hatte. (hab in der Abfrage jetzt einfach mal auf ´no´ gedrückt)


    Glaub da nurnoch nicht so ganz dran das das funktioniert...wenn da irgendwas falsch gelaufen ist jetzt, zerstört mir das doch nicht mein Keyboard/den C64 - oder? :)


    Ich seh die Rauchwolke schon förmlich...^^

  • also die tastatur wird mal keine probleme machen, eher der serielle bus kann beleidigt werden.


    dieser OSCAL wert ist schätzungsweise irgend ein voreinstellungs wert für oszillator kalibration, also evtl ob mit quarz oder anderem takterzeuger (oder intern?) bzw wie schnell? kenn mich nicht unbedingt gut aus mit pic.

  • Ich muss jetzt eh erstmal verkabeln, vielleicht hat bis dahin ja jemand eine Idee...auch grad gegoogelt das der wohl nicht unwichtig ist...muss mich nach dem verkabeln da gleich nochmal ne Minute mit befassen. Um zu schauen ob ich den wiederbeschreiben kann, hab ich die Abfrage auch einmal mit ´yes´ bestätigt. Will nicht hoffen, das ich dadurch irgendeinen wichtigen Wert evtl. schon gelöscht habe - zur Not habe ich aber ja noch nen 2ten PIC davon hier.


    Ich löte jetzt erstmal Kabel....

  • Das sieht nicht gut aus mit der OSCAL-Abfrage. Das Konzept dahinter ist, daß manche PICs am Ende des Flashs bei 0x3FF eine "movlw xy" Anweisung haben, wobei xy der von der Fabrik her eingestellte Wert ist, um den internen RC-Oszillator mit der richtigen Frequenz laufen zu lassen. Beim Reset wird dann bei 0x3FF angefangen und dann wrapped es zur Adresse 0, wo man dann den Wert im W-Register in das OSCAL-Register speichern kann, um den internen RC-Oszillator zu kalibrieren. Die Frequenz ist dabei erstaunlich genau, habe mal ein Testprogramm geschrieben und das gemessen: http://www.frank-buss.de/PIC100/index.html Daher kann das PIC Programm auch die MIDI-Baudrate relativ genau generieren.


    Bei MPLAB ist es so, daß MPLAB vor dem Löschen des Chips und dem Brennen eines Programms den programmierten Wert erst ausliest und das dann neu brennt. Wenn da 0xff drinsteht, dann ist das ein Zeichen dafür, daß der Chip gelöscht wurde (0xff ist bei Flash üblich wenn es gelöscht ist) und der Wert somit weg ist. Damit wird der interne Oszillator zu ungenau laufen und die Schaltung nicht funktionieren, da in HerMIDI-PIC.gpasm zu sehen ist, daß der interne Oszillator auch verwendet wird, statt einen externen Quarz zu nehmen, was eigentlich besser wäre, wenn man die MIDI-Baudrate genau haben will. MPLAB bietet glaube ich aber auch eine Möglichkeit, den Oszillator neu zu kalibrieren. Blöd nur, daß dein Programmer wahrscheinlich nicht mit MPLAB läuft. Du könnte natürlich mein 100 Hz Testprogramm nehmen und versuchen den Kalibrierungswert solange anzupassen, bis du mit dem Oszilloskop (oder Soundkarte) eine einigermaßen gute 100 Hz Frequenz messen kannst, aber das könnte aufwendig werden. Wobei mit binärem Suchen sollte es nicht allzu viele Versuche brauchen.


    Ich habe übrigens mittlerweile auch einen PIC12F509, in DIP-Bauform, mit dem ich den 100 Hz Test gemacht habe, läuft also recht genau auf den internen 4 MHz, und könnte dir einen brennen und schicken, falls du es mit deinem Hobby-Programmer nicht hinbekommst.

  • Also vorhin funktionierte meine Schaltung noch nicht...bin grad unterwegs und werd da gleich in Ruhe nchmal drangehen. Wenn ich schnell mehrere Tasten drück zeigt er hin und wieder mit Glück mal eine Note an, irgendwo ist noch der Wurm drin.


    Ganz abgesehen davon das ich durch meinen internen Einbau ein weiteres Problem habe: Kein Schalter bisher. Sd2iec kann ich abschalten, Hermidi nicht. Edge of Disgrace verweigerte schon seinen Dienst. Ich weiss jetzt gerade nur nicht ob durch Fehler in der Schaltung oder dadurch das ein weiteres Teil am IecBus hängt....


    Also mir noch mit Schalter was überlegen...


    Und wenn ich die Schaltung geprüft hab geh ich beim PIC nochmal ran, der kommt aufgrund des OSCAL-Wertes ja auch als Fehlerquelle infrage. Einen zweiten hab ich noch, mal schauen was da passiert, den werd ich nicht beschreiben, nur um mal zu schauen ob da auch diese Abfrage kommt. Vielleicht kann ich von dem ja auch den richtigen Wert auslesen? Der andere, bisherige, war jedoch auch neu, trotzdem kam die Frage, wüsste grad nicht das ich vorher auf erase gedrückt hab, bin mir aber auch grad nichtmehr 100prozentig sicher.


    Ja und Mplab scheint auch zu gehen, wird wohl kompatibel sein - es befindet sich jedenfalls im Treiberpaket, sicher nicht grundlos. Nur damit komme ich nicht klar, wie funktioniert das?