Posts by androSID

    Da werden per Maschine direkt die notwendigen Signale mit Kontaktierspitzen ins System gegeben.


    Passiert z.B. am Bandende beim bestücken der PCBs! Bei uns (mit größeren Prozessoren) passiert es meistens via
    JTAG: Da wird am Bandende der Prozessor via JTAG dazu gebracht, die notwenidgen Sequenzen zum Progrmmieren
    des Flash "durchzuspielen".

    Anti-Klassiker: Der Widerstand geht auf Masse; der C auf Versorgungsspannung. Also tatsächlich "aktiv high". C wird über R entladen; mal umgekehrt.


    Aber alles sehr kleine SMD Teile. Mit Löten ist an der Stelle für mich nichts mehr.


    Schade... würde mich echt interessieren, wie die Ihre Firmware auf das Teil bekommen? Pre-Programmed Flash? Oder In-Circuit flasher?
    Vermute letzteres!

    Eine Idee hatte ich noch...


    Vielleicht wäre es möglich die "MST-im-Reset-halten" Variante mit einem FTDI zu realisieren. So ein USB-Seriell-Adapter ist für ein paar Euro zu bekommen
    und man kann die Leitungen z.T. umkonfigurieren. D.h. evtl. könnte man den SPI per Bit-'Bang simulieren und so die Daten
    ins Flash (und auch raus) bekommen.


    Nur so eine Idee.... Nachteil: Müsste man erst programmieren (oder Programm dafür er'googlen). :thumbsup:

    Meinen Respekt!
    Ein DIL-Adapter ist unterwegs. Falls das mit dem Patch jemals klappt, flashe ich gerne für die (kleine?) Gemeinde die abgelöteten oder neuen Bauteile.
    Allerdings bin ich ein schlechter Programmierer: Bei dem Patch wäre mir die Hilfe hier sehr willkommen :-)
    Gruss


    Kein Problem... lass' mir einfach das Flash-Image zukommen und zumindest die Variante eins bekommen wir hin! :-)
    Ich könnte auf Wunsch auch alle Modi abschalten und nur S-Video zulassen und den "SV" String zu C64 machen... LOL :thumbsup:

    Noch eine kurze Meldung:


    Im File MenuFunc.c ist die Funktion "AdjustSource".


    Hier findet erstmal die "logische" Umschaltung der Quelle statt:


    Code
    1. ...
    2. g_VideoSetting.InputType+=1;
    3. g_VideoSetting.InputType%=Input_Nums;
    4. ...


    Das wäre also ein Ansatzpunkt zum Patchen: Die Addition (+=3) und den Modulo Wert (Input_Nums auf 6) ändern.
    Das wäre dann die Lösung, das anstatt VGA Mode nun S-Video drin ist. Byte für Videoquelle wechselt zw. 0x00 und 0x03
    anstatt 0x00 und 0x01.


    Die 2te Möglichkeit wäre: Dann die Funktion "SwitchInputPort" in mStar.c und "devAudioInputSelect" TDA7052.c, die dann die physikalische Umschaltung vornimmt.


    Die Umschaltung ist ist einem switch-case gemacht:




    Vermutlich dürfte auch auf dem 8051 dies mit einer Sprungtabelle gelöst sein. (Ist schon zu lange her, das ich aktiv am 8051 kodiert habe;
    aber ich meine der Keil-Compiler macht Sprungtabellen wenn der Optimizer eingeschaltet ist!)
    Hier müsste ich (man) dann entweder den Wert für switch(0x01) und switch (0x03) tauschen (oder nur 0x01 ersetzen):
    Gleiches Ergebnis wie beim ersten Ansatz; VGA weg -> dafür s-Video


    Oder dritter Ansatz:


    In AdjustSource den Modulo Wert um eins erhöhen (Also von 2 auf 3) und in SwitchInputPort
    den Tabelleneintrag in der Sprungtabelle 0x02 und 0x03 tauschen. Dann hätte man S-Video zusätzlich zu VGA.


    Aber: So auf anhieb dürften die 2te und 3te Möglichkeit nicht funktionieren, weil quer über den Code Macros
    versteckt sind: "IsSVideoInUse" u.A. Diese Fragen den Wert 0x03 für S-Video auch ab. Die müsste man noch anpassen.


    Lange Rede, kurzer Sinn: Patch absolut machbar! :thumbsup:


    Interessant wäre herauszufinden, ob der Hersteller eine Möglichkeit vorgesehen hatte, das Flash im Target zu flashen...
    dann könnte man auf auslöten etc. verzichten.


    Ansonsten wäre vielleicht(!) eine andere Möglichkeit eben den MST703 in Reset zu halten (Pin52 auf high) und
    dann an den SPI Pins/Leitungen selber Daten anzulegen...


    Voraussetzung wäre aber das der MST703 dann seine SPI Leitungen hochohmig schaltet (Input oder tri-state)
    und das eine Fremdquelle an PIN52 nicht die Reset-Logik auf dem Board killt (sofern vorhanden).
    So flashe ich in meinem derzeitigen beruflichen Projekt meine H/W - falls ich mal den Bootloader zerschiesse! :whistling:
    Allerdings ist dies kein 8051 derivat, sondern ein ARM... aber das spielt keine Rolle.


    An welche Pins des MST703 gehen denn seine Anschlüsse? Der SPI liegt beim MST703 an den Pins 41, 42, 43... haben die Verbindung (evtl. Vorwiderstände beachten).


    Nachtrag: SDA/SCL ist in der Schaltung ein UART (serielle Schnittstelle). Der Bezeichnung nach, kann der Chip evtl. beides (I2C+UART) über diese Pins... ist aber unerheblich.


    Die I2C Signale werden per Bitbanging erzeugt. Und im Code sind Debugausgaben enthalten (z.T. auskommentiert),
    die über den UART rauskommwn würden - sofern aktiv.

    Wenn es ein SPI-Flash ist, lässt es sich dann nicht "ganz einfach" per SPI auslesen? Arduino o.ä. dranhängen und die Bytes an den PC übertragen. Auf gleichem Weg lässt es sich dann auch wieder beschreiben. Oder überseh ich da was?


    Na Du bist ja ein ganz schlauer!:thumbsup:


    Arduino wo dran hängen? An die Platine? An den Baustein? Überträgt der Arduino "ganz einfach" mal so zum PC oder braucht er eine Software dafür?
    Woher weiß der Arduino welcher Baustein dran hängt? Kann Arduino SPI-Modes "erraten"?
    Fragen über Fragen... muß ich mal meine Glaskugel bemühen! :bgdev


    Aber wenn es "ganz einfach" ist, schlage ich vor: Mach' mal!


    (Fast) jedes komplexe Problem ist "ganz einfach" lösbar, wenn man es in kleine Häppchen aufteilt... aber einfach einen Arduino dranhängen ist halt
    nicht alles.


    ps: Das Gegenteil von "Gut" ist "Gut gemeint"... ;)

    Leider hab' ich selber kein Bedarf an dem Teil; sonst hätte ich eins gekauft und die Möglichkeit im Büro das auszulesen.


    Habe dort einen Aadvark Programmer; der sollte mit dem SPI-Flash zurecht kommen.


    Dann hätte man auch schauen können, wie man die Firmware bei bestehenden Geräten am besten austauschen kann
    ohne das Flash herauszulöten! z.B. CPU im Reset halten, damit die Ports hochohmig bleiben und dann mit externen
    Adapter das Flash neu schreiben.

    Ok... schau mal in den Source code in File "MenuFunc.c".


    Dort ist die Funktion:


    BOOL AdjustSource(void);


    Antweder die im binary patchen (mit IDA wäre das lokalisieren problemlos!) oder nochmal genauer suchen!


    Mein Bauchgefühl sagt mir, das man/wir /ich unter Verzicht auf den VGA Modus am schnellsten zu Ziel kommen würden.
    D.h. ein Patch, damit wir zw. FBAS u. S-Video anstatt FBAS und VGA umschalten.


    Die Menüführung ist im Sourcecode zwar einigermassen flexibel implementiert; aber über bedingte Compilierung werden
    z.T. Funktionen abgeschaltet. Und ohne Buildumgebung wirds dann schwer das Ding zu bauen. Bleibt also nur patchen übrig!


    Lange Rede, kurzer Sinn: Sobald ich das Flash Image habe, kannst Du einen Patch haben.

    Wenn Du mir den FlashInhalt schickst, kann ich versuchen einen Patch zu machen, der entweder S-Video hinzufügt
    oder VGA durch S-Video ersetzt...


    Eventuell geht's "noch besser"; aber ich hatte nur wenig Zeit zu schauen und bin heute und morgen ausgebremst: Familie! ;)

    Ich hab' mir nochmal Deine ausführliche :thumbsup: Beschreibung durchgelesen:


    Die Anschlüsse: SCL/SDA sind kein Debugport, sondern der I2C, der wohl auch am EEPROM hängt.


    D.h. vermutlich könntest Du das eingebaute EEPROM entfernen und dafür eins an diesen Anschluß hängen.

    Ich bearbeite noch einen Arbeitskollegen, der hat einen Galep 5 der sollte es können.


    @mic72
    Du bist kein Klugscheisser, du weisst es einfach besser :bgdev
    Was ist "IDA"?


    IDA = Interactive Disassembler :thumbsup:
    Ein seeeeehr mächtiges Tool zum Reverse Engineeren (oder Cracken ;)


    Was auch interessant wäre: Einen I2C-Sniffer an das externe ROM zu hängen. Dann könnte man z.B. sehen auf welche Adressen überhaupt zugegriffen wird.
    (Alternativ könnte man auch das ganze mit einem definierten Wert ungelich 0x00 und ungleich 0xFF überschreiben und schauen, welche Bereiche
    vom ROM mit default Werten versorgt werden.)