80 lines
3.2 KiB
C
80 lines
3.2 KiB
C
/**
|
|
******************************************************************************
|
|
* @file spi.h
|
|
* @author AMG Energy Solution Team
|
|
* @version V1.0.0
|
|
* @date 07-Feb-2022
|
|
* @brief This file provides all the headers of the spi communication.
|
|
******************************************************************************
|
|
* @attention
|
|
*
|
|
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
|
|
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
|
|
* TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
|
|
* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
|
|
* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
|
|
* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
|
|
*
|
|
* <h2><center>© COPYRIGHT 2022 AMG</center></h2>
|
|
******************************************************************************
|
|
*/
|
|
|
|
/** @addtogroup mBMS3
|
|
* @{
|
|
*/
|
|
|
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
|
#ifndef __SPI_H
|
|
#define __SPI_H
|
|
|
|
/* Includes ------------------------------------------------------------------*/
|
|
#include "hc32_ddl.h"
|
|
|
|
/* Exported types ------------------------------------------------------------*/
|
|
/* Exported defines ----------------------------------------------------------*/
|
|
/* SPI_NSS Port/Pin definition */
|
|
#define SPI1_NSS_PORT (PortD)
|
|
#define SPI1_NSS_PIN (Pin00)
|
|
#define SPI1_NSS_HIGH() (PORT_SetBits(SPI1_NSS_PORT, SPI1_NSS_PIN))
|
|
#define SPI1_NSS_LOW() (PORT_ResetBits(SPI1_NSS_PORT, SPI1_NSS_PIN))
|
|
|
|
#define SPI3_NSS_PORT (PortB)
|
|
#define SPI3_NSS_PIN (Pin12)
|
|
#define SPI3_NSS_HIGH() (PORT_SetBits(SPI3_NSS_PORT, SPI3_NSS_PIN))
|
|
#define SPI3_NSS_LOW() (PORT_ResetBits(SPI3_NSS_PORT, SPI3_NSS_PIN))
|
|
|
|
/* SPI unit and clock definition */
|
|
#define SPI1_UNIT (M4_SPI1)
|
|
#define SPI1_UNIT_CLOCK (PWC_FCG1_PERIPH_SPI1)
|
|
|
|
#define SPI3_UNIT (M4_SPI3)
|
|
#define SPI3_UNIT_CLOCK (PWC_FCG1_PERIPH_SPI3)
|
|
|
|
/* FLASH parameters */
|
|
#define FLASH_PAGE_SIZE (0x100u)
|
|
#define FLASH_SECTOR_SIZE (0x1000u)
|
|
#define FLASH_MAX_ADDR (0x800000ul)
|
|
#define FLASH_DUMMY_BYTE_VALUE (0xffu)
|
|
#define FLASH_BUSY_BIT_MASK (0x01u)
|
|
|
|
/* FLASH instruction */
|
|
#define FLASH_INSTR_WRITE_ENABLE (0x06u)
|
|
#define FLASH_INSTR_PAGE_PROGRAM (0x02u)
|
|
#define FLASH_INSTR_STANDARD_READ (0x03u)
|
|
#define FLASH_INSTR_ERASE_4KB_SECTOR (0x20u)
|
|
#define FLASH_INSTR_READ_SR1 (0x05u)
|
|
|
|
/* Exported constants --------------------------------------------------------*/
|
|
/* Exported macro ------------------------------------------------------------*/
|
|
/* Exported functions ------------------------------------------------------- */
|
|
|
|
void Spi1_Config(void);
|
|
void Spi3_Config(void);
|
|
|
|
uint8_t Spi3Flash_WriteReadByte(uint8_t u8Data); //SPI bus read/write bytes
|
|
uint8_t SPI1_ReadWriteByte(uint8_t TxData);
|
|
|
|
#endif
|
|
|
|
/*******************(C)COPYRIGHT 2022 AMG ********************END OF FILE******/
|