InfiX
she/her
|
oh es geht was weiter Ich hab übrigens einen USB Anschluss vorgesehen. Die Luxusvariante wär also quasi einen Treiber zu schreiben, der die Steuerung direkt in LinuxCNC (http://www.linuxcnc.org/) integriert. Aber obs das jemals spielt... ich glaub nicht. ...im nächsten jahr dann halt?
|
Castlestabler
Here to stay
|
Runter bekommst die Packages schon wieder, auch mit größeren Sockeln schon gemacht. Brauchen tust aber auf alle Fälle ein feine Endlötlitze.
Die Platine für den Leistungsteil wird aber wohl nicht eingesetzt, die Bohrung sind auf der Platine ziemlich versetzt?
Bei den IC immer auf die kreisrunde Aussparung achten. Die Beschriftung darf beliebig aufgedruckt sein.
Bearbeitet von Castlestabler am 03.12.2014, 17:43
|
Vinci
hatin' on summer
|
Die Platine für den Leistungsteil wird aber wohl nicht eingesetzt, die Bohrung sind auf der Platine ziemlich versetzt? Das ist die Seite für die Durchkontaktierungen, auf der andern Seite passen die Löcher.
Bearbeitet von Vinci am 03.12.2014, 18:46
|
Vinci
hatin' on summer
|
Neuer Display-Treiber ohne Delays und mit diversem Error-Handling. Die Entwicklung mit Eclipse für STM leider immer noch eine Qual und debuggen bleibt ein Abenteuer. Vielleicht wechsel ich bei Zeiten doch mal die IDE. An was man aktuell noch alles denken muss ist einfach eine Katastrophe. Auch die Konfiguration des Controllerst ist imho noch komplett unausgereift. Die Libraries die STM mitliefert sind oft langsam, unübersichtlich und teilweise auch komplett verbuggt bzw. offensichtlich von reinen Programmierern verfasst. In der SPI-Lib etwa wird das 1. gesendete Bit (Read/Write) zur Adresse hinzugezählt... Benutzt man die Library und spricht damit Peripherie an, so stimmt demnach natürlich die Adresse des Datenblatts und die via Lib geschickte nicht überein! Auf sowas muss man erst mal draufkommen, vor allem wenn man nicht vernünftig an der Leitung schnüffeln kann... Auch nett ist ein Bug in STs hauseigenem Konfigurationstool SMT32Cube. Das Tool sollte eigentlich die Initialisierung des Prozessors vereinfachen, in dem sehr viele Dinge über ein GUI eingestellt werden können und das Ding dann fertigen Code ausspuckt. Eigentlich ja eine nette Sache, hätte das Tool bei meiner Clock-Konfiguration nicht die Flash Latency FALSCH gesetzt... Solche Sachen dürfen einfach nicht passieren, die sind nämlich mehr oder weniger unmöglich zu debuggen.
|
Vinci
hatin' on summer
|
Kleine Schritte... Hab heut die, zur Ansteuerung der Halbbrücken notwendige, PWM zum Laufen gebracht. Was sich im ersten Moment relativ banal anhört ist bei der Fülle an Optionen, die der kleine STM32 bietet leider alles andere als einfach. +1600 Seiten Dokumentation wollen gut studiert sein, damits nicht an einem einzelnen Bit scheitert. Wiedereinmal problematisch sind die von ST gelieferten Libs mit denen Timer und PWM initialisiert und gestartet werden wollen. Um die Schaltverluste der Leistungsstufe möglichst gering zu halten wird eine sogenannte phasenkorrekte, bzw. center-aligned PWM verwendet. Der Witz dahinter ist, dass jede PWM-Periode die Reihenfolge der Schaltvorgänge umgedreht wird während das Tastverhältnis jedoch unverändert bleibt. Damit spart man sich im Idealfall die Hälfte (?) der Schaltvorgänge im Gegensatz zur edge-aligned PWM. Was tut man als braver Nutzer? Genau, man initialisiert einfach alle Module nach bestem Gewissen, schmeißt irgendeinen Function Call als Start rein und wartet was sich tut... vergebens. Scheinbar hat bei ST nämlich jemand vergessen, dass man für exakt diesen Fall doch bitte auch den klassischen Update Timer Interrupt (als einen von 4 Quellen des Moduls) aufdrehen sollte. Die Libs verschleiern dermaßen gut was sich tut, dass man nach dem fehlenden Flag eine Weile sucht. Letztendlich hab ichs in eine eigene Funktion gepackt und tada: oben: Interrupt-Routine unten: PWM Software-technisch stellen sich jetzt noch 3 mehr oder weniger größere Punkte: - Messung der Phasenströme und der Zwischenkreisspannung direkt mit Hilfe des DMA Controllers (kein Plan wie der funktioniert ) - Start / Stop / Beschleunigen / Bremsen - Inputs Drehgeber / Parallel-Port für Drehzahlvorgabe - eigenes browsbares GUI implementieren um die Spannungs-Frequenzkurve ändern zu können Weiters hab ich mittlerweile ein 0815-Trafonetzgerät mit 2.WK-Hardware (naja, ev. Nachkriegs-HW ) gebaut, dass 13A@65V liefert. Photos davon gibts dann nächste Woche oder so. /edit Do-Want digitales Speicheroszi mit 4 Kanälen
|
Vinci
hatin' on summer
|
Netzgerät aka Riesn-Kupfer-Grab Software-technisch ist leider immer noch einiges offen. Ich habs etwa bis dato nicht geschaft den sogenannten Triple-ADC Mode des Controllers mit DMA und Timer-Trigger zum Laufen zu bringen. Das ist leider enorm wichtig, da ich die Messung der Phasenströme mit einem simplen Shunt realisieren möchte und diese Variante im gegensatz zu Sigma-Delta oder sonstigen isolierten Messverfahren einen entscheidenden Nachteil besitzt... Und zwar ist die Messung ausschließlich dann möglich, wenn der untere Teil der Halbbrücke die jeweilige Motorspule gegen Masse schaltet. Bei PWM-Frequenzen jenseits der 20kHz und hohen Modulationsgraden (Spannungsverhältnis zw. "Eingangs" und "Ausgangsspannung") bewegen sich die Zeitfenster bereits im 1-2stelligen Mikrosekundenbereich... Generell läuft die Wandlung zwar... dummerweise jedoch nur exakt 1x nach dem Initialisieren des ganzen Zeugs. Feuert man den ADC erneut, so wandelt dieser zwar brav, der DMA Controller weigert sich jedoch die Messwerte aus den Registern des ADCs in den Flash zu kopieren... warum auch immer. /edit Hah! No new DMA request is issued to the DMA controller if the DDS bit is cleared to 0 in the ADC_CR2 register (this avoids generating an overrun error). However the DMA bit is not cleared by hardware. It must be written to 0, then to 1 to start a new transfer. S: 267 Und geht scho.
Bearbeitet von Vinci am 02.01.2015, 15:22
|
smashIt
master of disaster
|
|
Vinci
hatin' on summer
|
|
mat
AdministratorLegends never die
|
Schaut schon echt gut aus!
|
InfiX
she/her
|
DIY at it's finest, I like.
|
Vinci
hatin' on summer
|
Ich hab die Tage mal testweise den Leistungsteil angeworfen und hab da noch ein etwas seltsames Problem. Aus irgendeinem Grund liegen an Silicon Labs 8233 Gate Treiber 5,5V am Ausgang der Highside an sobald ich beide Eingänge low schalte. Das stimmt irgendwie nicht mit dem Truth Table des Datenblatts S.21 überein, in dem eindeutig steht, dass beide Ausgänge low sind, solang auch die Eingänge low sind. Ansonsten schaltet die Brücke wie gewünscht High- und Lowside Teil durch... /edit ok, das Verhalten dürfte normal sein offenbar bezieht sich das Datenblatt mit "low" hier auf GNDA und nicht auf den eigentlichen PowerGND... hätte man eigentlich auch wissen sollten/müssen /edit2 Ich bin übrigens vom STM32F4 schwer begeistert. Vor nicht allzulanger Zeit war ich noch der Meinung, dass Microchip schlichtweg die bessere Peripherie bietet und Takt/Speicher/etc. nicht alles is... Aber wenn man mal durchschaut hat was der kleine kann, dann braucht man sich um so gut wie gar nichts mehr kümmern. Grad eben bin ich draufgekommen, dass man den ADC von einer PWM Flanke nach Wahl triggern lassen kann. Die ADC Wandlung passiert somit (fast) ohne einzigen CPU Befehl!!! Das is schon ziemlich absurd...
Bearbeitet von Vinci am 14.01.2015, 19:30
|
Vinci
hatin' on summer
|
Als bald eine der letzten Aufgaben hab ich heute den Bremschopper getestet. Dieser verhindert, dass ein bremsender und damit generatorisch laufender Motor Energie in den Zwischenkreis zurückspeist und damit die Spannung erhöht. Zwar ist ein Großteil der Elektronik (inkl. den Sensoren) vor Überspannung geschützt, doch die Power FETs selbst gehen bei etwa 150V ein. Ursprünglich hab ich für den Chopper eigentlich den selben FET vorgesehen, der auch in den Schaltbrücken Verwendung findet, lediglich ohne Gate Treiber sondern direkt von 2 bipolar Transistoren getrieben. Diese als "Bipolar Totem" bezeichnete Schaltung kommt eigentlich recht häufig vor... wollte aber auf meiner Platine schlichtweg nicht funktionieren. Ich hab dann kurzerhand umgesattelt und einen der Transistoren gegen einen Kleinsignal FET getauscht, der nun den großen Power FET schaltet. Das is zwar wesentlich langsamer, weil ein geladener FET quasi "nicht mehr leer gesaugt" werden kann, aber immer noch um etliche Zehnerpotenzen schnell genug für den Chopper, der aktuell auf ~100Hz läuft. Interessanterweise erzeugt diese Frequenz bei einem simplen Test mit einem Glühlämpchen als Last ein ziemlich nerviges Brummen... da muss man also mit der Frequenz wohl noch nach oben. Bei rund 20% Überspannung fängt der FET an den Chopper zu pulsen. Bei etwa 67% Überspannung schaltet der FET den Chopper komplett ein. In Zukunft wird dann ein Lastwiderstand das arme Lamperl ersetzen. Die gesamte Routine mit den Berechnungen der Raumzeiger-Winkel und Co ist mittlerweile ebenfalls implementiert und passt mit ~34µs Rechenzeit ausgezeichnet in die 50µs PWM Periode. Damit steht der Echtzeit-Implementierung defakto nichts mehr im Wege und auf Look-Up Tables kann verzichtet werden.
|
Vinci
hatin' on summer
|
Grml. Ich hab heut festgestellt, dass die eigentlich vorhergesehene Potentialtrennung zwischen Digital- und Leistungsteil in meinem Design irgendwie nicht so richtig funktionieren will. Meine Annahme von vorn herein war eigentlich, dass die digitale und die Leistungserde sich in ihrem tatsächlichen Potential so gut wie nicht unterscheiden werden und vom Leistungsteil bezogene Messspannungen so direkt rückgeführt werden können. Das is zwar unglaublich russisch, dafür müsste man halt nicht jede Pippifax-Messung potentialgetrennt durchführen. Jetzt stellte sich dummerweise heraus, dass die beiden Massen um verfluchte 1,4V unterschiedlich sind... bei 3,3V digitaler Versorgung kann man das komplette Messkonzept somit kübeln, sofern man die Erden nicht zusammenlegt. Das dürfte zwar im großen und ganzen "so irgendwie" funktionieren, is aber sehr unschön. Ev. überarbeite ich die Versorgungen nochmal... Sonst muss ich vermutlich den FI in der Werkstatt ausbaun.
|
roscoe
tinkerer
|
Ist der ausgebaute Stadl ein offizielles eigenes Wohngebäude?
Würde Dir ein Tektronix 465 in irgendeiner Weise helfen? Disclaimer: Ich habe absolut keine Ahnung von Oszilloskopen, aber unter anderem dieses herumstehen.
|
wergor
connoisseur de mimi
|
vote 4 FI ausbauen
|