Bläddra i källkod

1,修改力矩根据踏频脉冲滤波参数;
2,力矩助力模式踏频停机时间由2s改为200ms;
3,传动比默认值改为1024,调整启动计算的车速阈值;
4,配置模式Walk转速由转把限速改为马达参数中额定转速;
5,解决低速启动不稳定的问题(uwCaptureOverFlowCnt计算后清零;定时器中断由Zero改为Load)。

dd 4 månader sedan
förälder
incheckning
13357d4e8e

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 4 - 0
.launches/empty_LP_MSPM0G3507_APP_Normal_20250107.launch


+ 6 - 6
1.FrameLayer/Source/TimeTask_Event.c

@@ -283,7 +283,7 @@ void Event_10ms(void)
                           ((ULONG)cadence_stFreGetOut.uwLPFFrequencyPu * cof_uwFbHz * 60) >> 20, \
                           ((ULONG)bikespeed_stFreGetOut.uwFrequencyPu * cof_uwFbHz * 60) >> 20, \
                           ((ULONG)torsensor_stTorSensorOut.uwTorquePu * cof_uwTorqNm) >> 14, \
-                          ((ULONG)adc_stUpOut.uwIbusAvgLpfPu * cof_uwIbAp * 10) >> 14, \
+                          ((ULONG)adc_stUpOut.uwIbusAvgLpfPu * cof_uwIbAp) >> 14, \
                           &Bike_RatioCalParam);
 }
 
@@ -459,7 +459,7 @@ void event_voAssCmd(void)
             /* 力矩中轴助力模式判断 */
             if(cp_stBikeRunInfoPara.uwBikeGear > 0)
             {   
-                if((cp_stBikeRunInfoPara.uwBikeGear == 0x22)||(bikethrottle_stBikeThrottleOut.uwThrottlePercent > 250))
+                if((cp_stBikeRunInfoPara.uwBikeGear == 0x22) || (bikethrottle_stBikeThrottleOut.uwThrottlePercent > 250))
                 {
                     /* 力矩中轴速度模式 */
                     event_enMode = SpdAss;
@@ -564,16 +564,16 @@ void event_voAssCmd(void)
 
 void event_voTorqMovAve(void)
 {
-    if(cp_stBikeRunInfoPara.BikeSpeedKmH<60)
+    if(cp_stBikeRunInfoPara.BikeSpeedKmH < 60)
     {
-        MovFiltVault=10;
+        MovFiltVault = 10;
     }
     else
     {
-        if(MovFiltVault<50)
+        if(MovFiltVault < 50)
             MovFiltVault++;
     }
-    if(MovFiltCnt<=100)
+    if(MovFiltCnt <= 100)
         MovFiltCnt++;
     /* 每两次踏频脉冲记录一次滑动平局力矩值*/
     if ((0 == (cadence_stFreGetOut.uwForwardCnt % 2) && (ass_CalIn.uwcadancelast != ass_CalIn.uwcadance))||(MovFiltCnt > MovFiltVault))

+ 4 - 4
3.BasicFunction/Include/AssistCurve.h

@@ -105,7 +105,7 @@
       0, 0, 0, 0,\
       0, 0, 0, 0,\
       0, 0, 0, 0,\
-    }// Y1, Y2, Y3, Z 单位:0.1 Nm 
+    }// Y1, Y2, Y3, Z 单位:0.1 Nm
 #define   ASS_CURVE_X1    30 // 单位:0.1Nm
 #define   ASS_CURVE_X2    100 // 单位:0.1Nm
 #define   ASS_CURVE_X3    300 // 单位:0.1Nm
@@ -137,7 +137,7 @@
         0, 0, 45000, 0, \
         0, 0, 45000, 0, \
         0, 0, 45000, 0 \
-    }		//35000改为45000  
+    }		//35000改为45000
 
 /***************************************
  *
@@ -306,7 +306,7 @@ typedef struct
     UWORD SOCValue;
     SWORD swCurFdbPu; //Q14
     SWORD swCurRefPu;
-    UWORD uwStartRunPulse;//启动脉冲个数计数 
+    UWORD uwStartRunPulse;//启动脉冲个数计数
     UWORD uwcadHighStopCnt;//踏频为0时,开始计数值
     UWORD uwcadLowStopCnt;//踏频为0时,开始计数值
 } ASS_PER_IN;
@@ -471,7 +471,7 @@ extern ASS_PER_COEF ass_CalCoef;
 extern ASS_CURLIM_OUT  ass_CurLimOut;
 extern ASS_CURLIM_COEF ass_CurLimCoef;
 
-extern SWORD  MAF_buffer[64];
+extern SWORD  MAF_buffer[60];
 extern MAF_IN maf_torque;
 
 extern ASS_RESERVE_PARA ass_stReservePara;

+ 1 - 1
3.BasicFunction/Include/switchhall.h

@@ -106,4 +106,4 @@ void switchhall_voPosCalTbc(void);
 /************************************************************************
  End of this File (EOF):
  Do not put anything after this part!
-*************************************************************************/
+*************************************************************************/

+ 10 - 12
3.BasicFunction/Source/AssistCurve.c

@@ -45,8 +45,8 @@ ASS_PER_IN   ass_CalIn = TORQUE_CAL_IN_DEFAULT;
 ASS_PER_COEF ass_CalCoef;
 ASS_PER_OUT  ass_CalOut;
 UWORD        LinerAssist[5] = ASS_LINER_TORQUE_DEFAULT;
-SWORD  MAF_buffer[64];
-MAF_IN maf_torque = {0, 32, 0, 0, MAF_buffer, 0, FALSE};
+SWORD  MAF_buffer[60];
+MAF_IN maf_torque = {0, 30, 0, 0, MAF_buffer, 0, FALSE};
 
 TOR2CURRENT_CAL_COEF ass_Tor2CurCalCoef;
 
@@ -405,12 +405,12 @@ void AssitCuvApplPerVolt(void)
     /* 启动标志判断 */
     if(ass_CalIn.uwtorquePer > ass_CalCoef.uwAssThreshold)
     {
-        if(CadGpioSta !=Get_CAD_FRE_PORT()   )
+        if(CadGpioSta != Get_CAD_FRE_PORT())
         {
  			CadGpioSta = Get_CAD_FRE_PORT();
             if(ass_CalIn.uwStartRunPulse < 100)
             {
-                ass_CalIn.uwStartRunPulse ++;
+                ass_CalIn.uwStartRunPulse++;
             }
             else
             {
@@ -428,9 +428,9 @@ void AssitCuvApplPerVolt(void)
         //滞环,不动作
     }
     //脚踏不动强制关闭
-    if((ass_CalIn.uwcadLowStopCnt>=2000)  ||(ass_CalIn.uwcadHighStopCnt>=2000))
+    if((ass_CalIn.uwcadLowStopCnt>=200) || (ass_CalIn.uwcadHighStopCnt>=200))
       {
-        ass_CalIn.uwStartRunPulse=0;
+        ass_CalIn.uwStartRunPulse = 0;
       }
 
     if((ass_CalIn.StartAssistEnble == FALSE) && (ass_CalIn.uwStartRunPulse > 1)) 
@@ -769,7 +769,7 @@ void AssitCuvApplPerVolt(void)
             }
 
             /* 预启动阶段,停机判断 */
-            if((ass_CalIn.uwGearSt == 0) || (BikeBrake_blGetstate() == TRUE)||(BMS_RunInfo.Status.Status_Bit.Charge==TRUE)||((ass_CalIn.blStopAssistEnble == TRUE) && (ass_CalIn.StartAssistEnble == FALSE)))
+            if((ass_CalIn.uwGearSt == 0) || (BikeBrake_blGetstate() == TRUE) || (BMS_RunInfo.Status.Status_Bit.Charge==TRUE) || (ass_CalIn.blStopAssistEnble == TRUE))
             {
                 Ass_FSM = PreStop;
             }
@@ -831,7 +831,7 @@ void AssitCuvApplPerVolt(void)
             ass_CalOut.swTorAssistCurrentTemp = ass_CalOut.swTorRefEnd;
 
             /* 预启动阶段,停机判断 */
-            if((ass_CalIn.uwGearSt == 0) || (BikeBrake_blGetstate() == TRUE)||(BMS_RunInfo.Status.Status_Bit.Charge==TRUE)||((ass_CalIn.blStopAssistEnble == TRUE) && (ass_CalIn.StartAssistEnble == FALSE)))
+            if((ass_CalIn.uwGearSt == 0) || (BikeBrake_blGetstate() == TRUE) || (BMS_RunInfo.Status.Status_Bit.Charge==TRUE) || (ass_CalIn.blStopAssistEnble == TRUE))
             {
                 Ass_FSM = PreStop;
             }
@@ -883,7 +883,7 @@ void AssitCuvApplPerVolt(void)
             /* 重新启动判断*/
             if((ass_CalIn.uwGearSt > 0) && (BikeBrake_blGetstate() == FALSE) &&(BMS_RunInfo.Status.Status_Bit.Charge==FALSE))
             {
-                if((ass_CalIn.blStopAssistEnble == FALSE) && (ass_CalIn.StartAssistEnble == TRUE))
+                if(ass_CalIn.StartAssistEnble == TRUE)
                 {
                     Ass_FSM = TorqueAssit;
                 }
@@ -1026,10 +1026,8 @@ void MoveAverageFilterClear(MAF_IN *in)
     in->index = 0;
     in->sum = 0;
     in->blSecFlag = FALSE;
-    //    memset((UBYTE*)in->buffer, 0, sizeof(in->buffer));
 
-    //     in->buffer[(1 << in->length)-1]=0;
-    for (i = 0; i < 64; i++)
+    for (i = 0; i < (sizeof(in->buffer) >> 1); i++)
     {
         in->buffer[i] = 0;
     }

+ 7 - 4
3.BasicFunction/Source/BikeRatioCal.c

@@ -11,7 +11,7 @@ Bike_RatioCal_Struct_t Bike_RatioCalParam = {0,0,0,0,0};
 //参数初始化
 void BikeRatioCal_Init(UWORD Teeth_F, UWORD Teeth_B)
 {
-    Bike_RatioCalParam.RatioDefault = 1 << 10;
+    Bike_RatioCalParam.RatioDefault = 1024;
     Bike_RatioCalParam.RatioResult = Bike_RatioCalParam.RatioDefault;
 }
 
@@ -22,7 +22,7 @@ void BikeRatioCal_Process(UWORD MotorSpeed, UWORD Cadence, UWORD BikeSpeedRpm, U
     UBYTE Coasted_Flag = 0xFF; //滑行或静止标志,1-滑行,2-静止
 
     //有效判断
-    if(BikeSpeedRpm > 20) //20rpm*60*2.19m/1000≈2.6km/h
+    if(BikeSpeedRpm > 80) //80rpm*60*2.19m/1000≈10.5km/h
     {
         if((PedalTorqueNm > 100) && (Cadence > 10)) //10Nm 10rpm
             Coasted_Flag = 0;
@@ -58,7 +58,10 @@ void BikeRatioCal_Process(UWORD MotorSpeed, UWORD Cadence, UWORD BikeSpeedRpm, U
         //计算结果滤波
         p_Bike_RatioCal->RatioFltSum += ((p_Bike_RatioCal->RatioPer << 10) - p_Bike_RatioCal->RatioFltSum) >> 8;
         p_Bike_RatioCal->RatioFlt = p_Bike_RatioCal->RatioFltSum >> 10;
-        //目标值计算
-        p_Bike_RatioCal->RatioResult = p_Bike_RatioCal->RatioFlt;
+        //目标值计
+        if((p_Bike_RatioCal->RatioResult + 2) > p_Bike_RatioCal->RatioFlt)
+            p_Bike_RatioCal->RatioResult -= 2;
+        else if((p_Bike_RatioCal->RatioResult + 2) < p_Bike_RatioCal->RatioFlt)
+            p_Bike_RatioCal->RatioResult += 2;
     }
 }

+ 21 - 10
3.BasicFunction/Source/CadAssist.c

@@ -403,14 +403,22 @@ void ass_voAssistCoefCal(void)
 void ass_voParameterInput(void)
 {
     /** Motor Max Speed calculate according to bike speed limit */
-    if( ass_stCadAssParaPro.uwAssitMode == 7)
-       {
-       ass_stCadAssCoef.swMSpdpuLimit =ass_stCadAssCoef.swThrottleMaxspd;
-       }
-       else
-       {
-       ass_stCadAssCoef.swMSpdpuLimit =ass_stCadAssCoef.swAssistMaxSpd;
-       }
+    if(MC_WorkMode == 1) //配置模式不限制电机最高转速
+    {
+        ass_stCadAssCoef.swMSpdpuLimit = (SLONG)(cp_stMotorPara.swRSpeedRpm << 15) / cof_uwVbRpm;
+    }
+    else //运行模式
+    {
+        if( ass_stCadAssParaPro.uwAssitMode == 7) //转把模式限速
+        {
+            ass_stCadAssCoef.swMSpdpuLimit =ass_stCadAssCoef.swThrottleMaxspd;
+        }
+        else //助力或Walk
+        {
+            ass_stCadAssCoef.swMSpdpuLimit =ass_stCadAssCoef.swAssistMaxSpd;
+        }
+    }
+
     /** Flux current limit input */
     ass_stCadAssParaIn.swFlxIqLimitPu = abs(flx_stCtrlOut.swIqLimPu);
 
@@ -678,7 +686,7 @@ void ass_voAssistCmdDeal(void)
                         tmp_slAssistSpdCmd = (SLONG)ass_stCadAssCoef.swKmhToMSpdPu*((SLONG)CadAssistSped.uwGearTwo )  >> 4;
                     #else
                         tmp_slAssistSpdCmd = (SLONG)ass_stCadAssCoef.swKmhToMSpdPu*((((SLONG)ass_stCadAssCoef.uwAssistMaxBikeSpeed - ASS_GEAR1_SPEED)>>2) + ASS_GEAR1_SPEED)  >> 4;
-                   #endif
+                    #endif
                #endif
                 }
                 else if(ass_stCadAssParaIn.uwGearSt == 3)
@@ -881,7 +889,7 @@ void ass_voAssistCmdDeal(void)
         /** Q15 * Q4 / Q4 = Q15 */
          if(MC_WorkMode == 1)
          {
-           tmp_slAssistSpdCmd = ((SLONG)ass_stCadAssCoef.swKmhToMSpdPu * (SLONG)ass_stCadAssCoef.uwThrottleMaxBikeSpeed) >> 4;
+           tmp_slAssistSpdCmd = (SLONG)(cp_stMotorPara.swRSpeedRpm << 15) / cof_uwVbRpm;
            tmp_slAssistSpdCmd= ((SLONG)MC_MotorSPD_rpm_Percent * tmp_slAssistSpdCmd) / 100;
 
            if(MC_MotorSPD_rpm_Percent<=2)
@@ -1261,6 +1269,7 @@ void ass_voAssInitVoltageCal(void)
 void ass_voAssCurCalFunc(void)
 {
     SWORD tmp_swAssMeshCur = 0;
+    static UWORD Cnt = 0;
     
     /**< Assist current calculate state machine */
     switch (ass_enCadAssStatus)
@@ -1469,9 +1478,11 @@ void ass_voAssCurCalFunc(void)
           {
               ass_stCadAssSpdCtl.uwACTPidKp= ass_stCadAssSpdCtl.uwPidKp;
           }
+
         ass_voSpdPidCtrl(&ass_stCadAssSpdCtl);
         ass_stCadAssParaPro.swVoltageStep = ass_stCadAssSpdCtl.swPidOut;
         ass_stCadAssParaPro.slVoltageSum += ass_stCadAssParaPro.swVoltageStep;
+
         /** voltage limit */
         if(ass_stCadAssParaPro.slVoltageSum >= ((SLONG)ass_stCadAssParaIn.swAssMaxVolLimpu<<8))
         {

+ 7 - 9
3.BasicFunction/Source/switchhall.c

@@ -206,19 +206,18 @@ void   switchhall_voTim3Int(void)
 
     switchhall_stCap.ulCapValue= DL_Timer_getTimerCount(HALLTIMER_INST);
     DL_Timer_setTimerCount(HALLTIMER_INST,0);
-
+    tmp_ValueCapDelta = (SLONG)switchhall_stCap.uwCaptureOverFlowCnt * 60011 + (SLONG)switchhall_stCap.ulCapValue;
     switchhall_stCap.uwCaptureOverFlowCnt = 0;
 #if(EMCDEAL_EN!=0)
     if(EcmDeal.EmcModeFlag==FALSE)
 #endif
     {
-    /*Sector Judgement*/
+        /*Sector Judgement*/
 
-    switchhall_voSectorJudge();
-
-//    DL_GPIO_togglePins(LED_PORT, LED_LED1_PIN);
-    tmp_ValueCapDelta = (SLONG)switchhall_stCap.uwCaptureOverFlowCnt * 60011 + (SLONG)switchhall_stCap.ulCapValue  ; //
+        switchhall_voSectorJudge();
 
+    //    DL_GPIO_togglePins(LED_PORT, LED_LED1_PIN);
+        //tmp_ValueCapDelta = (SLONG)switchhall_stCap.uwCaptureOverFlowCnt * 60011 + (SLONG)switchhall_stCap.ulCapValue  ; //
 
         Speed_Value = tmp_ValueCapDelta; //switchhall_stCap.slCapValueDelta;
         Speed_fb_sum -= Speed_buffer[Speed_sample_index];
@@ -1125,11 +1124,10 @@ void switchhall_voPosCalTbc(void)
 #endif
     /* Low Speed LPF */
     switchhall_pvt_slLowSpdLpfPu =
-        (SLONG)203 * (switchhall_stOut.swLowSpdPu - switchhall_stOut.swLowSpdLpfPu) + switchhall_pvt_slLowSpdLpfPu; //50Hz
+        (SLONG)100 * (switchhall_stOut.swLowSpdPu - switchhall_stOut.swLowSpdLpfPu) + switchhall_pvt_slLowSpdLpfPu; //50Hz
 //    switchhall_pvt_slLowSpdLpfPu =
 //        (SLONG)1286 * (switchhall_stOut.swLowSpdPu - switchhall_stOut.swLowSpdLpfPu) + switchhall_pvt_slLowSpdLpfPu; //50Hz
     switchhall_stOut.swLowSpdLpfPu = switchhall_pvt_slLowSpdLpfPu >> 15;
-    
     /* High Speed LPF */
 //    switchhall_pvt_slHighSpdLpfPu =
 //    (SLONG)0x00CB * (switchhall_stOut.swHighSpdPu - switchhall_stOut.swHighSpdLpfPu) + switchhall_pvt_slHighSpdLpfPu; 
@@ -1141,7 +1139,7 @@ void HALLTIMER_INST_IRQHandler(void) //void TMR16_GLOBAL_IRQHandler(void)
 
    switch (DL_Timer_getPendingInterrupt(HALLTIMER_INST))
    {
-       case DL_TIMER_IIDX_ZERO:
+       case DL_TIMER_IIDX_LOAD://DL_TIMER_IIDX_ZERO:
 #if(EMCDEAL_EN!=0)
           if( EcmDeal.EmcModeFlag==TRUE)
            switchhall_stCap.slCapValueDelta= EcmDeal.slCapValueDelta;

+ 2 - 2
mspm0g3507.syscfg

@@ -143,7 +143,7 @@ COMP1.terminalSelect                 = "DL_COMP_REF_TERMINAL_SELECT_NEG";
 COMP1.posChannel                     = "DL_COMP_IPSEL_CHANNEL_1";
 COMP1.polarity                       = "DL_COMP_POLARITY_INV";
 COMP1.interruptPriority              = "1";
-COMP1.setDACCode0                    = 0x99;
+COMP1.setDACCode0                    = 0xB5;
 COMP1.peripheral.compPinPos1.$assign = "PB24";
 COMP1.compPinPos1Config.$name        = "ti_driverlib_gpio_GPIOPinGeneric21";
 
@@ -387,9 +387,9 @@ TIMER1.timerClkDiv        = 5;
 TIMER1.timerClkPrescale   = 4;
 TIMER1.timerPeriod        = "16.67 ms";
 TIMER1.timerStartTimer    = true;
-TIMER1.interrupts         = ["ZERO"];
 TIMER1.timerMode          = "PERIODIC_UP";
 TIMER1.interruptPriority  = "1";
+TIMER1.interrupts         = ["LOAD"];
 TIMER1.peripheral.$assign = "TIMG6";
 
 TIMER2.$name              = "HALL_CNT";

+ 4 - 278
targetConfigs/MSPM0G3507.ccxml

@@ -1,297 +1,23 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <configurations XML_version="1.2" id="configurations_0">
-                                                
     
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    <configuration XML_version="1.2" id="configuration_0">
-                                                                                                
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        <instance XML_version="1.2" desc="Texas Instruments XDS110 USB Debug Probe" href="connections/TIXDS110_Connection.xml" id="Texas Instruments XDS110 USB Debug Probe" xml="TIXDS110_Connection.xml" xmlpath="connections"/>
-                                                                                                
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        <connection XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe">
-                                                                                                                                                
-            
-            
-            
-            
-            
-            
-            
-            
-            
-            
+    <configuration XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe_0">
+        <instance XML_version="1.2" desc="Texas Instruments XDS110 USB Debug Probe_0" href="connections/TIXDS110_Connection.xml" id="Texas Instruments XDS110 USB Debug Probe_0" xml="TIXDS110_Connection.xml" xmlpath="connections"/>
+        <connection XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe_0">
             <instance XML_version="1.2" href="drivers/tixds510cs_dap.xml" id="drivers" xml="tixds510cs_dap.xml" xmlpath="drivers"/>
-                                                                                                                                                
-            
-            
-            
-            
-            
-            
-            
-            
-            
-            
             <instance XML_version="1.2" href="drivers/tixds510cortexM0.xml" id="drivers" xml="tixds510cortexM0.xml" xmlpath="drivers"/>
-                                                                                                                                                
-            
-            
-            
-            
-            
-            
-            
-            
-            
-            
             <instance XML_version="1.2" href="drivers/tixds510sec_ap.xml" id="drivers" xml="tixds510sec_ap.xml" xmlpath="drivers"/>
-                                                                                                                                                
-            
-            
-            
-            
-            
-            
-            
-            
-            
-            
             <property Type="choicelist" Value="1" id="The JTAG TCLK Frequency (MHz)">
-                                                                                                                                                                                                
-                
-                
-                
-                
-                
-                
-                
-                
-                
-                
                 <choice Name="Fixed with user specified value" value="SPECIFIC">
-                                                                                                                                                                                                                                                
-                    
-                    
-                    
-                    
-                    
-                    
-                    
-                    
-                    
-                    
                     <property Type="stringfield" Value="1MHz" id="-- Enter a value from 100.0kHz to 2.5MHz"/>
-                                                                                                                                                                                                                                            
-                
-                
-                
-                
-                
-                
-                
-                
-                
-                
                 </choice>
-                                                                                                                                                                                            
-            
-            
-            
-            
-            
-            
-            
-            
-            
-            
             </property>
-                                                                                                                                                
-            
-            
-            
-            
-            
-            
-            
-            
-            
-            
             <property Type="choicelist" Value="2" id="SWD Mode Settings">
-                                                                                                                                                                                                
-                
-                
-                
-                
-                
-                
-                
-                
-                
-                
                 <choice Name="SWD Mode - Aux COM port is target TDO pin" value="nothing"/>
-                                                                                                                                                                                            
-            
-            
-            
-            
-            
-            
-            
-            
-            
-            
-            </property>
-                                                                                                                                                
-            
-            
-            
-            
-            
-            
-            
-            
-            
-            
-            <property Type="choicelist" Value="1" id="Debug Probe Selection">
-                                                                                                                                                                                
-                
-                
-                
-                
-                
-                
-                
-                
-                
-                <choice Name="Select by serial number" value="0">
-                                                                                                                                                                                                                            
-                    
-                    
-                    
-                    
-                    
-                    
-                    
-                    
-                    
-                    <property Type="stringfield" Value="LS4100IY" id="-- Enter the serial number"/>
-                                                                                                                                                                                                                        
-                
-                
-                
-                
-                
-                
-                
-                
-                
-                </choice>
-                                                                                                                                                                            
-            
-            
-            
-            
-            
-            
-            
-            
-            
             </property>
-                                                                                                                                    
-            
-            
-            
-            
-            
-            
-            
-            
-            
             <platform XML_version="1.2" id="platform_0">
-                                                                                                                                                                                                
-                
-                
-                
-                
-                
-                
-                
-                
-                
-                
-                <instance XML_version="1.2" desc="MSPM0G3507" href="devices/MSPM0G3507.xml" id="MSPM0G3507" xml="MSPM0G3507.xml" xmlpath="devices"/>
-                                                                                                                                                                                            
-            
-            
-            
-            
-            
-            
-            
-            
-            
-            
+                <instance XML_version="1.2" desc="MSPM0G3507_0" href="devices/MSPM0G3507.xml" id="MSPM0G3507_0" xml="MSPM0G3507.xml" xmlpath="devices"/>
             </platform>
-                                                                                                                                            
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
         </connection>
-                                                                                            
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
     </configuration>
-                                            
-
-
-
-
-
-
-
-
-
-
 </configurations>

Vissa filer visades inte eftersom för många filer har ändrats