123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- /************************************************************************
- 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!
- *************************************************************************/
|