Dude Geschrieben 11. Februar 2017 Geschrieben 11. Februar 2017 Hat jemand von Euch schon mal den Temp-Pin am Hallsensor-Stecker genutzt um die Motortemperatur zu bestimmen. Soweit ich weiß, sind dazu in der Firmware "einfache Änderungen" (Zitat Benjamin Vedder) durchzuführen, damit der Wert ausgelesen wird. Dude Zitieren
barney Geschrieben 11. Februar 2017 Geschrieben 11. Februar 2017 Temperatur macht nur die Beta! Zitieren
Dude Geschrieben 11. Februar 2017 Autor Geschrieben 11. Februar 2017 Temperatur macht nur die Beta! Welche beta? Woher bekomm ich die? Gesendet von iPhone mit Tapatalk Zitieren
barney Geschrieben 11. Februar 2017 Geschrieben 11. Februar 2017 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. Zitieren
Dude Geschrieben 11. Februar 2017 Autor Geschrieben 11. Februar 2017 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. Kein Problem ich übe mich ja schon seit 6 Monaten in Geduld, da wart ich gern noch mal weitere 6 [emoji851] Apropos Geduld: Weißt Du auf die Schnelle was zu tun ist um das in der aktuellen public Version auszulesen? Gesendet von iPhone mit Tapatalk Zitieren
barney Geschrieben 11. Februar 2017 Geschrieben 11. Februar 2017 Die Temperatur wird in der aktuellen Version nicht ausgelesen. Zitieren
Dude Geschrieben 11. Februar 2017 Autor Geschrieben 11. Februar 2017 Die Temperatur wird in der aktuellen Version nicht ausgelesen. Ok, hab meine Frage nicht präzise genug gestellt - wollte wissen was in der FW zu ergänzen ist, damit der Wert ausgelesen/einer Variablen zugwiesen wird. Konnte in den ganzen Foren dazu nix finden, da wahrscheinlich für die meisten nicht von Interesse. Für meinen Hubmotor wäre es aber spannend. Gesendet von iPhone mit Tapatalk Zitieren
barney Geschrieben 12. Februar 2017 Geschrieben 12. Februar 2017 Ok, hab meine Frage nicht präzise genug gestellt - wollte wissen was in der FW zu ergänzen ist, damit der Wert ausgelesen/einer Variablen zugwiesen wird. Konnte in den ganzen Foren dazu nix finden, da wahrscheinlich für die meisten nicht von Interesse. Für meinen Hubmotor wäre es aber spannend. 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. Zitieren
Dude Geschrieben 12. Februar 2017 Autor Geschrieben 12. Februar 2017 Hi Barney, ich wäre mit viel weniger zufrieden. Mir würde eine Variable in der Firmware reichen, welche die Motortemperatur enthält - also das Auslesen des NTC via STM32F4 ist der Punkt. Abregeln möchte ich aktuell noch nicht, nur eine Info über die Temperatur. BLDC-Tool müsste ich nicht anfassen. Ich würde die Variable in einer der vorhandenen Strukturen/Classes über UART+BT an meinen Empfänger oder Handy ausgeben. Das kann ich mittlerweile, gibt ja recht viele Beispiele dafür und die hab ich einfach nachgeturnt. Zitieren
barney Geschrieben 12. Februar 2017 Geschrieben 12. Februar 2017 Hi Barney, ich wäre mit viel weniger zufrieden. Mir würde eine Variable in der Firmware reichen, welche die Motortemperatur enthält - also das Auslesen des NTC via STM32F4 ist der Punkt. Abregeln möchte ich aktuell noch nicht, nur eine Info über die Temperatur. BLDC-Tool müsste ich nicht anfassen. Ich würde die Variable in einer der vorhandenen Strukturen/Classes über UART+BT an meinen Empfänger oder Handy ausgeben. Das kann ich mittlerweile, gibt ja recht viele Beispiele dafür und die hab ich einfach nachgeturnt. Ich muss mir die Sourcen nochmal ziehen. Ich melde mich. Zitieren
barney Geschrieben 12. Februar 2017 Geschrieben 12. Februar 2017 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... Zitieren
barney Geschrieben 12. Februar 2017 Geschrieben 12. Februar 2017 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.... Zitieren
barney Geschrieben 12. Februar 2017 Geschrieben 12. Februar 2017 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. Zitieren
Dude Geschrieben 12. Februar 2017 Autor Geschrieben 12. Februar 2017 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.... Denke nicht, da die MOSi den gleichen Index wie die PCB Temperatur haben. #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 Zitieren
Dude Geschrieben 12. Februar 2017 Autor Geschrieben 12. Februar 2017 Mal was Praktisches. Der PCB NTC ist gegen 3.3V geschaltet, der NTC an den Hall Pins muss aber auf GND gehen (würde ich aus dem Schaltplan so interpretieren und in der "Norm" zu der Steckerbelegung der BLDC-Halls steht das auch so drin) . Richtig? Zitieren
barney Geschrieben 12. Februar 2017 Geschrieben 12. Februar 2017 (bearbeitet) 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... bearbeitet 12. Februar 2017 von barney Zitieren
barney Geschrieben 12. Februar 2017 Geschrieben 12. Februar 2017 Mal was Praktisches. Der PCB NTC ist gegen 3.3V geschaltet, der NTC an den Hall Pins muss aber auf GND gehen (würde ich aus dem Schaltplan so interpretieren und in der "Norm" zu der Steckerbelegung der BLDC-Halls steht das auch so drin) . Richtig? Ja, hier hatte er einen "Designfehler" drin. Zitieren
barney Geschrieben 12. Februar 2017 Geschrieben 12. Februar 2017 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.... Zitieren
barney Geschrieben 12. Februar 2017 Geschrieben 12. Februar 2017 Hi Dude, hat es etwas weiter geholfen? Wie ist der Stand? Zitieren
Dude Geschrieben 12. Februar 2017 Autor Geschrieben 12. Februar 2017 (bearbeitet) Zum Einstieg super, vielen Dank! Ich musste aber wg. Notfallprogramm Chemienachhilfe 8. Klasse leider abbrechen ...grmpf. Interessant ist auch, dass ADC_IND_EXT 10 ADC_IND_EXT auch auf 10 liegt. bearbeitet 12. Februar 2017 von Dude Zitieren
barney Geschrieben 12. Februar 2017 Geschrieben 12. Februar 2017 Zum Einstieg super, vielen Dank! Ich musste aber wg. Notfallprogramm Chemienachhilfe 8. Klasse leider abbrechen ...grmpf. Interessant ist auch, dass ADC_IND_EXT auch auf 10 liegt. LOL Verstehe, hier Spanisch und Mathe. (und wir können kein Spanisch) Ich hoffe er hat den Pin nicht mehrfach vergeben. Den aktuellen Schaltplan habe ich nicht geladen. Welche HW-Version benutzt du? Zitieren
Dude Geschrieben 12. Februar 2017 Autor Geschrieben 12. Februar 2017 Das würde ich mit meinem VESC HW4.12 machen. Zitieren
barney Geschrieben 12. Februar 2017 Geschrieben 12. Februar 2017 Das würde ich mit meinem VESC HW4.12 machen. Und hat er den Motor Temperatur-Pin vermach vergeben? Zitieren
Dirtjumper Geschrieben 31. Mai 2018 Geschrieben 31. Mai 2018 Habe eine Frage bezüglich der Temperatur. Nach langer Fahrt schaltet das Board bei Vollgas ab. Leicht beschleunigen geht. Nach 10 min Pause alles wieder normal. Liegt das an der Temperatur. Voltage Sag kann ich ausschliessen. Zitieren
boesila Geschrieben 31. Mai 2018 Geschrieben 31. Mai 2018 Das liegt wohl eher nicht an der Temperatur, weil es da einen Soft cut off gibt. Die Temperatur vom vesc kannst du relativ einfach über USB oder ein BT Modul auslesen. Alternativ kannst du auch mit der Abschalttemp herum spielen... Default mäßig ist sie auf 80 Grad, glaube ich. Setzt sie mal auf 60 oder so und schau ob das Problem früher auftritt. Wenn du einen VESC 6 hast, kannst du zu fast hundert Prozent ausschließen dass er zu heiß wird bei deinem Street-Board. Zitieren
Empfohlene Beiträge
Tritt dem Gespräch bei
Du kannst jetzt posten und dich später registrieren. Wenn du bereits einen Account hast kannst du dich hier anmelden.