-
Gesamte Inhalte
3.658 -
Benutzer seit
-
Letzter Besuch
-
Tagessiege
8
Inhaltstyp
Profile
Forum
Articles
Wiki
Galerie
Kalender
Alle erstellten Inhalte von barney
-
Der Temperatursensor MOSFET wird in: mc_interface.c ausgelesen fdata.temperature = NTC_TEMP(ADC_IND_TEMP_MOS1); [color=Red]fdata.temperature_motor = NTC_TEMP(ADC_IND_TEMP_MOTOR); [/color] Ab hier verstehe ich seine Variablen nicht mehr....
-
Ja, hier hatte er einen "Designfehler" drin.
-
Wenn ich das richtig gesehen habe musst du mehrere Files erweitern: hw_4x.h -> den richtigen Pin wie im Schaltplan eintragen für die Motortemperatur: /* * ADC Vector * * 0: IN0 SENS3 * 1: IN1 SENS2 * 2: IN2 SENS1 * 3: IN5 CURR2 * 4: IN6 CURR1 * 5: IN3 NC * 6: Vrefint * 7: IN9 ADC_EXT2 * 8: IN12 AN_IN * 9: IN4 TEMP_MOSFET * 10: IN15 ADC_EXT [color=Red] * 11: IN10 TEMP_MOTOR[/color] */ im selben File folgende Zeile nachtragen: // ADC Indexes #define ADC_IND_SENS1 2 #define ADC_IND_SENS2 1 #define ADC_IND_SENS3 0 #define ADC_IND_CURR1 4 #define ADC_IND_CURR2 3 #define ADC_IND_VIN_SENS 8 #define ADC_IND_EXT 10 #define ADC_IND_EXT2 7 #define ADC_IND_TEMP_MOS1 9 #define ADC_IND_TEMP_MOS2 9 #define ADC_IND_TEMP_MOS3 9 #define ADC_IND_TEMP_MOS4 9 #define ADC_IND_TEMP_MOS5 9 #define ADC_IND_TEMP_MOS6 9 #define ADC_IND_TEMP_PCB 9 [color=Red]#define ADC_IND_TEMP_MOTOR 10[/color] #define ADC_IND_VREFINT 6 In commands.c case COMM_GET_VALUES: ind = 0; send_buffer[ind++] = COMM_GET_VALUES; buffer_append_float16(send_buffer, NTC_TEMP(ADC_IND_TEMP_MOS1), 1e1, &ind); buffer_append_float16(send_buffer, NTC_TEMP(ADC_IND_TEMP_MOS2), 1e1, &ind); buffer_append_float16(send_buffer, NTC_TEMP(ADC_IND_TEMP_MOS3), 1e1, &ind); buffer_append_float16(send_buffer, NTC_TEMP(ADC_IND_TEMP_MOS4), 1e1, &ind); buffer_append_float16(send_buffer, NTC_TEMP(ADC_IND_TEMP_MOS5), 1e1, &ind); buffer_append_float16(send_buffer, NTC_TEMP(ADC_IND_TEMP_MOS6), 1e1, &ind); buffer_append_float16(send_buffer, NTC_TEMP(ADC_IND_TEMP_PCB), 1e1, &ind); [color=Red]buffer_append_float16(send_buffer, NTC_TEMP(ADC_IND_TEMP_MOTOR), 1e1, &ind); [/color] in mc_interface.c die Routine für die Übertemperaturbehandlung MOSFET auf Motor umkopieren.. in typedef.c typedef struct { float v_in; float temp_mos1; float temp_mos2; float temp_mos3; float temp_mos4; float temp_mos5; float temp_mos6; float temp_pcb; [color=Red]float temp_motor;[/color] float current_motor; Ich nur die Routine für den ADC nicht...
-
Kleiner Fehler in der Firmware für die 10er Hardware: * ADC Vector * * 0: IN0 SENS3 * 1: IN1 SENS2 * 2: IN2 SENS1 * 3: IN8 CURR2 * 4: IN9 CURR1 [color=Red] * 5: IN3 TEMP_MOSFET[/color] * 6: Vrefint * 7: IN6 ADC_EXT2 * 8: IN12 AN_IN * 9: IN4 TX_SDA_NSS * 10: IN5 ADC_EXT [color=Red]* 11: IN3 TEMP_MOTOR[/color] Ist bei der 8ter Hardware richtig getrennt. Stimmt auch mit dem Schaltplan überein.
-
commands.c case COMM_GET_VALUES: ind = 0; send_buffer[ind++] = COMM_GET_VALUES; [color=Red] buffer_append_float16(send_buffer, NTC_TEMP(ADC_IND_TEMP_MOS1), 1e1, &ind); buffer_append_float16(send_buffer, NTC_TEMP(ADC_IND_TEMP_MOS2), 1e1, &ind); buffer_append_float16(send_buffer, NTC_TEMP(ADC_IND_TEMP_MOS3), 1e1, &ind); buffer_append_float16(send_buffer, NTC_TEMP(ADC_IND_TEMP_MOS4), 1e1, &ind); buffer_append_float16(send_buffer, NTC_TEMP(ADC_IND_TEMP_MOS5), 1e1, &ind); buffer_append_float16(send_buffer, NTC_TEMP(ADC_IND_TEMP_MOS6), 1e1, &ind); buffer_append_float16(send_buffer, NTC_TEMP(ADC_IND_TEMP_PCB), 1e1, &ind);[/color] buffer_append_float32(send_buffer, mc_interface_read_reset_avg_motor_current(), 1e2, &ind); buffer_append_float32(send_buffer, mc_interface_read_reset_avg_input_current(), 1e2, &ind); buffer_append_float16(send_buffer, mc_interface_get_duty_cycle_now(), 1e3, &ind); buffer_append_float32(send_buffer, mc_interface_get_rpm(), 1e0, &ind); buffer_append_float16(send_buffer, GET_INPUT_VOLTAGE(), 1e1, &ind); buffer_append_float32(send_buffer, mc_interface_get_amp_hours(false), 1e4, &ind); buffer_append_float32(send_buffer, mc_interface_get_amp_hours_charged(false), 1e4, &ind); buffer_append_float32(send_buffer, mc_interface_get_watt_hours(false), 1e4, &ind); buffer_append_float32(send_buffer, mc_interface_get_watt_hours_charged(false), 1e4, &ind); buffer_append_int32(send_buffer, mc_interface_get_tachometer_value(false), &ind); buffer_append_int32(send_buffer, mc_interface_get_tachometer_abs_value(false), &ind); send_buffer[ind++] = mc_interface_get_fault(); // TODO: send FOC values id, iq, abs commands_send_packet(send_buffer, ind); break; buffer_append_float16(send_buffer, NTC_TEMP(ADC_IND_TEMP_PCB), 1e1, &ind); -> steckt hier die Motortemperatur drin, oder ist das der Temperatursensor für die MOSFETs? Suche geht weiter....
-
hwconf hw_410.h -> * 11: IN3 TEMP_MOTOR wurde schon gesetzt Wenn du auch nach TEMP_MOSFET im Quellcode suchst, sehe ich auf Anhieb nicht, ob dies bei der Motorsteuerung berücksichtigt wird. Suche weiter...
-
Ich muss mir die Sourcen nochmal ziehen. Ich melde mich.
-
Er musste das BLDC-Tool, sowie die Firmware erweitern. Leider ist diese Modifikation etwas her und seine Geschwindigkeit die Software "anzupassen" war erstaunlich. Ich gebe dir da nicht viel Hoffnung, es sei, du bis oder kennst einen QT-Spezialisten für das BLDC-Tool. In der Firmware müsstest du Anpassungen durchführen, die ähnlich die die Akkuspannung, den Motor abregelt, wenn die Temperatur die erste Grenze überschreitet. Motor aus, wäre dann beim Überschreiten der Sicherheitsgrenze. Ich würde an deiner Stelle noch etwas warten. :cornut: Die BLDC-Tool Anpassung war die kleinste Baustelle, da du den Temperatur-Code für die MOSFETs kopieren kannst.
-
Doch, da ist ein Unterschied in der aktuellen Version! Im FOC Modus wurde der Anlauf durch den Open-Loop-Modus verbessert. D.h. Der Motor wir "ungeregelt" bis zur einer Drehzahl "mitgerissen", bis die BACK-EMF zuverlässige Daten liefert. Ab dieser Drehzahl läuft der Motor im FOC-Modus.
-
Die Temperatur wird in der aktuellen Version nicht ausgelesen.
-
Die Ist nicht public! Warte auf die neue Version, die hat es in sich. Viele Problemstellen werden umschifft, so das die VESC Todesrate deutlich sinken wird. Mehr kann ich dazu nichts sagen. Noch etwas Geduld mitbringen.
-
Temperatur macht nur die Beta!
-
Das Geruckel liegt an der Firmware. In den neueren Versionen wird der Motor einfach mitgezogen bis FOC zuschlagen kann.
-
Gerne, ich nehme gerne die Bilder. 40°C sind nichts. Im Sommer, Longboard und Asphalt bringen da viel mehr Temperatur ins System. Es wurden Projekte hier vorgestellt, die den VESC zu Tode isolieren. Da hilft auch kein Kühlkörper mehr.
-
Hi Snake, da muss recht viel verändert werden. Hersteller von IC in diesem Spannungsbereich haben immer wieder Designprobleme und stellen Chips her, die zum Latch Up neigen. Im Leiterplattendesign müssen mehrere "Fehler" vermieden werden: * Signal-Layer mit hohen Strömen nicht in der Nähe von Eingängen verlegen * Supressor Dioden als Eingangsschutz * DRV -> nicht die Strommessung des DRV verwenden, sondern mittels Differenzverstärker (extra OPs) die Strommessung über den Shunt aufbereiten und zum µController bringen. (Als Differenzverlegung, ggf. als Differenzsignal am µC) * Verzugsfreie Masseverlegung,, auch bei Hochströmen (Sterntopologie) Viele DRV hätten heute noch leben können, wenn das Leiterplattendesign optimaler wäre. Durchkontaktierung in Hochstrombereich vermeiden..... Ich hätte gerne mal das Layout eines Profis gesehen, der nichts anderes macht als Hochstromleiterplatten. (Das ist kein Benjamin Bashing, Soft- und Hardware alleine zu gestalten, neben der Arbeit ist eine respektable Leistung!) Dein Kühlkörper ist ein nettes Design Element auf der Leiterplatte, leider aber nicht mehr. Dies wirst du bestätigt bekommen, wenn du den DRV oder den µC im Betrieb anfässt. Die MOSFETs zu Kühlen macht auf jedenfall Sinn, aber nicht mit der Bauform in der VESC 4.x Serie. Da sin die Kühlkörper auch nur Optik. Vielleicht als Snakeoil blaue Kühlkörper aufkleben. Ergänzt durch LED Beleuchtung :peace:
-
https://de.m.wikipedia.org/wiki/Latch-Up-Effet
-
Im Wiki Antriebsrechner II ganz unten. Du musst das Gewicht richtig einstellen!
-
Zumindest siehst du die Brandlöcher im DRV nicht mehr.
-
Der DRV stirbt normalerweise nicht den langsamen Hitzetot.
-
Wenn das hier so weiter geht kündige ich Netflix. Bitte aber täglich nur eine Episode und keine Spoiler.
-
Batterieanzeige % Fernbedienung Carbon GT in Abhängigkeit der entnommenen Wattstunden
barney antwortete auf electric salsa's Thema in: Evolve
Damit du die Leistung errechnen kannst: http://www.elektro-skateboard.de/wiki/wissenswertes/strom-spannung-reichweite-vii Wenn du deine Messungen beim Fahren bereitstellst, kannst du mich bitte antriggern, damit ich den Antriebsrechner anpassen kann. Danke Barney -
@Hexakopter: Ich habe vor Jahren recherchiert und dabei google genutzt, daher werde ich nicht alle Quellen mehr auftreiben können: VIA: http://circuitcalculator.com/wordpress/2006/03/12/pcb-via-calculator/ http://www.ultracad.com/articles/viacurrents.pdf http://www.ti.com/lit/ml/slua366/slua366.pdf http://www.ultracad.com/articles/via.pdf http://www.ti.com/lit/an/snva183b/snva183b.pdf Wer das intus hat, ist PCB-Master: http://www.graser.com.tw/images/event_history/2014_uc_handout/C-3_PCB_Power_Delivery_Design_from_DC_to_Mid-Frequency.pdf MOSFET: http://powerelectronics.com/site-files/powerelectronics.com/files/archive/powerelectronics.com/mag/602PET22.pdf http://electronics.stackexchange.com/questions/15799/effective-mosfet-cooling http://www.infineon.com/dgdl/Infineon+-+Application+Note+-+High+Voltage+-+Cooling+of+thinPAK.pdf?fileId=db3a304336797ff901369b53e35d71bb Hochstrom PCB: http://e-fab.com/products/pcb-stiffeners/ http://pcdandf.com/pcdesign/index.php/magazine/10122-thermal-management-1506 http://www.cetti.ro/cadence/articles/New_Methods_of_Testing_PCB_Traces_Capacity_and_Fusing.pdf Ich finde leider nicht mehr die Simulation von Copper vs. Solder Trace. Dort wurde auch behandelt, wenn ein Kupferdraht auf den Solder Trace aufgelötet wird, wie sich die Strombelastbarkeit verbessert. Es muss immer der Cross Effekt zu den benachbarten Leiterbahnen berücksichtigt werden. Am Besten man simuliert mit finite Elemente das Temperaturverhalten der Leiterplatte und untersucht das Ergebnis mittels Wärmebildkamera. :peace: Das Prüfen eines VESC auf dem Küchentisch hat nicht viel mit der Realität zu tun. Viele Verpacken ihren VESC und fahren (Obacht!) im Sommer (da könnte es warm sein). Da ist der Küchentisch keine geeignete Umgebung. Richtig interessant wird es bei 40° Umgebungstemperatur und kaum ein Lüftchen um den VESC, da trennt sich Spreu vom Weizen. Der MOSFET verliert dermaßen an positiven Eigenschaften, wenn er die 80-90° erreicht und der Ron nach oben anwächst, das ist eine Todesspirale. Wenn ich die fehlenden Berichte und Vorträge finde, liefere ich nach. VG Barney
-
Hexakopter, volle Zustimmung. MOSFETs auf Ober- und unterseite ist bei den Strömen kontraproduktiv. Es gibt im Web viele Abhandlungen zu Strombelastbarkeit und Produktionsaufwand. Ganz abgesehen vom Kühlkörper. Einige VESC Modifikationen sind gescheitert wegen Ahnungslosigkeit der Layouter. Leiterbahndicke selbst eine Verdreifachung der Kupferstärke ist nicht alles. Auch hier sind Abhandlungen zu finden, wie die MOSFETs sich kühlen und das offenes Verzinnen oder Kupferdraht mehr bringt. VESC Kurze Leiterbahnen und Routing Know How, sowie eine Vorstellung der Signale sind hier essentielle.
-
Ups da Ist Text verloren gegangen. Ich schreibe das morgen hoffentlich verständlicher auf.
-
@ Attilla, 90µ 70µ 70µ 90µ Oft gibt es ein 0,3mm Bohrloch nicht mehr und auch 150µm Leiterbahnen werden nicht mehr, oder teuer angeboten. Hat dein PCB-Hersteller da keine Vorgaben/ Einschränkungen, oder ist das bei ihm Standard? Was mich bei der deutschen Produktion und Verkauf wundert, musst du als Hersteller die Teile nicht mit einer EMV-Prüfung testen lassen? Bei der genutzten Schaltfrequenz und den typischen Strömen ist mit massiven Störfeldern bis in den MHz-Bereich zu rechnen. Hast du da nicht die "deutsche" Arschkarte? Thin Fets: Sind nicht alles. Der Kühlkörper muss mit dem richtigen Anpressdruck und Isolier-/Wärmeleitpads angebracht werden. Durch die Bauform der Leiterplatte bedingt, kann üblicherweise kein Stangenmaterial verwendet werden. Es muss mit hoher Wahrscheinlichkeit ein passender Kühlkörper-/VESC-Gehäuse gefräst werden.