hardware_check.c 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #include "hardware_check.h"
  2. #include "adc.h"
  3. #include "hall_sensor.h"
  4. const uint16_t Hardware_ADTable[9]={
  5. 620, //0.50V
  6. 930, //0.75V
  7. 1241,//1.00V
  8. 1551,//1.25V
  9. 2544,//2.05V
  10. 2854,//2.30V
  11. 3164,//2.55V
  12. 3474,//2.80V
  13. 4096 //3.30V
  14. };
  15. const char Hardware_VersionTable[9]={
  16. '-',
  17. 'A',
  18. 'B',
  19. 'C',
  20. '*',
  21. 'D',
  22. 'E',
  23. 'F',
  24. '+'
  25. };
  26. void GetHardware_Versin(uint16_t VolaVal)
  27. {
  28. uint8_t Count;
  29. static _Bool VersionIdentifyExecuteFlag = FALSE;
  30. if(HAL_GetTick() > 2000) //3s后开始识别
  31. {
  32. if(VersionIdentifyExecuteFlag == FALSE)
  33. {
  34. VersionIdentifyExecuteFlag = TRUE;
  35. if( (IsComOK_TE.IsOK_Flag == TRUE)||(MC_TE_SyncClockFreqScan>200)||((VolaVal>1986)&&(VolaVal<2110)) ) //有反相器和TE的电路板
  36. {
  37. MC_HallSensorData.InverterExistFlag = TRUE;
  38. }
  39. else //无反相器和TE的电路板
  40. {
  41. MC_HallSensorData.InverterExistFlag = FALSE;
  42. for(Count=0; Count<9; Count++)
  43. {
  44. if(VolaVal <= Hardware_ADTable[Count])
  45. {
  46. strncpy(MC_VerInfo.HW_Version, (char*)"TTKZ019A.", 9);
  47. MC_VerInfo.HW_Version[7] =Hardware_VersionTable[Count];
  48. return ;
  49. }
  50. }
  51. }
  52. }
  53. }
  54. }