spi_master.h 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. /************************************************************************
  2. Project: Welling Motor Control Paltform
  3. Filename: spi_master.h
  4. Partner Filename: spi_master.c
  5. Description: The header file of spi_master.c
  6. Complier: IAR Embedded Workbench for ARM 8.40.2
  7. CPU TYPE : GD32F30x
  8. *************************************************************************
  9. Copyright (c) 2022 Welling Motor Technology(Shanghai) Co. Ltd.
  10. All rights reserved.
  11. *************************************************************************
  12. *************************************************************************
  13. Revising History (ECL of this file):
  14. liyue create this file;
  15. ************************************************************************/
  16. /************************************************************************
  17. Beginning of File, do not put anything above here except notes
  18. Compiler Directives
  19. ************************************************************************/
  20. #ifndef SPI_MASTER_H
  21. #define SPI_MASTER_H
  22. #include "typedefine.h"
  23. /************************************************************************
  24. Compiler Directives (N/A)
  25. *************************************************************************/
  26. #ifdef _SPI_MASTER_C_
  27. #define _SPI_MASTER_EXT
  28. #else
  29. #define _SPI_MASTER_EXT extern
  30. #endif
  31. /************************************************************************
  32. Definitions & Macros
  33. *************************************************************************/
  34. #define FTLatency_HZ 100000 // 10us
  35. #define TLatency_TM (((ULONG)FBASE << 10) / FTLatency_HZ)
  36. #define DIFF_COEF_TBC (((ULONG)FTBC_HZ << 10) / FBASE)
  37. #define DIFF_COEF_TBS (((ULONG)FTBS_HZ << 10) / FBASE)
  38. /************************************************************************
  39. TypeDefs & Structure defines (N/A)
  40. *************************************************************************/
  41. typedef struct
  42. {
  43. UWORD uwFbHz;
  44. UWORD uwFreqTbcHz;
  45. UWORD uwSpdPllKpPu;
  46. UWORD uwSpdPllKiPu;
  47. UWORD uwSpdPllWvcHz;
  48. UWORD uwSpdPllMcoef;
  49. } SPI_RESOLVER_COEFIN;
  50. typedef struct
  51. {
  52. UWORD uwCurTs;
  53. UWORD uwCurTsPu;
  54. UWORD uwSpdPllKpPu;
  55. UWORD uwSpdPllKiPu;
  56. } SPI_RESOLVER_COEF;
  57. typedef struct
  58. {
  59. UWORD uwSpiThetaTmpZ1Pu;
  60. SWORD swSpdLpfTmpPu;
  61. SWORD swSpdLpfTmpZ1Pu;
  62. UWORD uwSpiOrignData;
  63. UWORD uwSpiThetaPu;
  64. UWORD swSpiThetaOffsetOrignPu;
  65. UWORD swSpiThetaOffsetPu;
  66. UWORD swSpiThetaOffset2Pu;
  67. SLONG slPllThetaPu;
  68. UWORD uwPllThetaPu;
  69. SLONG slThetaErrPu;
  70. SLONG slThetaErrZ1Pu;
  71. SLONG slThetaDeltaErrPu;
  72. SWORD swSpdFbkPu;
  73. SWORD swPllSpdFbkPu;
  74. SLONG slPllSpdFbkPu;
  75. SWORD swSpdFbkLpfPu;
  76. BOOL blMagRangeFltFlg;
  77. BOOL blSpiThetaFltFlg;
  78. } SPI_RESOLVER_OUT;
  79. /************************************************************************
  80. Constant Table
  81. *************************************************************************/
  82. /************************************************************************
  83. Exported Variables
  84. *************************************************************************/
  85. #ifdef _SPI_MASTER_C_
  86. _SPI_MASTER_EXT SPI_RESOLVER_COEFIN spi_stResolverCoefIn;
  87. _SPI_MASTER_EXT SPI_RESOLVER_COEF spi_stResolverCoef;
  88. _SPI_MASTER_EXT SPI_RESOLVER_OUT spi_stResolverOut;
  89. _SPI_MASTER_EXT BOOL spi_blWriteRegFinishFlg = FALSE;
  90. _SPI_MASTER_EXT BOOL spi_blReadRegCorrectFlg = FALSE;
  91. #else
  92. _SPI_MASTER_EXT SPI_RESOLVER_COEFIN spi_stResolverCoefIn;
  93. _SPI_MASTER_EXT SPI_RESOLVER_COEF spi_stResolverCoef;
  94. _SPI_MASTER_EXT SPI_RESOLVER_OUT spi_stResolverOut;
  95. _SPI_MASTER_EXT BOOL spi_blWriteRegFinishFlg;
  96. _SPI_MASTER_EXT BOOL spi_blReadRegCorrectFlg;
  97. #endif
  98. /************************************************************************
  99. Exported Function Call Prototypes
  100. *************************************************************************/
  101. #ifdef _SPI_MASTER_C_
  102. _SPI_MASTER_EXT void spi_voResolverInit(void);
  103. _SPI_MASTER_EXT void spi_voResolverCoef(SPI_RESOLVER_COEFIN *in, SPI_RESOLVER_COEF *out);
  104. _SPI_MASTER_EXT void spi_voResolver(const SPI_RESOLVER_COEF *coef, SPI_RESOLVER_OUT *out);
  105. _SPI_MASTER_EXT void spi_voResolverLock(void);
  106. _SPI_MASTER_EXT void spi_voMagneticDetection(void);
  107. _SPI_MASTER_EXT void spi_voReadWriteSeneorReg(void);
  108. #else
  109. _SPI_MASTER_EXT void spi_voResolverInit(void);
  110. _SPI_MASTER_EXT void spi_voResolverCoef(SPI_RESOLVER_COEFIN *in, SPI_RESOLVER_COEF *out);
  111. _SPI_MASTER_EXT void spi_voResolver(const SPI_RESOLVER_COEF *coef, SPI_RESOLVER_OUT *out);
  112. _SPI_MASTER_EXT void spi_voResolverLock(void);
  113. _SPI_MASTER_EXT void spi_voMagneticDetection(void);
  114. _SPI_MASTER_EXT void spi_voReadWriteSeneorReg(void);
  115. #endif
  116. /************************************************************************
  117. Flag Define (N/A)
  118. *************************************************************************/
  119. #endif
  120. /************************************************************************
  121. Copyright (c) 2022 Welling Motor Technology(Shanghai) Co. Ltd.
  122. All rights reserved.
  123. *************************************************************************
  124. End of this File (EOF)!
  125. Do not put anything after this part!
  126. *************************************************************************/