Ah, JTAG. Der Standard, der universell ist, da er nutzlos ist.
JTAG ist ein universeller 'Standard', vor allem, weil es alles definiert, ohne wirklich etwas zu definieren. Denken Sie daran, es begann als ein Weg, ganze Leiterplatten und ihre Integrität im Allgemeinen zu testen. Es wurde nie als Programmier- / Debugging- / In-Schaltungsemulationsprotokoll definiert (und soll es auch nicht sein), obwohl es ein großartiger physischer Bus ist Implementieren Sie solche Funktionen auf. Eine der praktischeren Funktionen ist die hohe Verkettbarkeit, sodass Sie viele Geräte auf einer Karte verketten und alle (oder was auch immer) mit nur einer JTAG-Schnittstelle testen können.
JTAG ist eigentlich nur eine Zustandsmaschine, mit der Sie auf Speicheradressen zugreifen können. Es gibt kein Protokoll oder System an, um irgendetwas zu tun, sondern stellt lediglich das Medium bereit. Wie oder was Sie tatsächlich über die JTAG-Schnittstelle tun, ist sehr spezifisch für den betreffenden Chip. Oft werden diese Funktionen nicht veröffentlicht und erfordern die Verwendung von vom Hersteller bereitgestellter Hardware und Software.
Eine 'JTAG-Programmier- / Debugging-Schnittstelle' ist keine standardisierte Sache. Es wird in gewisser Weise die JTAG-Zustandsmaschine verwenden, aber es gibt hier keine Auswirkungen auf Interoperabilität oder Universalität. Diese Schnittstelle ist so einzigartig und spezifisch für den betreffenden Chip, wie es der JTAG-Standard zulässt. Um eine Analogie zu verwenden, könnte JTAG ein standardisiertes Mailsystem sein, mit Adressen und Formatierungen und möglicherweise spezifischem Papier und Umschlägen, die verwendet werden müssen, alle sehr streng definiert. Was es nicht besonders gut definiert, ist das, was Sie tatsächlich auf diese Buchstaben schreiben. Es gibt die Schreibmaschine, das Schriftbild, die Größe, den Abstand, das Alphabet usw. an, aber was Sie tatsächlich schreiben, bleibt größtenteils Ihnen überlassen.
OK, ich habe mir mit dieser Analogie erhebliche Freiheiten genommen, aber ich denke, das bringt den Punkt auf den Punkt.
Wenn auf dem Datenblatt dieses Chips "Eingegeben der angegebenen Wellenform" steht, können Sie auf diese Weise feststellen, dass Sie nicht erfahren, wie Sie den Chip in den Programmiermodus versetzen. In der Bedienungsanleitung des Flash-Programmiergeräts JET51 heißt es. Es ist auf Chinesisch, aber es enthüllt sicherlich nicht das proprietäre Protokoll (das eindeutig geistiges Eigentum im Wert von Milliarden ist, zumindest in den Augen einer naiven Führungskraft), sodass Sie Ihr eigenes Gerät und Ihre eigene Software erstellen können .
Leider müssen Sino Wealth die Antworten auf viele Ihrer Fragen wissen und Sie ... nun ... nicht. Haben Sie versucht, ihnen eine E-Mail zu schreiben? Wer weiß, vielleicht lassen sie dich eine NDA unterschreiben oder so.
Jetzt könnte es schlimmer kommen. Es gibt Anbieter, die Ihnen nicht einmal einen Programmierer oder die dafür erforderliche proprietäre Software verkaufen, es sei denn, Sie sind ein großes Unternehmen und Ihre Ingenieure unterzeichnen alle NDAs, schließen einen okkulten Blutpakt usw. Aber zum Glück weiß Sino Wealth, wie um sich ein wenig auszuruhen, und hat freundlicherweise das Benutzerhandbuch, die Firmware (!!) für ihre Programmierer und die benötigte Software zur Verfügung gestellt. Wie funktioniert es? Wenn Sino Wealth es Ihnen nicht sagt, besteht Ihre einzige verbleibende Option leider darin, all dies ebenfalls rückzuentwickeln. Angesichts der Tatsache, dass es mehrere Programmierer von Drittanbietern gibt, die diesen bestimmten Chip unterstützen, und dass sie die Software und sogar die Firmware für ihre Programmierer bereitstellen, ist es wahrscheinlich nicht allzu schwierig, ein Reverse Engineering durchzuführen. Oder Sie können einfach einen JET51-Programmierer kaufen. Ob Sie ihn verwenden oder seinen Betrieb rückentwickeln, liegt bei Ihnen.
Außerdem ist das von Ihnen gescreente Flussdiagramm der Zustandsmaschine der proprietäre SSP-Programmiermodus von Sino Wealth und für die im Abschnitt ICP-Flash-Programmierung erwähnte 'angegebene Wellenform' völlig irrelevant. Es hat nichts mit der JTAG-Programmierschnittstelle zu tun. Es hat leider nichts mit dem Rest Ihrer Frage zu tun.
Das LCD spielt keine Rolle. Der SH79F1619 ist ein Segment-LCD-Controller. Es steuert Segmente eines LCD mit 12 Segmenttreibern und 4 gemeinsamen Pins zum Multiplexen. Hier gibt es nichts Besonderes, es unterscheidet sich nicht vom Ansteuern einer 7-Segment-LED-Anzeige. Jedes Segment lässt ein Segment auf dem LCD "aufleuchten". Welches Segment das ist oder wie es überhaupt aussieht, bleibt dem Designer des LCD überlassen. Es gibt nichts Besonderes zu wissen - Sie können die Segmente mit jedem LCD-Segment-Treiberchip steuern und sie funktionieren mit jedem anderen Treiber wie diesem Mikrocontroller genauso.
Das einzige, was sich zwischen einem LCD und einer LED unterscheidet, ist, dass LCDs mit Wechselstrom betrieben werden müssen, während LEDs offensichtlich mit Gleichstrom betrieben werden. Dies ist völlig allgemein gehalten und funktioniert normalerweise so, als würden Sie eine LED nur mit Wechselstrom betreiben. Möchten Sie, dass ein Segment aktiviert ist? Legen Sie eine Wechselspannung an. Willst du es aus? Legen Sie keine Wechselspannung an (oder wirklich nur eine viel kleinere RMS-Wechselspannung). Alles, was der LCD-Controller für Sie tut, ist, COM und die verschiedenen Segmentstifte relativ zueinander hin und her zu schalten, und normalerweise zwischen ein paar Vorspannungen, um eine abgestufte Wellenform zu erzeugen und Ihnen einige nette Funktionen wie Variation in Kontrast / Graustufen usw. Zu geben Dies ist jedoch absolut allgemein gehalten und Sie müssen nichts über dieses LCD wissen. Wenn Sie ein Wochenende voller Frustrationen beschleunigen möchten, können Sie es sogar selbst mit einem Mikro und einigen Transistoren zum Umschalten zwischen Vorspannungen verwenden. Wenn Sie unter Selbstmordgedanken leiden, rate ich jedoch davon ab, dies zu versuchen.
Meine letzten abschließenden Gedanken:
Das Leben ist kurz. Geben Sie nicht die wertvollste Ressource von allen, Zeit, dafür aus. Es gibt keinen Grund, dies alles rückzuentwickeln. Es wird keine besonders wertvolle Lernerfahrung sein - Sie werden viel über einen sehr spezifischen Chip und seine proprietäre Programmierschnittstelle lernen, die absolut unauffällig sein wird und nur eine weitere Variation desselben Mistes, der jahrzehntelang in oberflächlich unterschiedlichen Implementierungen von gemacht wurde alle Arten von Mikros. Und es gibt sowieso nichts, was es wert wäre, in diesem Chip wiederhergestellt und dekompiliert zu werden. Es ist nichts Revolutionäres an einem beschissenen Blitzmikro mit einem eingebauten LCD-Segment-Controller und einem "10-Bit" -Analog-Digital-Wandler (wahrscheinlich näher an 6 Bit und weitere 4 an wertlosem Rauschen). Aus diesem Code kann man nichts lernen, und Sie können ihn anpassen oder verbessern, indem Sie einfach Ihren eigenen Code für ein offeneres und verfügbareres Mikro von Grund auf neu schreiben. Atmel stellt Chips wie den atmega169 her, der über dieselben LCD-Segment-Controller-Pins verfügt, eine öffentliche und gut dokumentierte Programmierschnittstelle, OpenSource-Tools und unzählige Beispielcodes.
Ich nehme nicht an, Ihnen zu sagen, ob sich ein Projekt lohnt oder nicht oder interessant oder nicht. Jeder hat seine eigene Definition von Spaß - und ich sage, haben Sie es. Lassen Sie diese Kaffeemaschine sich verhalten, oder geben Sie ihr einen PID-Regelkreis, oder lassen Sie sie unter Linux laufen und fügen Sie einen CAN-Bus hinzu, damit Ihr Auto mit ihr sprechen kann - verrückt werden. Aber verschwenden Sie nicht Ihre Zeit mit dem Reverse Engineering, das niemandes Zeit für das Reverse Engineering wert ist. Wenn Sie sich nicht so sehr für die Kaffeemaschine interessieren und etwas zurückentwickeln möchten, wählen Sie etwas aus, das Ihnen hilft, Reverse Engineering-Fähigkeiten zu erlernen, und nicht sinnlose Besonderheiten eines proprietären Systems. Oder wählen Sie aus einem anderen Blickwinkel etwas aus, das tatsächlich etwas Interessantes und Wiederherstellbares enthält. Ich bezweifle jedoch, dass irgendetwas, das sich lohnt, nur dort sitzen und darauf warten würde, dass jemand es wegwirft.
Vertrauen Sie mir - es gibt unzählige ebenso interessante Dinge, an denen Sie Ihre Zeit verbringen können, weit mehr, als in eine menschliche Lebensspanne passen kann.Wählen Sie die guten aus, oder die besten von Ihnen können es schaffen, und verzichten Sie auf die kleineren.Auch wenn dies bedeutet, dass Sie niemals die 200 Montageanleitungen lernen, die Ihre Kaffeemaschine zum Ticken bringen.