Hallo
Ich habe hier schon mal gefragt wegen Reverse engineering der Software
eines BLDC Controllers. Leider bin ich nicht in der Lage ein Disassembly
zu lesen (Und werde es der Meinung eines erfahrenen Programmierers den
ich kenne und gefragt habe und den nächsten Jahren auch noch nicht sein)
aber ich habe eine Stelle im Code des Controllers gefunden, die
irgendwie... interessant aussieht, kann mir vielleicht jemand einen
Hinweis geben, was das ist, oder lässt sich das nicht feststellen? Siehe
angehängtes Bild.
Da ist weder ein Disassembly zu sehen noch Code zum zerflücken.
Da ist aber eine schöne Tabelle zu sehen.
Bastler schrieb:> und den nächsten Jahren auch noch nicht sein
Nun mal nicht so pessimistisch, keine 10 Jahre und schon kannst du das
auch.
Oh man. Hier ist ja mal wieder dicke Luft.
Seid Ihr denn nicht in der Lage mit den Unmengen an Information auch nur
bruchstueckhafte Ergebnisse zu liefern?
> Ich habe hier schon mal gefragt wegen Reverse engineering der Software> eines BLDC Controllers. Leider bin ich nicht in der Lage ein Disassembly
Da du noch nichtmal den Unterschied zwischen Dissassembler und Hexfile
kennst, bist du wohl noch SEHR am Anfang.
> ich habe eine Stelle im Code des Controllers gefunden, die> irgendwie... interessant aussieht
Also ich kann da nichts interessantes sehen. Aber wir koennten auch
unterschiedliche Definitionen von 'Interessant' haben.
> Nun mal nicht so pessimistisch, keine 10 Jahre und schon kannst du das> auch.
Uebertreib mal nicht. Als 16jaehriger hat es ein Jahr gedauert bis ich
Z80 Hexfiles in der Regel (manchmal musste schon noch nachkucken) direkt
lesen konnte. Aber die Jugend von heute kann ja nix mehr und hat es viel
zu einfach. (wollte ich schon immer mal sagen :-D)
Olaf
Natürlich Weiß ich, dass in allen BLDC-Controllern dieser Welt dieselben
µC verbaut sind. Deswegen ist wohl töricht zu fragen, welche µC das ist?
Oder gar noch: welcher BLDC-Steller/Regler das ist?
Vielleicht bringt es besseres Verständnis der Tabelle, wenn man sie
binär und als Liste darstellt. Ich hab es jetzt nicht gemacht, aber oft
erkennt man dann Muster.
Bastler schrieb:> Siehe> angehängtes Bild.
Wichtig ist natürlich den Code so zu posten, daß keiner damit was
anfangen kann, ohne ihn erstmal abzutippen.
Und auch nur einen kleinen Ausschnitt, damit wirklich niemand was
erkennen kann.
Bravo!
Hex- oder Binärdateien sind bei Dir wohl noch nicht erfunden worden?
Peter D. schrieb:> Bastler schrieb:>> Siehe>> angehängtes Bild.>> Wichtig ist natürlich den Code so zu posten, daß keiner damit was> anfangen kann, ohne ihn erstmal abzutippen.
Ich werde, wenn ich mal wieder ein Bild posten will, den Hexdump dazu
hochladen -- als Ausgleich.
Der arbeitet doch mit Hall-Sensoren. Schreib die Firmware neu, dass geht
schneller, als den Dump zu untersuchen, und ist in diesem Fall auch
nicht schwer.
Wenn du C oder C++ kannst, dann schon, übrigens hat der Motor keine
Hallsonsoren, sondern nur drei weitere Leitungen neben den drei
Hauptphasenkabeln. Diese drei weiteren Leitungen sind an die
Motorwicklung angeschlossen, wie der Controller damit die Position des
Motors rausfindet, ist mir schleierhaft.
Aber warum hat der Motor dann die drei dünneren Kabel, die mit den
Spulen verbunden sind, ein sensorless Controller hat normalerweise nur
drei Leitungen, die drei Phasen. Dieser hat aber sechs, drei
Phasenleitungen und drei dünnere Kabel, die wie schon geschrieben an die
Spulen im Motor gekoppelt sind.
Leitungslänge ist mehr als 20 cm. Gibt es denn keine Möglichkeit,
den Code zu zerlegen, immerhin würde mich schon interessieren, wie das
Teil funktioniert. Und was Lime da gemacht hat. Ich hab die .hex mal
nochmal hier angehängt, mann, wenn ich nur Assembler lesen könnte...
Wenn das ein Antrieb ohne Schlupf ist (Motorroller, Scooter, ...), dann
wir der in der Anlaufphase eine Sinuskommutierung mit Stromregelung
machen und dann ab einer bestimmen Drehzahl auf BEMF-Detektion (und ggf.
Blockkommutierung) umschalten. Wenn die drei zusätzlichen Leitungen
tatsächlich nicht von einem Encoder (Hall, optisch, ...) kommen.
Eigentlich braucht man sie nicht, ich habe bei der BEMF-Detektion auch
bei großen Leitungslängen noch kein Problem gehabt (die zu messende
Phase ist ja auch stromlos bei BEMF-Detektion).