/************************************************************************ Project: Welling Motor Control Paltform Filename: spi_master.h Partner Filename: spi_master.c Description: The header file of spi_master.c Complier: IAR Embedded Workbench for ARM 6.50, IAR Systems. CPU TYPE : STM32F30x ************************************************************************* Copyright (c) 2014 Welling Motor Technology(Shanghai) Co. Ltd. All rights reserved. ************************************************************************* ************************************************************************* Revising History (ECL of this file): liyue create this file; ************************************************************************/ /************************************************************************ Beginning of File, do not put anything above here except notes Compiler Directives ************************************************************************/ #ifndef SPI_MASTER_H #define SPI_MASTER_H /************************************************************************ Compiler Directives (N/A) *************************************************************************/ #ifdef _SPI_MASTER_C_ #define _SPI_MASTER_EXT #else #define _SPI_MASTER_EXT extern #endif /************************************************************************ Definitions & Macros *************************************************************************/ #define FTLatency_HZ 100000 // 10us #define TLatency_TM (((ULONG)FBASE << 10) / FTLatency_HZ) #define DIFF_COEF_TBC (((ULONG)FTBC_HZ << 10) / FBASE) #define DIFF_COEF_TBS (((ULONG)FTBS_HZ << 10) / FBASE) /************************************************************************ TypeDefs & Structure defines (N/A) *************************************************************************/ typedef struct { UWORD uwFbHz; UWORD uwFreqTbcHz; UWORD uwSpdPllKpPu; UWORD uwSpdPllKiPu; UWORD uwSpdPllWvcHz; UWORD uwSpdPllMcoef; } SPI_RESOLVER_COEFIN; typedef struct { UWORD uwCurTs; UWORD uwCurTsPu; UWORD uwSpdPllKpPu; UWORD uwSpdPllKiPu; } SPI_RESOLVER_COEF; typedef struct { UWORD uwSpiThetaTmpZ1Pu; SWORD swSpdTmpPu; SWORD swSpdLpfTmpPu; SWORD swSpdLpfTmpZ1Pu; UWORD uwSpiOrignData; UWORD uwSpiThetaPu; UWORD swSpiThetaOffsetOrignPu; UWORD swSpiThetaOffsetPu; UWORD swSpiThetaOffset2Pu; SLONG slPllThetaPu; UWORD uwPllThetaPu; SLONG slThetaErrPu; SLONG slThetaErrZ1Pu; SLONG slThetaDeltaErrPu; SWORD swSpdFbkPu; SLONG slSpdFbkPu; SWORD swSpdFbkLpfPu; } SPI_RESOLVER_OUT; /************************************************************************ Constant Table *************************************************************************/ /************************************************************************ Exported Variables *************************************************************************/ #ifdef _SPI_MASTER_C_ _SPI_MASTER_EXT SPI_RESOLVER_COEFIN spi_stResolverCoefIn; _SPI_MASTER_EXT SPI_RESOLVER_COEF spi_stResolverCoef; _SPI_MASTER_EXT SPI_RESOLVER_OUT spi_stResolverOut; _SPI_MASTER_EXT BOOL blMagRangeFltFlg = FALSE; _SPI_MASTER_EXT BOOL blSpiThetaFltFlg = FALSE; #else _SPI_MASTER_EXT SPI_RESOLVER_COEFIN spi_stResolverCoefIn; _SPI_MASTER_EXT SPI_RESOLVER_COEF spi_stResolverCoef; _SPI_MASTER_EXT SPI_RESOLVER_OUT spi_stResolverOut; _SPI_MASTER_EXT BOOL blMagRangeFltFlg; _SPI_MASTER_EXT BOOL blSpiThetaFltFlg; #endif /************************************************************************ Exported Function Call Prototypes *************************************************************************/ #ifdef _SPI_SLAVE_C_ _SPI_MASTER_EXT void spi_voResolverInit(void); _SPI_MASTER_EXT void spi_voResolverCoef(SPI_RESOLVER_COEFIN *in, SPI_RESOLVER_COEF *out); _SPI_MASTER_EXT void spi_voResolver(SPI_RESOLVER_COEF *coef, SPI_RESOLVER_OUT *out); _SPI_MASTER_EXT void spi_voResolverLock(void); _SPI_MASTER_EXT void spi_voMagneticDetection(void); _SPI_MASTER_EXT void spi_voReadWriteSeneorReg(void); #else _SPI_MASTER_EXT void spi_voResolverInit(void); _SPI_MASTER_EXT void spi_voResolverCoef(SPI_RESOLVER_COEFIN *in, SPI_RESOLVER_COEF *out); _SPI_MASTER_EXT void spi_voResolver(SPI_RESOLVER_COEF *coef, SPI_RESOLVER_OUT *out); _SPI_MASTER_EXT void spi_voResolverLock(void); _SPI_MASTER_EXT void spi_voMagneticDetection(void); _SPI_MASTER_EXT void spi_voReadWriteSeneorReg(void); #endif /************************************************************************ Flag Define (N/A) *************************************************************************/ #endif /************************************************************************ Copyright (c) 2018 Welling Motor Technology(Shanghai) Co. Ltd. All rights reserved. ************************************************************************* End of this File (EOF)! Do not put anything after this part! *************************************************************************/