hardware_check.c 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. #include "hardware_check.h"
  2. #include "adc.h"
  3. #include "hall_sensor.h"
  4. #include "main.h"
  5. const uint16_t Hardware_ADTable[9]={
  6. 620, //0.50V
  7. 930, //0.75V
  8. 1241,//1.00V
  9. 1551,//1.25V
  10. 2544,//2.05V
  11. 2854,//2.30V
  12. 3164,//2.55V
  13. 3474,//2.80V
  14. 4096 //3.30V
  15. };
  16. const char Hardware_VersionTable[9]={
  17. '-',
  18. 'A',
  19. 'B',
  20. 'C',
  21. '*',
  22. 'D',
  23. 'E',
  24. 'F',
  25. '+'
  26. };
  27. void GetHardware_Versin(uint16_t VolaVal)
  28. {
  29. uint8_t Count;
  30. static uint16_t timecount = 0;
  31. static TrueOrFalse_Flag_Struct_t FirstExecuteFlag = FALSE;
  32. if(FirstExecuteFlag == FALSE)
  33. {
  34. FirstExecuteFlag = TRUE;
  35. if( HAL_GetTick()>1800 ) timecount=HAL_GetTick()+200; //若初始化时间太长,硬件版本识别时间延后200ms
  36. else timecount=2000;
  37. }
  38. if(HAL_GetTick() > timecount) //2s后开始识别
  39. {
  40. if(VersionIdentifyFinishedFlag == FALSE)
  41. {
  42. // strncpy(MC_VerInfo.FW_Version, (char*)" ", 16);
  43. // sprintf(&MC_VerInfo.FW_Version[0], "%4u", VolaVal);
  44. // if( IsComOK_TE.IsOK_Flag == TRUE ) MC_VerInfo.FW_Version[4] = 'Y';
  45. // else MC_VerInfo.FW_Version[4] = 'N';
  46. // sprintf(&MC_VerInfo.FW_Version[5], "%4u", MC_TE_SyncClockFreqScan);
  47. // MC_VerInfo.FW_Version[9] = ' ';
  48. // sprintf(&MC_VerInfo.FW_Version[10], "%5u", timecount);
  49. if( (IsComOK_TE.IsOK_Flag == TRUE)||(MC_TE_SyncClockFreqScan>200)||((VolaVal>1986)&&(VolaVal<2110)) ) //有反相器和TE的电路板
  50. {
  51. MC_HallSensorData.InverterExistFlag = TRUE;
  52. }
  53. else //无反相器和TE的电路板
  54. {
  55. MC_HallSensorData.InverterExistFlag = FALSE;
  56. for(Count=0; Count<9; Count++)
  57. {
  58. if(VolaVal <= Hardware_ADTable[Count])
  59. {
  60. strncpy(MC_VerInfo.HW_Version, (char*)"TTKZ019A.", 9);
  61. MC_VerInfo.HW_Version[7] =Hardware_VersionTable[Count];
  62. if(MC_ConfigParam1.SerialNum == 0x01)
  63. {
  64. MC_AssisParam.Gear_ECO.Gain_K = 627;
  65. MC_AssisParam.Gear_NORM.Gain_K = 1021;
  66. MC_AssisParam.Gear_SPORT.Gain_K = 1570;
  67. MC_AssisParam.Gear_SPORT.TorqueApp_TH = 560;
  68. MC_AssisParam.Gear_TURBO.Gain_K = 2356;
  69. MC_AssisParam.Gear_TURBO.TorqueApp_TH = 560;
  70. }
  71. else if(MC_ConfigParam1.SerialNum == 0x02)
  72. {
  73. MC_AssisParam.Gear_ECO.Gain_K = 714;
  74. MC_AssisParam.Gear_NORM.Gain_K = 1142;
  75. MC_AssisParam.Gear_SPORT.Gain_K = 1908;
  76. MC_AssisParam.Gear_SPORT.TorqueApp_TH = 560;
  77. MC_AssisParam.Gear_TURBO.Gain_K = 2862;
  78. MC_AssisParam.Gear_TURBO.TorqueApp_TH = 560;
  79. }
  80. VersionIdentifyFinishedFlag = TRUE;
  81. return ;
  82. }
  83. }
  84. }
  85. VersionIdentifyFinishedFlag = TRUE;
  86. }
  87. }
  88. }