Forum: Mikrocontroller und Digitale Elektronik LMC555 - STM8 voltage glitching


von Alex (Gast)


Lesenswert?

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

von Harald A. (embedded)


Lesenswert?

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.

von Axel S. (a-za-z0-9)


Lesenswert?

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?

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Es gibt schon lange professionelle Dual-Monoflops: CD4538, 74HC123.
Frickelschaltungen mit 555 sind daher nur verschwendete Zeit.

von Alex (Gast)


Angehängte Dateien:

Lesenswert?

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?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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.

: Bearbeitet durch Moderator
von Peter D. (peda)


Lesenswert?

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.

von Harald A. (embedded)


Lesenswert?

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

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...

: Bearbeitet durch Moderator
von Alex (Gast)


Lesenswert?

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.

von Harald A. (embedded)


Lesenswert?

> 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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.