Hallo Leute,
ich bin beim Versuch, die Firmware eines gesperrten STM8 zu sichern, auf
folgenden Blogbeitrag gestoßen:
https://jrainimo.com/build/2022/01/dumping-firmware-with-a-555/
Erst einmal geht es mir darum, die Schaltung überhaupt ans Laufen zu
bringen.
Ich habe die Schaltung sauber auf Lochraster aufgebaut und mehrfach auf
fehlende Verbindungen und Kurzschlüsse geprüft. Die Stromaufnahme nach
dem Spannungsregler beträgt 50mA. Ist das plausibel?
Als Mosfet verwende ich einen IRL510, hätte aber noch IRF 520N,
IRFL014TRPBF und IRFU014PBF da zum Testen. Die 5V erzeuge ich mit einem
7805, außer diesem Spannungsregler wird nichts warm.
Leider steht mir nur ein sehr günstiges DSO Shell 150 Oszilloskop zur
Verfügung. Den Resetpuls des STM8 (GND/RESET der SWIM-Schnittstelle am
ST-Link V2 beim "Read" im ST Visual Programmer) konnte ich jedoch ganz
gut und reproduzierbar messen.
(nennt man den Puls an der RESET-Leitung der SWIM-Schnittstelle
Resetpuls und ist das auch der Puls, der die 555-Schaltung triggern
soll?).
Wie triggere ich die Schaltung eigentlich händisch korrekt?
Wie würde mein verzögerter Puls fürs "voltage glitching", den der Mosfet
ausgeben soll in etwa aussehen und kann ich den kurzen Puls überhaupt
mit dem DSO Shell (maximal 10uS Zeitbasis) sehen?
Viele Grüße und vielen Dank schon einmal,
Alex
Er schreibt ja auch:
Now, the logical way to do this would be to use an external
microcontroller to wait for the programmer to reset the system, wait a
set period of time, and then trigger the output transistor to glitch the
voltage rail. That’s boring! You know what else can do that? That’s
right, a pair of 555s.
Er macht das nur deshalb mit dem 555 weil ihm das Retro-Feeling so
anmacht. Und dann nimmt er auch noch sehr spezielle 555, weil die
Standard-Dinger das Timing nicht können. Das ist so wie eine Reise von
Hamburg nach München, wo einer das Laufen bevorzugt, weil er es so schön
findet.
Wenn es Dir um das Auslesen geht, würde ich mich mit dem eigentlichen
Ansatz beschäftigen und das in einen uC packen. Dieser eigentliche
Ansatz ist auf der Seite kaum beschrieben.
Alex schrieb:> ich bin beim Versuch, die Firmware eines gesperrten STM8 zu sichern,> auf folgenden Blogbeitrag gestoßen:> https://jrainimo.com/build/2022/01/dumping-firmware-with-a-555/> Erst einmal geht es mir darum, die Schaltung überhaupt ans Laufen zu> bringen.
Und? Was erwartest du von uns?
Das ist ein Hackerangriff auf den Ausleseschutz. Noch dazu mit
eigentlich untauglichen Bastlermethoden. Das Timing stimmt in vielleicht
in einem von einer Million Versuchen. Oder einer Milliarde. Oder nie.
Wer weiß das schon. Die Schaltung wird niemals "laufen".
Du kannst meinetwegen gerne deine Zeit damit verplempern. Aber was
glaubst du, gibt dir das Recht, das gleiche mit unserer Zeit zu tun?
Wozu ist ein Forum nochmal da?
Ich glaube, hier haben schon sehr viele Leute ihre Fragen gestellt, wenn
sie nicht mehr weiter wussten und einigen wurde geholfen. Auch wenn ich
letztlich selbst den Fehler finde, hat mich der Prozess, hier
nachzufragen vielleicht zum Fehler geführt.
Ich messe mir seit Tagen den Wolf und finde den Fehler nicht, daher
dachte ich, dass ein geübtes Auge in Kombination mit meiner
Fehlerbeschreibung evtl. schnell etwas Auffälliges erkennt.
Alle Vcc und GND-Verbindungen stimmen jedenfalls. Die LMC555CM haben je
100n von Vcc nach GND und ich habe jetzt einen
Trigger(https://praktische-elektronik.dr-k.de/Bauelemente/Be-Timer555.html)
mit 2M Ohm,10nF und 220 Ohm nach Vcc aufgebaut. Es passiert nichts.
Die gemessenen Spannungen (eindeutige Gleichspannung am Oszi) sind bei
beiden LMC555 identisch. Kann das grob hinkommen?
Alex schrieb:> ich habe jetzt einen Trigger> (https://praktische-elektronik.dr-k.de/Bauelemente/Be-Timer555.html)> mit 2M Ohm,10nF und 220 Ohm nach Vcc aufgebaut.
Und was ist jetzt da was in welcher der dortigen Schaltungen?
Und wie wird der "Trigger" getriggert?
> ich habe jetzt einen Trigger> (https://praktische-elektronik.dr-k.de/Bauelemente/Be-Timer555.html)> mit 2M Ohm,10nF und 220 Ohm nach Vcc aufgebaut.
Warum hast du nicht einfach die Schaltung vom dem nachgebaut, der es
schon geschafft hat?
> Die gemessenen Spannungen (eindeutige Gleichspannung am Oszi)
Was für ein Oszi?
> sind bei beiden LMC555 identisch. Kann das grob hinkommen?
Eine Gleichspannung in einem Bereich von 0,24-1,64V? Wie geht das? Und
wenn es keine Gleichspannung ist, was ist es dann?
> Ich messe mir seit Tagen den Wolf und finde den Fehler nicht, daher> dachte ich, dass ein geübtes Auge in Kombination mit meiner> Fehlerbeschreibung evtl. schnell etwas Auffälliges erkennt.
Zeig doch mal deinen Schaltplan (am besten gleich mit einem
vernünftigen Schaltplansymbol und nicht mit 8-poligen IC-Gehäusen...)
und deinen Aufbau. Schreib die gemessenen Spannungen in diesen
Schaltplan und zeig einen Screenshot deiner Oszi-Messung. Dann kann
man dir bei deinem Problem helfen.
Alex schrieb:> Die gemessenen Spannungen (eindeutige Gleichspannung am Oszi) sind bei> beiden LMC555 identisch. Kann das grob hinkommen?
Ja.
Das sollen 2 Monoflops hintereinander sein. Die low Flanke am Eingang
triggert den 1. und der dann den 2. Der 2. schaltet dann den FET ein für
die eingestellte Dauer.
Die Potis sind allerdings arg klein (300R, wenn ich die Hyroglyphen
richtig entziffere). Daher auch der hohe Strom von 50mA.
Überhaupt ist die Schaltung sehr schlecht lesbar, vielleicht sind
deshalb Werte falsch.
Ich hatte es oben ja schon einmal angedeutet, aber geht es Dir primär um
die Inbetriebnahme dieser 555 Schaltung oder um das Auslesen des
Controllers? Weil, wenn Du schon kein gutes Scope zur Hand hast, wirst
Du mit dem Timing eines uC einfacher zu kontrollierende Timings
erstellen können.
Peter D. schrieb:> Die Potis sind allerdings arg klein (300R
Wenn man Zeiten im 100ns Bereich ausgeben will und den Kondensatorwert
mt 10nF ungünstig hoch ansetzt, dann passt das schon. Zur Ermittlung der
maximalen Frequenz werden ähnlich niederohmige Widerstände verwendet.
Und wenn man sich die Grafik "Time Delay" mal genauer anschaut, dann
sieht man auch, dass ein 1nF Kondensator und 10x höhere Widerstandswerte
die bessere Wahl wären. Aber gefrickelt ist halt gefrickelt...
Harald A. schrieb:> Ich hatte es oben ja schon einmal angedeutet, aber geht es Dir primär um> die Inbetriebnahme dieser 555 Schaltung oder um das Auslesen des> Controllers? Weil, wenn Du schon kein gutes Scope zur Hand hast, wirst> Du mit dem Timing eines uC einfacher zu kontrollierende Timings> erstellen können.
Primär geht es mir um das Auslesen des STM. Aber ich habe die Schaltung
wirklich sehr sauber aufgebaut und es wäre schade, wenn ich jetzt den
Fehler nicht finde. Können meine gemessenen Werte am LMC555 Aufschluss
darüber geben, ob die LMC555s defekt sind?
Ich könnte auch noch größere Kondensatoren testweise parallel schalten,
vielleicht sehe ich dann, ob überhaupt eine Funktion gegeben ist, oder?
Am Testpunkt messe ich auch nur 5,19V - das kann doch eigentlich nicht
sein.
Zumindest da müsste ich ein Signal sehen, oder?
Wo messe ich mein Signal am Mosfet? Mein "Oszi" klemmt an Drain des
Mosfet und an GND. Ist das korrekt?
Ich erstelle jetzt erstmal einen vernünftigen Schaltplan - mit Trigger
und Spannungsregler.
Als Mikrocontroller hätte ich einen STM8 da, der könnte den verzögerten
Puls erzeugen, richtig?
Ich hatte auch schon nach passendem Code oder Beispielen gesucht, bin
aber nicht fündig geworden.
> Als Mikrocontroller hätte ich einen STM8 da, der könnte den verzögerten> Puls erzeugen, richtig?
Müsstest Du nachschauen, ob man damit einen 125ns(?) Puls hinbekommt,
weiß nicht, wie der so ausgestattet ist. Ich würde nach einem passenden
Timer suchen, der durch ein externes Ereignis (dein Reset) gestartet
werden kann.
> Ich hatte auch schon nach passendem Code oder Beispielen gesucht, bin> aber nicht fündig geworden.
Code oder Beispiele für diese absolute Nischenanwendung wird es kaum
fertig geben.