Browse Source

V2r1r6r0r6_20220523
1 增加单向器打滑故障检测功能;
2 指拨推行限速逻辑改为抛物线衰减,骑行限速逻辑为线性衰减;

white.xu 3 years ago
parent
commit
269e58cb79
72 changed files with 2605 additions and 2571 deletions
  1. 9 42
      MDK-ARM/QD007A_CTL_APP.uvprojx
  2. 2482 2482
      MDK-ARM/QD007A_CTL_APP/QD007A_CTL_APP_CRC.hex
  3. BIN
      MDK-ARM/bin/MC_VOLANS-TC033001A-V0r1_V2r1r5_20201125.bin
  4. BIN
      MDK-ARM/bin/MC_VOLANS-TC033001A-V1_V2r1r5_20200904.bin
  5. BIN
      MDK-ARM/bin/MC_VOLANS-TC033001A-V2r0_V2r1r5_20200904.bin
  6. BIN
      MDK-ARM/bin/MC_VOLANS_V2r0r2_20200417.bin
  7. BIN
      MDK-ARM/bin/MC_VOLANS_V2r0r2_20200426.bin
  8. BIN
      MDK-ARM/bin/MC_VOLANS_V2r0r2_20200427.bin
  9. BIN
      MDK-ARM/bin/MC_VOLANS_V2r0r3_20200427.bin
  10. BIN
      MDK-ARM/bin/MC_VOLANS_V2r0r4_20200603_SendToArno.bin
  11. BIN
      MDK-ARM/bin/MC_VOLANS_V2r0r4_20200615.bin
  12. BIN
      MDK-ARM/bin/MC_VOLANS_V2r1r0_20200717.bin
  13. BIN
      MDK-ARM/bin/MC_VOLANS_V2r1r1_20200720.bin
  14. BIN
      MDK-ARM/bin/MC_VOLANS_V2r1r2_20200812.bin
  15. BIN
      MDK-ARM/bin/MC_VOLANS_V2r1r3_20200814.bin
  16. BIN
      MDK-ARM/bin/MC_VOLANS_V2r1r3_20200821.bin
  17. BIN
      MDK-ARM/bin/MC_VOLANS_V2r1r3_20200821_1.bin
  18. BIN
      MDK-ARM/bin/MC_VOLANS_V2r1r5_20200904.bin
  19. BIN
      MDK-ARM/bin/MC_VOLANS_V2r1r6_20201023_JustForTest.bin
  20. BIN
      MDK-ARM/bin/MC_VOLANS_V2r1r6_20201201.bin
  21. BIN
      MDK-ARM/bin/MC_VOLANS_V2r1r6_20201203.bin
  22. BIN
      MDK-ARM/bin/MC_VOLANS_V2r1r6_20201203_1.bin
  23. BIN
      MDK-ARM/bin/MC_VOLANS_V2r1r7_20210128.bin
  24. BIN
      MDK-ARM/bin/MC_VOLANS_V2r1r7_20210202.bin
  25. BIN
      MDK-ARM/bin/MC_VOLANS_V2r1r7_20210202_1.bin
  26. BIN
      MDK-ARM/bin/MC_VOLANS_V2r1r8_20210414.bin
  27. BIN
      MDK-ARM/bin/MC_VOLANS_V2r1r8_20210414_1.bin
  28. BIN
      MDK-ARM/bin/MC_VOLANS_V2r2r0_20210723.bin
  29. BIN
      MDK-ARM/bin/MC_VOLANS_V2r2r0_20210902.bin
  30. BIN
      MDK-ARM/bin/MC_VOLANS_V2r2r1_20211008.bin
  31. BIN
      MDK-ARM/bin/MC_VOLANS_V2r2r1_20211202.bin
  32. BIN
      MDK-ARM/bin/MC_VS7500-TC013052-MS2002-V2.1.6.0.1_20210702.bin
  33. BIN
      MDK-ARM/bin/MC_VS7500-TC013052-MS2002-V2.1.6.0.2_20210708.bin
  34. BIN
      MDK-ARM/bin/MC_VS7500-TC033001-MS2001-V2.1.5.0.1_20201202.bin
  35. BIN
      MDK-ARM/bin/MC_VS7500-TC033001-MS2001-V2.1.5.0.2_20210115.bin
  36. BIN
      MDK-ARM/bin/MC_VS7500-TC033001-MS2001-V2.1.5.0.3_20210129.bin
  37. BIN
      MDK-ARM/bin/MC_VS7500-TC033001-MS2001-V2.1.5.0.4_20210130.bin
  38. BIN
      MDK-ARM/bin/MC_VS7500-TC033001-MS2001-V2.1.6.0.10_20210804.bin
  39. BIN
      MDK-ARM/bin/MC_VS7500-TC033001-MS2001-V2.1.6.0.4_20210416.bin
  40. BIN
      MDK-ARM/bin/MC_VS7500-TC033001-MS2001-V2.1.6.0.5_20210427.bin
  41. BIN
      MDK-ARM/bin/MC_VS7500-TC033001-MS2001-V2.1.6.0.5_20210427_1.bin
  42. BIN
      MDK-ARM/bin/MC_VS7500-TC033001-MS2001-V2.1.6.0.6_20210507.bin
  43. BIN
      MDK-ARM/bin/MC_VS7500-TC033001-MS2001-V2.1.6.0.7_20210525.bin
  44. BIN
      MDK-ARM/bin/MC_VS7500-TC033001-MS2001-V2.1.6.0.8_20210610.bin
  45. BIN
      MDK-ARM/bin/MC_VS7500-TC033001-MS2001-V2.1.6.0.9_20210701.bin
  46. BIN
      MDK-ARM/bin/MC_VS7500-TC033001-MS2002HK-V2.1.6.1.0_20210721.bin
  47. BIN
      MDK-ARM/bin/MC_VS7500-TC033001A-V2.1.5.0.1_20201130.bin
  48. BIN
      MDK-ARM/bin/MC_VS7500-TC033001A-V2.1.5.0.1_20201202.bin
  49. BIN
      MDK-ARM/bin/MC_VS75XX-TC033001-MS2001-V2.1.6.1.0_20210913.bin
  50. BIN
      MDK-ARM/bin/MC_VS75XX-TC033001-MS2001-V2.1.6.1.0_20210913_1.bin
  51. BIN
      MDK-ARM/bin/MC_VS75XX-TC033001-MS2001-V2.1.6.1.0_20210913_2.bin
  52. BIN
      MDK-ARM/bin/MC_VS75XX-TC033001-MS2001-V2.1.6.1.1_20211103.bin
  53. BIN
      MDK-ARM/bin/MC_VS75XX-TC033001-MS2001-V2.1.6.1.2_20211202.bin
  54. BIN
      MDK-ARM/bin/MC_VS75XX-TC033001-MS2002-V2.1.6.1.0_20210913.bin
  55. BIN
      MDK-ARM/bin/MC_VS75XX-TC033001-MS2002-V2.1.6.1.0_20210913_1.bin
  56. BIN
      MDK-ARM/bin/MC_VS75XX-TC033001-MS2002-V2.1.6.1.0_20210913_2.bin
  57. BIN
      MDK-ARM/bin/MC_VS75XX-TC033001-MS2002-V2.1.6.1.1_20211103.bin
  58. BIN
      MDK-ARM/bin/MC_VS75XX-TC033001-MS2002-V2.1.6.1.2_20211202.bin
  59. BIN
      MDK-ARM/bin/MC_VS75XX-TC033001-MS2003-V2.1.6.0.1_20211229.bin
  60. BIN
      MDK-ARM/bin/MC_VS75XX-TC033001-MS2003-V2.1.6.0.1_20211229_1.bin
  61. BIN
      MDK-ARM/bin/MC_VS75XX-TC033001-MS2003-V2.1.6.0.4_20220316.bin
  62. BIN
      MDK-ARM/bin/QD007A_CTL_APP.bin
  63. 6 6
      MDK-ARM/startup_stm32f103xb.lst
  64. 7 7
      MDK-ARM/stm32f1xx_stucpuregsaddressing.lst
  65. 7 7
      MDK-ARM/stm32f1xx_stucpuwalkpatkeil.lst
  66. 7 7
      MDK-ARM/stm32f1xx_sturamwalkpatkeil.lst
  67. 4 3
      User/Inc/var.h
  68. 6 3
      User/Src/cadence_sensor.c
  69. 48 0
      User/Src/fault_check.c
  70. 3 3
      User/Src/hall_sensor.c
  71. 23 8
      User/Src/motor_control.c
  72. 3 3
      User/Src/var.c

+ 9 - 42
MDK-ARM/QD007A_CTL_APP.uvprojx

@@ -10,11 +10,12 @@
       <TargetName>QD007A_CTL_APP</TargetName>
       <ToolsetNumber>0x4</ToolsetNumber>
       <ToolsetName>ARM-ADS</ToolsetName>
+      <pCCUsed>5060422::V5.06 update 4 (build 422)::ARMCC</pCCUsed>
       <TargetOption>
         <TargetCommonOption>
           <Device>STM32F103RB</Device>
           <Vendor>STMicroelectronics</Vendor>
-          <PackID>Keil.STM32F1xx_DFP.1.1.0</PackID>
+          <PackID>Keil.STM32F1xx_DFP.2.3.0</PackID>
           <PackURL>http://www.keil.com/pack/</PackURL>
           <Cpu>IROM(0x08000000,0x20000) IRAM(0x20000000,0x5000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE</Cpu>
           <FlashUtilSpec></FlashUtilSpec>
@@ -124,47 +125,6 @@
             <HexOffset>0</HexOffset>
             <Oh166RecLen>16</Oh166RecLen>
           </OPTHX>
-          <Simulator>
-            <UseSimulator>0</UseSimulator>
-            <LoadApplicationAtStartup>1</LoadApplicationAtStartup>
-            <RunToMain>1</RunToMain>
-            <RestoreBreakpoints>1</RestoreBreakpoints>
-            <RestoreWatchpoints>1</RestoreWatchpoints>
-            <RestoreMemoryDisplay>1</RestoreMemoryDisplay>
-            <RestoreFunctions>1</RestoreFunctions>
-            <RestoreToolbox>1</RestoreToolbox>
-            <LimitSpeedToRealTime>0</LimitSpeedToRealTime>
-            <RestoreSysVw>1</RestoreSysVw>
-          </Simulator>
-          <Target>
-            <UseTarget>1</UseTarget>
-            <LoadApplicationAtStartup>1</LoadApplicationAtStartup>
-            <RunToMain>1</RunToMain>
-            <RestoreBreakpoints>1</RestoreBreakpoints>
-            <RestoreWatchpoints>1</RestoreWatchpoints>
-            <RestoreMemoryDisplay>1</RestoreMemoryDisplay>
-            <RestoreFunctions>1</RestoreFunctions>
-            <RestoreToolbox>1</RestoreToolbox>
-            <RestoreTracepoints>1</RestoreTracepoints>
-            <RestoreSysVw>1</RestoreSysVw>
-          </Target>
-          <RunDebugAfterBuild>0</RunDebugAfterBuild>
-          <TargetSelection>6</TargetSelection>
-          <SimDlls>
-            <CpuDll></CpuDll>
-            <CpuDllArguments></CpuDllArguments>
-            <PeripheralDll></PeripheralDll>
-            <PeripheralDllArguments></PeripheralDllArguments>
-            <InitializationFile></InitializationFile>
-          </SimDlls>
-          <TargetDlls>
-            <CpuDll></CpuDll>
-            <CpuDllArguments></CpuDllArguments>
-            <PeripheralDll></PeripheralDll>
-            <PeripheralDllArguments></PeripheralDllArguments>
-            <InitializationFile></InitializationFile>
-            <Driver>Segger\JL2CM3.dll</Driver>
-          </TargetDlls>
         </DebugOption>
         <Utilities>
           <Flash1>
@@ -229,6 +189,7 @@
             <useUlib>1</useUlib>
             <EndSel>0</EndSel>
             <uLtcg>0</uLtcg>
+            <nSecure>0</nSecure>
             <RoSelD>3</RoSelD>
             <RwSelD>3</RwSelD>
             <CodeSel>0</CodeSel>
@@ -365,6 +326,11 @@
             <useXO>0</useXO>
             <v6Lang>0</v6Lang>
             <v6LangP>0</v6LangP>
+            <vShortEn>1</vShortEn>
+            <vShortWch>1</vShortWch>
+            <v6Lto>0</v6Lto>
+            <v6WtE>0</v6WtE>
+            <v6Rtti>0</v6Rtti>
             <VariousControls>
               <MiscControls></MiscControls>
               <Define>USE_HAL_DRIVER,STM32F103xB</Define>
@@ -382,6 +348,7 @@
             <NoWarn>0</NoWarn>
             <uSurpInc>0</uSurpInc>
             <useXO>0</useXO>
+            <uClangAs>0</uClangAs>
             <VariousControls>
               <MiscControls></MiscControls>
               <Define></Define>

File diff suppressed because it is too large
+ 2482 - 2482
MDK-ARM/QD007A_CTL_APP/QD007A_CTL_APP_CRC.hex


BIN
MDK-ARM/bin/MC_VOLANS-TC033001A-V0r1_V2r1r5_20201125.bin


BIN
MDK-ARM/bin/MC_VOLANS-TC033001A-V1_V2r1r5_20200904.bin


BIN
MDK-ARM/bin/MC_VOLANS-TC033001A-V2r0_V2r1r5_20200904.bin


BIN
MDK-ARM/bin/MC_VOLANS_V2r0r2_20200417.bin


BIN
MDK-ARM/bin/MC_VOLANS_V2r0r2_20200426.bin


BIN
MDK-ARM/bin/MC_VOLANS_V2r0r2_20200427.bin


BIN
MDK-ARM/bin/MC_VOLANS_V2r0r3_20200427.bin


BIN
MDK-ARM/bin/MC_VOLANS_V2r0r4_20200603_SendToArno.bin


BIN
MDK-ARM/bin/MC_VOLANS_V2r0r4_20200615.bin


BIN
MDK-ARM/bin/MC_VOLANS_V2r1r0_20200717.bin


BIN
MDK-ARM/bin/MC_VOLANS_V2r1r1_20200720.bin


BIN
MDK-ARM/bin/MC_VOLANS_V2r1r2_20200812.bin


BIN
MDK-ARM/bin/MC_VOLANS_V2r1r3_20200814.bin


BIN
MDK-ARM/bin/MC_VOLANS_V2r1r3_20200821.bin


BIN
MDK-ARM/bin/MC_VOLANS_V2r1r3_20200821_1.bin


BIN
MDK-ARM/bin/MC_VOLANS_V2r1r5_20200904.bin


BIN
MDK-ARM/bin/MC_VOLANS_V2r1r6_20201023_JustForTest.bin


BIN
MDK-ARM/bin/MC_VOLANS_V2r1r6_20201201.bin


BIN
MDK-ARM/bin/MC_VOLANS_V2r1r6_20201203.bin


BIN
MDK-ARM/bin/MC_VOLANS_V2r1r6_20201203_1.bin


BIN
MDK-ARM/bin/MC_VOLANS_V2r1r7_20210128.bin


BIN
MDK-ARM/bin/MC_VOLANS_V2r1r7_20210202.bin


BIN
MDK-ARM/bin/MC_VOLANS_V2r1r7_20210202_1.bin


BIN
MDK-ARM/bin/MC_VOLANS_V2r1r8_20210414.bin


BIN
MDK-ARM/bin/MC_VOLANS_V2r1r8_20210414_1.bin


BIN
MDK-ARM/bin/MC_VOLANS_V2r2r0_20210723.bin


BIN
MDK-ARM/bin/MC_VOLANS_V2r2r0_20210902.bin


BIN
MDK-ARM/bin/MC_VOLANS_V2r2r1_20211008.bin


BIN
MDK-ARM/bin/MC_VOLANS_V2r2r1_20211202.bin


BIN
MDK-ARM/bin/MC_VS7500-TC013052-MS2002-V2.1.6.0.1_20210702.bin


BIN
MDK-ARM/bin/MC_VS7500-TC013052-MS2002-V2.1.6.0.2_20210708.bin


BIN
MDK-ARM/bin/MC_VS7500-TC033001-MS2001-V2.1.5.0.1_20201202.bin


BIN
MDK-ARM/bin/MC_VS7500-TC033001-MS2001-V2.1.5.0.2_20210115.bin


BIN
MDK-ARM/bin/MC_VS7500-TC033001-MS2001-V2.1.5.0.3_20210129.bin


BIN
MDK-ARM/bin/MC_VS7500-TC033001-MS2001-V2.1.5.0.4_20210130.bin


BIN
MDK-ARM/bin/MC_VS7500-TC033001-MS2001-V2.1.6.0.10_20210804.bin


BIN
MDK-ARM/bin/MC_VS7500-TC033001-MS2001-V2.1.6.0.4_20210416.bin


BIN
MDK-ARM/bin/MC_VS7500-TC033001-MS2001-V2.1.6.0.5_20210427.bin


BIN
MDK-ARM/bin/MC_VS7500-TC033001-MS2001-V2.1.6.0.5_20210427_1.bin


BIN
MDK-ARM/bin/MC_VS7500-TC033001-MS2001-V2.1.6.0.6_20210507.bin


BIN
MDK-ARM/bin/MC_VS7500-TC033001-MS2001-V2.1.6.0.7_20210525.bin


BIN
MDK-ARM/bin/MC_VS7500-TC033001-MS2001-V2.1.6.0.8_20210610.bin


BIN
MDK-ARM/bin/MC_VS7500-TC033001-MS2001-V2.1.6.0.9_20210701.bin


BIN
MDK-ARM/bin/MC_VS7500-TC033001-MS2002HK-V2.1.6.1.0_20210721.bin


BIN
MDK-ARM/bin/MC_VS7500-TC033001A-V2.1.5.0.1_20201130.bin


BIN
MDK-ARM/bin/MC_VS7500-TC033001A-V2.1.5.0.1_20201202.bin


BIN
MDK-ARM/bin/MC_VS75XX-TC033001-MS2001-V2.1.6.1.0_20210913.bin


BIN
MDK-ARM/bin/MC_VS75XX-TC033001-MS2001-V2.1.6.1.0_20210913_1.bin


BIN
MDK-ARM/bin/MC_VS75XX-TC033001-MS2001-V2.1.6.1.0_20210913_2.bin


BIN
MDK-ARM/bin/MC_VS75XX-TC033001-MS2001-V2.1.6.1.1_20211103.bin


BIN
MDK-ARM/bin/MC_VS75XX-TC033001-MS2001-V2.1.6.1.2_20211202.bin


BIN
MDK-ARM/bin/MC_VS75XX-TC033001-MS2002-V2.1.6.1.0_20210913.bin


BIN
MDK-ARM/bin/MC_VS75XX-TC033001-MS2002-V2.1.6.1.0_20210913_1.bin


BIN
MDK-ARM/bin/MC_VS75XX-TC033001-MS2002-V2.1.6.1.0_20210913_2.bin


BIN
MDK-ARM/bin/MC_VS75XX-TC033001-MS2002-V2.1.6.1.1_20211103.bin


BIN
MDK-ARM/bin/MC_VS75XX-TC033001-MS2002-V2.1.6.1.2_20211202.bin


BIN
MDK-ARM/bin/MC_VS75XX-TC033001-MS2003-V2.1.6.0.1_20211229.bin


BIN
MDK-ARM/bin/MC_VS75XX-TC033001-MS2003-V2.1.6.0.1_20211229_1.bin


BIN
MDK-ARM/bin/MC_VS75XX-TC033001-MS2003-V2.1.6.0.4_20220316.bin


BIN
MDK-ARM/bin/QD007A_CTL_APP.bin


+ 6 - 6
MDK-ARM/startup_stm32f103xb.lst

@@ -524,12 +524,12 @@ ork --depend=.\qd007a_ctl_app\startup_stm32f103xb.d -o.\qd007a_ctl_app\startup_
 ARM Macro Assembler    Page 9 
 
 
-stm32f103xb.o -ID:\MOTINOVA系统\Motor\QD007E\赛克力MS2003车款定制程序(出新西兰)
-\QD007E_CTRL_APP\MDK-ARM\RTE\_QD007A_CTL_APP -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.
-0.0\CMSIS\Include -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\1.1.0\Device\Include
- --predefine="__MICROLIB SETA 1" --predefine="__UVISION_VERSION SETA 522" --pre
-define="_RTE_ SETA 1" --predefine="STM32F10X_MD SETA 1" --list=startup_stm32f10
-3xb.lst startup_stm32f103xb.s
+stm32f103xb.o -ID:\MOTINOVA系统\Motor\Volans\TC033001-MS2003伟途尔车款定制程序(
+出新西兰)\QD007E_CTRL_APP\MDK-ARM\RTE\_QD007A_CTL_APP -IC:\Keil_v5\ARM\PACK\ARM
+\CMSIS\5.0.0\CMSIS\Include -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.3.0\Devic
+e\Include --predefine="__MICROLIB SETA 1" --predefine="__UVISION_VERSION SETA 5
+22" --predefine="_RTE_ SETA 1" --predefine="STM32F10X_MD SETA 1" --list=startup
+_stm32f103xb.lst startup_stm32f103xb.s
 
 
 

+ 7 - 7
MDK-ARM/stm32f1xx_stucpuregsaddressing.lst

@@ -123,19 +123,19 @@ ARM Macro Assembler    Page 2
    99 00000096                 END
 Command Line: --debug --xref --diag_suppress=9931 --cpu=Cortex-M3 --apcs=interw
 ork --depend=.\qd007a_ctl_app\stm32f1xx_stucpuregsaddressing.d -o.\qd007a_ctl_a
-pp\stm32f1xx_stucpuregsaddressing.o -ID:\MOTINOVA系统\Motor\QD007E\赛克力MS2003
-车款定制程序(出新西兰)\QD007E_CTRL_APP\MDK-ARM\RTE\_QD007A_CTL_APP -IC:\Keil_v5
-\ARM\PACK\ARM\CMSIS\5.0.0\CMSIS\Include -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DF
-P\1.1.0\Device\Include --predefine="__MICROLIB SETA 1" --predefine="__UVISION_V
-ERSION SETA 522" --predefine="_RTE_ SETA 1" --predefine="STM32F10X_MD SETA 1" -
+pp\stm32f1xx_stucpuregsaddressing.o -ID:\MOTINOVA系统\Motor\Volans\TC033001-MS2
+003伟途尔车款定制程序(出新西兰)\QD007E_CTRL_APP\MDK-ARM\RTE\_QD007A_CTL_APP -IC
+:\Keil_v5\ARM\PACK\ARM\CMSIS\5.0.0\CMSIS\Include -IC:\Keil_v5\ARM\PACK\Keil\STM
+32F1xx_DFP\2.3.0\Device\Include --predefine="__MICROLIB SETA 1" --predefine="__
+UVISION_VERSION SETA 522" --predefine="_RTE_ SETA 1" --predefine="STM32F10X_MD 
 
 
 
 ARM Macro Assembler    Page 3 
 
 
--list=stm32f1xx_stucpuregsaddressing.lst ..\SelfTestUser\src_specific\stm32f1xx
-_STUCpuRegsAddressing.s
+SETA 1" --list=stm32f1xx_stucpuregsaddressing.lst ..\SelfTestUser\src_specific\
+stm32f1xx_STUCpuRegsAddressing.s
 
 
 

+ 7 - 7
MDK-ARM/stm32f1xx_stucpuwalkpatkeil.lst

@@ -1593,13 +1593,13 @@ ARM Macro Assembler    Page 25
  1172 000006D0                 END
 Command Line: --debug --xref --diag_suppress=9931 --cpu=Cortex-M3 --apcs=interw
 ork --depend=.\qd007a_ctl_app\stm32f1xx_stucpuwalkpatkeil.d -o.\qd007a_ctl_app\
-stm32f1xx_stucpuwalkpatkeil.o -ID:\MOTINOVAϵͳ\Motor\QD007E\Èü¿ËÁ¦MS2003³µ¿î¶¨
-ÖÆ³ÌÐò(³öÐÂÎ÷À¼)\QD007E_CTRL_APP\MDK-ARM\RTE\_QD007A_CTL_APP -IC:\Keil_v5\ARM\P
-ACK\ARM\CMSIS\5.0.0\CMSIS\Include -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\1.1.
-0\Device\Include --predefine="__MICROLIB SETA 1" --predefine="__UVISION_VERSION
- SETA 522" --predefine="_RTE_ SETA 1" --predefine="STM32F10X_MD SETA 1" --list=
-stm32f1xx_stucpuwalkpatkeil.lst ..\SelfTestUser\src_specific\stm32f1xx_STUCpuWa
-lkpatKEIL.s
+stm32f1xx_stucpuwalkpatkeil.o -ID:\MOTINOVAϵͳ\Motor\Volans\TC033001-MS2003ΰÍ
+¾¶û³µ¿î¶¨ÖƳÌÐò(³öÐÂÎ÷À¼)\QD007E_CTRL_APP\MDK-ARM\RTE\_QD007A_CTL_APP -IC:\Keil
+_v5\ARM\PACK\ARM\CMSIS\5.0.0\CMSIS\Include -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx
+_DFP\2.3.0\Device\Include --predefine="__MICROLIB SETA 1" --predefine="__UVISIO
+N_VERSION SETA 522" --predefine="_RTE_ SETA 1" --predefine="STM32F10X_MD SETA 1
+" --list=stm32f1xx_stucpuwalkpatkeil.lst ..\SelfTestUser\src_specific\stm32f1xx
+_STUCpuWalkpatKEIL.s
 
 
 

+ 7 - 7
MDK-ARM/stm32f1xx_sturamwalkpatkeil.lst

@@ -430,13 +430,13 @@ ARM Macro Assembler    Page 7
   331 000001F2                 END
 Command Line: --debug --xref --diag_suppress=9931 --cpu=Cortex-M3 --apcs=interw
 ork --depend=.\qd007a_ctl_app\stm32f1xx_sturamwalkpatkeil.d -o.\qd007a_ctl_app\
-stm32f1xx_sturamwalkpatkeil.o -ID:\MOTINOVAϵͳ\Motor\QD007E\Èü¿ËÁ¦MS2003³µ¿î¶¨
-ÖÆ³ÌÐò(³öÐÂÎ÷À¼)\QD007E_CTRL_APP\MDK-ARM\RTE\_QD007A_CTL_APP -IC:\Keil_v5\ARM\P
-ACK\ARM\CMSIS\5.0.0\CMSIS\Include -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\1.1.
-0\Device\Include --predefine="__MICROLIB SETA 1" --predefine="__UVISION_VERSION
- SETA 522" --predefine="_RTE_ SETA 1" --predefine="STM32F10X_MD SETA 1" --list=
-stm32f1xx_sturamwalkpatkeil.lst ..\SelfTestUser\src_specific\stm32f1xx_STURamWa
-lkpatKEIL.s
+stm32f1xx_sturamwalkpatkeil.o -ID:\MOTINOVAϵͳ\Motor\Volans\TC033001-MS2003ΰÍ
+¾¶û³µ¿î¶¨ÖƳÌÐò(³öÐÂÎ÷À¼)\QD007E_CTRL_APP\MDK-ARM\RTE\_QD007A_CTL_APP -IC:\Keil
+_v5\ARM\PACK\ARM\CMSIS\5.0.0\CMSIS\Include -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx
+_DFP\2.3.0\Device\Include --predefine="__MICROLIB SETA 1" --predefine="__UVISIO
+N_VERSION SETA 522" --predefine="_RTE_ SETA 1" --predefine="STM32F10X_MD SETA 1
+" --list=stm32f1xx_sturamwalkpatkeil.lst ..\SelfTestUser\src_specific\stm32f1xx
+_STURamWalkpatKEIL.s
 
 
 

+ 4 - 3
User/Inc/var.h

@@ -74,7 +74,7 @@ typedef union MC_ERRORCODE
 		uint32_t Fault_TE_MCU             :1;//TE MCU故障
 		uint32_t Fault_TE_Circuit         :1;//TE 电路故障
 		uint32_t Fault_MC_Check           :1;//MC校验失败
-		uint32_t RS1 :1;
+		uint32_t Fault_Machine            :1;//机械故障
 		uint32_t RS2 :1;
 		uint32_t RS3 :1;
 		uint32_t RS4 :1;
@@ -255,7 +255,8 @@ typedef struct
 	uint16_t PBU_Check_FaultCnt;     //PBU校验错误次数 ,地址偏移32
 	uint8_t T_PCB_Max;               //PCB历史最高温,地址偏移34
 	uint8_t T_PCB_Min;               //PCB历史最低温,地址偏移35
-	uint8_t RS1[4];                  //预留,地址偏移36
+	uint8_t MachineFaultCnt;         //单向器打滑故障次数,地址偏移36
+	uint8_t RS1[3];	                
 	uint8_t T_Coil_Max;              //绕组历史最高温,地址偏移40
 	uint8_t T_Coil_Min;	             //绕组历史最低温,地址偏移41
 	uint8_t T_MCU_Max;               //MCU历史最高温,地址偏移42
@@ -495,7 +496,7 @@ extern MC_AttitudeAngle_Struct_t MC_AttitudeAngle;
 extern MC_RideLog_Struct_t MC_RideLog;
 extern MC_AvgPower_Struct_t MC_AvgPower;
 extern MCU_Manufacturter_Struct_t MCUManufacturer;
-
+extern uint16_t SpeedRatio;
 /**************************全局变量声明End***************************/
 
 /**************************全局函数声明Begin*************************/

+ 6 - 3
User/Src/cadence_sensor.c

@@ -98,7 +98,7 @@ void CadenceSensor_Process(MC_CadenceResult_Struct_t* p_MC_CadenceResult, uint16
 	//踏频计算及启动和停止判断
 	static uint32_t CadenceCalTimeCnt = 0;       //用于计算蹋频值
 	static int32_t Cadence_ActiveFlt = 0;
-	uint16_t CadenceTemp;
+	static uint16_t CadenceTemp;
 	
 	static uint8_t CadenceStarFlagCnt = 0;       //用于判断启动
 	static uint32_t CadenceStopJudgeTimeCnt = 0; //用于判断停止
@@ -111,8 +111,8 @@ void CadenceSensor_Process(MC_CadenceResult_Struct_t* p_MC_CadenceResult, uint16
 	  CadenceTemp	= 1000 / (HAL_GetTick() - CadenceCalTimeCnt);//转1圈有60个信号,根据两个信号之间的时间计算踏频值rpm
 		CadenceCalTimeCnt = HAL_GetTick();
 		
-		Cadence_ActiveFlt += (((int32_t)CadenceTemp << 8) - Cadence_ActiveFlt) >> 4;
-		p_MC_CadenceResult->Cadence_Data = (uint8_t)(Cadence_ActiveFlt >> 8);
+//		Cadence_ActiveFlt += (((int32_t)CadenceTemp << 8) - Cadence_ActiveFlt) >> 4;
+//		p_MC_CadenceResult->Cadence_Data = (uint8_t)(Cadence_ActiveFlt >> 8);
 		
 		/*上坡时,启动阈值为1*/
 		if(UpSlopeFlag == TRUE)
@@ -145,6 +145,9 @@ void CadenceSensor_Process(MC_CadenceResult_Struct_t* p_MC_CadenceResult, uint16
 		CadenceStopJudgeTimeCnt = HAL_GetTick();
 	}
 	
+	Cadence_ActiveFlt += (((int32_t)CadenceTemp << 10) - Cadence_ActiveFlt) >> 8;
+	p_MC_CadenceResult->Cadence_Data = (uint8_t)(Cadence_ActiveFlt >> 10);
+	
 	//停机判断
 	if(p_MC_CadenceResult->Cadence_Data < (1500 / StopDelayTime))
 	{

+ 48 - 0
User/Src/fault_check.c

@@ -793,6 +793,51 @@ void MC_Fault_Circuit_Process(MC_ErrorCode_Struct_t* p_MC_ErrorCode)
 	}
 }
 
+
+//机械故障
+void MC_Fault_Machine_Process(uint16_t MotorSpeed, uint16_t CadenceSpeed, ADC_SensorData_Struct_t SensorData, uint16_t speedratio, MC_ErrorCode_Struct_t* p_MC_ErrorCode)
+{
+	static uint32_t TimeCount_ClutchFault=0;
+	static uint16_t ClutchFaultCount=0;
+	
+	if( p_MC_ErrorCode->ERROR_Bit.Fault_Machine == 0)  //单向器没有故障时开始检测,有故障后故障一直存在,故障检测不再执行
+	{
+		if( (HAL_GetTick()-TimeCount_ClutchFault)>=20 )  //20ms执行一次故障判断
+		{
+			TimeCount_ClutchFault = HAL_GetTick();
+			if( (MotorSpeed > 500)&&(CadenceSpeed >= 15)&&(SensorData.TorqueSensor > 200)&&(SensorData.GasSensor < 50) )
+			{
+				if( speedratio > 1500 ) 
+				{
+					ClutchFaultCount++;
+					if( ClutchFaultCount>= 50)                  //速比连续出错50次判断为故障,时间将近1s
+					{
+						ClutchFaultCount=0;
+						p_MC_ErrorCode->ERROR_Bit.Fault_Machine = 1;
+						//记录故障日志
+						MC_ErrorLogSaveInfo.NotesInfo1 = 1;       //单向器打滑故障
+						MC_ErrorLogSaveInfo.NotesInfo2 = SensorData.TorqueSensor;
+						MC_ErrorLogSaveInfo.NotesInfo3 = SensorData.GasSensor;
+						ErrorLogSave_Update(&MC_ErrorLogSaveInfo);
+						IsErrorLogSaveInfoUpdateFlag = TRUE;
+						//存储故障次数
+						MC_RunLog1.MachineFaultCnt++;
+						RunLogSaveIndex = 1;
+					}
+				}
+				else 
+				{
+					ClutchFaultCount=0;			
+				}					
+			}
+			else
+			{
+				ClutchFaultCount=0;
+			}
+		}
+	}
+}
+
 /***********************全局函数定义***********************/
 //霍尔传感器故障检测
 void MC_Fault_HallSensor_Process(MC_HallSensorStatus_Struct_t HallSensorStatus, MC_ErrorCode_Struct_t* p_MC_ErrorCode)
@@ -1014,4 +1059,7 @@ void MC_Fault_Check_Process(void)
 	
 	//电路故障检测
 	MC_Fault_Circuit_Process(&MC_ErrorCode);
+	
+	//单向器打滑故障检测
+	MC_Fault_Machine_Process(MC_RunInfo.MotorSpeed, MC_CadenceResult.Cadence_Data, ADC_SensorData, SpeedRatio, &MC_ErrorCode);
 }

+ 3 - 3
User/Src/hall_sensor.c

@@ -156,7 +156,7 @@ int16_t MotorSpeedCal(uint16_t SVM_Angle, TrueOrFalse_Flag_Struct_t IsStopFlag)
 	static int16_t Result = 0;
 	
 	PreCnt++;
-	if(PreCnt >=8 )
+	if(PreCnt >=15 )
 	{
 	  PreCnt = 0;
 		AngleStep = (int32_t)(MC_HallSensorData.SVM_Angle - SVM_Angle_Old);
@@ -169,9 +169,9 @@ int16_t MotorSpeedCal(uint16_t SVM_Angle, TrueOrFalse_Flag_Struct_t IsStopFlag)
 		  AngleStep = 0;
 		}
 		SVM_Angle_Old = MC_HallSensorData.SVM_Angle;
-		AngleStep = AngleStep * 15000;//f = [Angle(k-1)-Angle(k)]/Tc
+		AngleStep = AngleStep * 1000;//f = [Angle(k-1)-Angle(k)]/Tc
 		FreqMotorFlt += (AngleStep - FreqMotorFlt) >> 8;
-		FreqMotor = FreqMotorFlt >> 19;
+		FreqMotor = FreqMotorFlt >> 16;
 		Result = 60 * FreqMotor >> 3;// 8n=60*f/p
 	}
 	

+ 23 - 8
User/Src/motor_control.c

@@ -1247,7 +1247,8 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(MC_CadenceResult_Struct_t C
 	#endif
 
   //根据指拨控制
-	if((GasCtrlMode == MC_SUPPORT_ENABLE) && (AdcSenorData.GasSensor > 50) && (MC_RunInfo.BikeSpeed > 100) && (MC_RunInfo.BikeSpeed < 255))
+	if((GasCtrlMode == MC_SUPPORT_ENABLE) && (AdcSenorData.GasSensor > 50) && (MC_RunInfo.BikeSpeed > 100) && \
+		( (MC_RunInfo.BikeSpeed < 250) || ((MC_RunInfo.BikeSpeed < 260)&&(AdcSenorData.TorqueSensor<200)) ) )
 	{
 	  MC_TorqueProcess_Param.MotorStopLock_Flag = RESET;
 		//停止判断
@@ -1414,7 +1415,8 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(MC_CadenceResult_Struct_t C
 		if(IsEnterGasMode == SET)
 		{
 		  Torque_Temp = MC_TorqueProcess_Param.TorqueApp;
-			TorqueAccStep = 3;
+			if( MC_SpeedSensorData.Speed_Data < 230 ) TorqueAccStep = 3;
+			else TorqueAccStep = 1;			
 			TorqueDecStep = 7;
 			//给定上限
 		  Torque_Temp = (Torque_Temp > MC_AssisParam.Gear_5.Upper_Iq) ? MC_AssisParam.Gear_5.Upper_Iq : Torque_Temp;
@@ -1427,6 +1429,15 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(MC_CadenceResult_Struct_t C
 		}
 		else
 		{
+			static int32_t SpeedRatio_NoFlt=1092;
+			static int32_t speedRatio_temp=1092<<12;	
+			
+			if( (MC_RunInfo.MotorSpeed > 500)&&(MC_CadenceResult.Cadence_Data >= 15)&&(MC_TorqueProcess_Param.TorqueApp > 200) )
+			{
+				SpeedRatio_NoFlt= (100*MC_RunInfo.MotorSpeed)/MC_CadenceResult.Cadence_Data;
+				speedRatio_temp += ((SpeedRatio_NoFlt << 12) - speedRatio_temp) >> 10;
+				SpeedRatio = speedRatio_temp >> 12;
+			}
 			//按照助力档位调节力矩输入值
 			switch(GearSt)
 			{
@@ -1688,17 +1699,21 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(MC_CadenceResult_Struct_t C
 		
 		//随车速调节助力比
 		static uint8_t  SpeedLimitEnd = 24;
-		
-		if((IsEnterGasMode == RESET) && (AdcSenorData.GasSensor > 50) && (CadenceData.Cadence_Dir == MC_Cadence_Forward))//指拨模式同时踩踏,限速40km/h
+		if(IsEnterGasMode == RESET)
 		{
 		  SpeedLimitEnd = MC_ConfigParam1.SpeedLimit-1;
+			//随车速调节助力比
+		  Torque_Temp = (uint16_t)((uint32_t)(Torque_Temp * Function_Linear_3Stage(0, 0, SpeedLimitEnd * 10, 52, MC_SpeedSensorData.Speed_Data)) >> 10);
 		}
 		else
 		{
 		  SpeedLimitEnd = 24;
-		}		
-		Torque_Temp = (uint16_t)((uint32_t)(Torque_Temp * Function_Linear_3Stage(0, 0, SpeedLimitEnd * 10, 52, MC_SpeedSensorData.Speed_Data)) >> 10);	
-		
+			//随车速调节助力比
+		  Torque_Temp = (uint16_t)((uint32_t)(Torque_Temp * Function_Linear_3Stage(0, 0, 230, 35, MC_SpeedSensorData.Speed_Data)) >> 10);	
+			Torque_Temp = (uint16_t)((uint32_t)(Torque_Temp * Function_Linear_3Stage(0, 0, 230, 35, MC_SpeedSensorData.Speed_Data)) >> 10);
+		}
+
+			
     //助力输出		
 		MC_TorqueProcess_Param.TorqueRef = Torque_Temp;
 		if(MC_TorqueProcess_Param.TorqueRef <= 0)
@@ -1801,7 +1816,7 @@ MC_CalParam_Struct_t MC_AssistRunMode_Torque_Process(MC_CadenceResult_Struct_t C
 			MC_MotorStop(&MC_StarFlag);
 		}
 		#if 0  //低于限速点启动电机
-		else if(MC_RunInfo.BikeSpeed < (((IsEnterGasMode == SET) && (CadenceData.Cadence_Dir == MC_Cadence_Forward)) ? (40 * 10 + 22) : MC_ConfigParam1.SpeedLimit * 10 + 22))
+		else if(MC_RunInfo.BikeSpeed < ((MC_ConfigParam1.SpeedLimit) * 10))
 		{
 		  MC_MotorStar(&MC_StarFlag);
 		}

+ 3 - 3
User/Src/var.c

@@ -39,7 +39,7 @@ MC_AttitudeAngle_Struct_t MC_AttitudeAngle;               //
 MC_RideLog_Struct_t MC_RideLog;                           //骑行历史
 MC_AvgPower_Struct_t MC_AvgPower;                         //助力平均功耗
 MCU_Manufacturter_Struct_t MCUManufacturer;               //MCU生厂商
-
+uint16_t SpeedRatio;
 //BMS默认设计信息
 const BMS_DesignInfo_Struct_t BMS_DesignInfo_Default =
 {
@@ -523,8 +523,8 @@ void Var_Init(void)
 		
 	//MC版本信息初始化,Mode和SN从EEPROM读取
   strncpy(MC_VerInfo.HW_Version, (char*)"QD007H.         ", 16);
-	strncpy(MC_VerInfo.FW_Version, (char*)"V2r1r6_20220316.", 16);
-	strncpy(Firmware_Special, (char*)"TC033001-MS2003-V0r4.           ", 32);
+	strncpy(MC_VerInfo.FW_Version, (char*)"V2r1r6_20220523.", 16);
+	strncpy(Firmware_Special, (char*)"TC033001-MS2003-V0r6.           ", 32);
 		
 	//电机型号
 	strncpy(MC_VerInfo.Mode, (char*)"VS7500.         ", 16);

Some files were not shown because too many files changed in this diff