Die Frage nach dem Schaltplan welcher konventionelle Hall Sensor Eingänge an der FOC zeigt plus Software welche auf dem Motor läuft habe ich bisher auch immer gesagt, es sind keine klassischen Hallsensoren sondern ein Positionsencoder mit Microcontroller welcher eben eine Firmware hat.
Ich hab mir jetzt aber mal die Firmware des Encoders genauer angeschaut, in der ganzen EVO Hektik wurde sogar der Schlüssel für die Firmware mitgegeben, was das ganze einfacher macht.
Hersteller des Encoders ist Lingbo, das Produkt nennt sich LB ENCODER 1300B.
CPU/Microcontroller des ganzen ist eine Infineon XMC1300.
Die Firmware ist tatsächlich nicht so komplex wie vermutet, es werden keine speziellen Register wie die CORDIC Berechnungsfunktionen angesprochen, es gibt aber auch keine klassische 6 Schritt-Hallsensortabelle welcher aus dem Sensorring einfache Hallsignale bereitstellen könnte.
Ein großer Block ist der Selbsttest und ob der Flash an diversen Stellen diverse Magic Bits hat, wenn einer davon nicht stimmt Abbruch des Programms. Zudem wird bei jedem Durchlauf geprüft ob das Programm ggf. geändert worden ist.
Wenn Angst des Kopierens die Zuverlässigkeit des Produkts gefährdet, muss man sich echt überlegen, haben die noch alle Tassen im Schrank.
Ich mein ja nur ... das Teil sitzt innerhalb eines Elektromotors der fette Magnetfelder, PWM... insgesamt hohe EMV Pegel hat, es könnte vllt doch mal ein Bit flippen, hier würde auch im leeren Teil des RAMs ein Programmstopp............. MOMENT, wir haben ja den kuriosen Fehler 120/123... ahhh. Gut zurück zum Bauteil..........
Die digitalen Pins auf der CPU sind wie folg konfiguriert:
P1.1 Vermutlich Enable Signal für RS485/422 Treiber für bidirektionale Kommunikation wie das Firmware-Update
..................┌───────────────── Encoder PCB ───────────────┐
FOC SCLK± → [RS-422-Empfänger] → single-ended → P1.0 (µC-Eingang)
FOC DATA± ← [RS-422-Treiber] ← single-ended ← P0.3/P0.4 (µC-Ausgang)
..................└─────────────────────────────────────────┘
Es werden zudem 5 Analogeingänge initialisiert, was auf zwei klassische Bauformen der Erfassung schließen könnte....
- 3 lineare Hall-Signale (120° versetzt) + 2 Hilfsgrößen (Versorgungsspannung, Temperatur) oder
- differenzieller Sin/Cos-Magnetsensor (sin+/sin−/cos+/cos−) + 1 Referenz
Was spannend und wieder eben auf diese Serie der CPU speziell für Motoransteuerung ist, dass die ADC Eingänge nicht wie üblich abgefragt werden (Lese Eingänge, laufe das Programm durch, schreibe Ausgänge), sondern die ADCs laufen/messen selbstständig (Infineons VADC Technik) schreiben Zahlen in ihre Register und melden sich per Interrupt/ISR ans Hauptprogramm, hier neuer Wert.
Die Kommunikation zur FOC ist ein klassischer serieller Encoder Bus (SCLK (Takt) und DATA) die sogar differentiell ausgeführt sind, daher SCLK+ und - sowie Data genauso und dass Interface zum Update ist ein RS485 Interface. Also die Kommunikation ist also robust ausgeführt, ich hab schon RS485 Busse mit rund 1km und rund 200 Geräten gesehen, warum das hier auf so kurze Distanz so Probleme macht, alles gute Fragen.
Diese Encoder Busse werden in der Industrie in CNC Maschinen und Co genutzt, es gibt verschiedene Ausführungen davon und jeder Encoder Hersteller macht so bisschen auch sein eigenes Süppchen.
Warum dieser Aufwand?
Dann stellt sich sicher jedem die Frage, warum musste es bei diesem Motor so eine komplexe Lösung sein, statt klassische Hallsensoren oder ein richtiger Rotorpositionssensor mit Winkelberechnung wie der oft bei Elektroautos verwendet wird.
Vermutung 1: Auflösung & Laufruhe. Klassische Hall-Sensoren liefern nur 6 Zustände pro elektrischer Umdrehung (60°-Raster). Für Blockkommutierung reicht das, aber der Motor läuft dadurch bei niedriger Drehzahl "rau" und „rastend". Der Magnetsensor liefert den absoluten Winkel hochaufgelöst — Tja aber leider gibt es keine Winkelberechnung in der Firmware nur eine fixe State Machine für die Analogwerte.
Vermutung 2: Fertigungstoleranz. Drei echte Hall-Sensoren mechanisch präzise auf 120° elektrisch zu platzieren, ist aufwendig je nach Bauweise, Temperaturstabilität etc. daher könnte man nachträglich die Kisten kalibrieren.... — es gibt Kalibrierungscode der auch abgerufen wird und oh weeh wenn da ein Bit nicht stimmt, stellt das Programm sein Ablauf ein, das Firmwareupdate ist ein komplettes Flashabbild somit bekommt jeder die gleichen "Kalibrierdaten" also auch nicht.
Vermutung 3: Zündwinkel-Voreilung. Wenn die Firmware den echten Winkel berechnen würde, kann sie drehzahlabhängige Kommutierungs-Voreilung einrechnen (mehr Wirkungsgrad/Drehmoment im oberen Bereich). Mit fest verbauten Hall-Sensoren geht das nicht. — Meiner Meinung nach eher Aufgabe der FOC, statt eines Sensormoduls, aber komplett auschließen kann man es nicht.
Vermutung 4: Robustheit & Diagnose. Der µC kann das Analogsignal filtern, Plausibilität prüfen, Störimpulse verwerfen, Temperatur kompensieren und Fehler erkennen. Rohe Hall-Sensoren geben jeden Störimpuls 1:1 an den Controller weiter.
Vermutung 5: Absolute Lage sofort beim Einschalten ähnlich wie #1 aber da keine Winkelberechnung stattfindet auch unplausibel.
----------------------------------
Was heißt das denn nun was die Fehlersuche angeht?
Leider leider nichts gutes, sehr viel komplexe Technik, Software und keinerlei Doku oder Diagnosticinterface welches man anzapfen könnte.
Geht die EVO garnicht mehr oder wenigstens noch ein paar Meter / paar Umdrehungen des Motors?
War dieses berücktigte Motorupdate bei dir schon gemacht worden? Wenn nein könnte ein drüber flashen den Encoder ggf. wieder in Gang bringen, da der Flash komplett überschrieben wird, Interface, Stecker und Software habe ich da.
Wenn eh nix mehr geht, verliert man ja nicht wirklich was, also Motor demontieren und öffnen, Leitungen anschauen, Leitungen durchklingeln, Bilder ohne Ende machen, ggf. Sensorring ausbauen, schauen ob was durchgeschmort ist, oder abgeschliffen sollte sich was gelöst haben etc.
Vielleicht sind da noch weitere Teilenummern drauf und man kann das Ding über Umwege einzeln kaufen......
Bist du Elektroniker oder kennst welche? Vor dem Ausbau vielleicht mit dem Speicher Oszi mal auf die Datenleitungen schauen.....
Ansonsten habe sowohl eine known-working FOC und einen Motor (9300km) da, die testweise oder gegen Geld auch mal das Haus wechseln dürfen.
Defekte EVOs gibts auch immer mal wieder günstig auf kleinanzeigen und Co.
https://www.kleinanzeigen.de/s-anzeige/ ... 1-306-5060
------------------------------