Procházet zdrojové kódy

update

Signed-off-by: huhui <huhui@sharkgulf.com>
huhui před 3 roky
rodič
revize
a17d506f7b

+ 4 - 4
Applications/bsp/adc.c

@@ -68,8 +68,8 @@ static void adc0_init(void){
 #endif
 
 #ifdef HIGH_SIDE_CURRENT_SENSOR
-	//adc_oversample_mode_config(ADC0, ADC_OVERSAMPLING_ALL_CONVERT, ADC_OVERSAMPLING_SHIFT_3B, ADC_OVERSAMPLING_RATIO_MUL8);
-	//adc_oversample_mode_enable(ADC0);
+	adc_oversample_mode_config(ADC0, ADC_OVERSAMPLING_ALL_CONVERT, ADC_OVERSAMPLING_SHIFT_1B, ADC_OVERSAMPLING_RATIO_MUL2);
+	adc_oversample_mode_enable(ADC0);
 #endif
     /* configure ADC inserted channel trigger */
     adc_external_trigger_source_config(ADC0, ADC_INSERTED_CHANNEL, ADC_TRIGGER_PHASE);
@@ -130,8 +130,8 @@ static void adc1_init(void){
 #endif
 
 #ifdef HIGH_SIDE_CURRENT_SENSOR
-	//adc_oversample_mode_config(ADC1, ADC_OVERSAMPLING_ALL_CONVERT, ADC_OVERSAMPLING_SHIFT_3B, ADC_OVERSAMPLING_RATIO_MUL8);
-	//adc_oversample_mode_enable(ADC1);
+	adc_oversample_mode_config(ADC1, ADC_OVERSAMPLING_ALL_CONVERT, ADC_OVERSAMPLING_SHIFT_1B, ADC_OVERSAMPLING_RATIO_MUL2);
+	adc_oversample_mode_enable(ADC1);
 #endif
     /* ADC external trigger enable */
 	adc_external_trigger_source_config(ADC1, ADC_INSERTED_CHANNEL, ADC_TRIGGER_NONE);

+ 1 - 1
Applications/bsp/board_mc_v1.h

@@ -19,7 +19,7 @@
 #define TDead NS_2_TCLK(HW_DEAD_TIME_NS + PWM_DEAD_TIME_NS)/* ����ʱ�� */ 
 #define TRise NS_2_TCLK(HW_RISE_TIME_NS)/* MOS ����ʱ��*/
 #define TNoise NS_2_TCLK(HW_NOISE_TIME_NS)/* MOS��������Ŀ�������ʱ�� */
-#define TADC  ((uint16_t)((ADC_TRIG_CONV_LATENCY_CYCLES + ADC_SAMPLING_CYCLES) * TIM_CLOCK_MHz) / ADC_CLOCK_MHz + 1u)/* ADC ����ʱ�� */
+#define TADC  ((uint16_t)((ADC_TRIG_CONV_LATENCY_CYCLES + ADC_SAMPLING_CYCLES) *2 * TIM_CLOCK_MHz) / ADC_CLOCK_MHz + 1u)/* ADC ����ʱ�� */
 #define TSampleMIN (TDead + TRise + TADC) //采样需要的总时间
 #define TSampleBefore (TDead + TRise) //采样开始前需要等待的时间
 

+ 2 - 2
Applications/foc/core/PMSM_FOC_Core.c

@@ -245,7 +245,7 @@ static __INLINE void PMSM_FOC_Update_Hardware(void) {
 	SinCos_Lut(_gFOC_Ctrl.in.s_motAngle, &_gFOC_Ctrl.out.sin, &_gFOC_Ctrl.out.cos);
 	
 	_gFOC_Ctrl.in.s_motRPM = motor_encoder_get_speed();
-	_gFOC_Ctrl.in.s_vDC = get_vbus_int();
+	_gFOC_Ctrl.in.s_vDC = get_vbus_float();
 	//sample current
 	phase_current_get(_gFOC_Ctrl.in.s_iABC);
 	get_phase_vols(_gFOC_Ctrl.in.s_vABC);
@@ -297,7 +297,7 @@ static __INLINE void PMSM_FOC_Update_PI_Idq(void) {
 
 static u32 PMSM_FOC_Debug_Task(void *p) {
 	if (_gFOC_Ctrl.in.b_motEnable) {
-		//plot_3data16(FtoS16x10(_gFOC_Ctrl.in.s_iABCFilter[0]), FtoS16x10(_gFOC_Ctrl.in.s_iABCFilter[1]), FtoS16x10(_gFOC_Ctrl.in.s_iABCFilter[2]));
+		plot_3data16(FtoS16x10(_gFOC_Ctrl.in.s_iABCFilter[0]), FtoS16x10(_gFOC_Ctrl.in.s_iABCFilter[1]), FtoS16x10(_gFOC_Ctrl.in.s_iABCFilter[2]));
 		//plot_3data16(FtoS16x10(_gFOC_Ctrl.in.s_iABCFilter[0]), FtoS16x10(_gFOC_Ctrl.in.s_iABCFilter[1]), _gFOC_Ctrl.in.s_motRPM);
 		//plot_3data16(FtoS16x10(_gFOC_Ctrl.out.s_RealIdq.d), FtoS16x10(_gFOC_Ctrl.out.s_RealIdq.q), FtoS16x10(_gFOC_Ctrl.idq_ctl[1].s_FinalTgt));
 		//plot_3data16( _gFOC_Ctrl.in.s_motRPM, speed_td.target, speed_td.diff);

binární
Simulink/ADRC.slx


binární
Simulink/ADRC.slx.autosave