Go to the documentation of this file.
21 #ifndef __STM32F7xx_HAL_NAND_H
22 #define __STM32F7xx_HAL_NAND_H
115 #if (USE_HAL_NAND_REGISTER_CALLBACKS == 1)
116 typedef struct __NAND_HandleTypeDef
131 #if (USE_HAL_NAND_REGISTER_CALLBACKS == 1)
132 void (* MspInitCallback) (
struct __NAND_HandleTypeDef * hnand);
133 void (* MspDeInitCallback) (
struct __NAND_HandleTypeDef * hnand);
134 void (* ItCallback) (
struct __NAND_HandleTypeDef * hnand);
138 #if (USE_HAL_NAND_REGISTER_CALLBACKS == 1)
144 HAL_NAND_MSP_INIT_CB_ID = 0x00U,
145 HAL_NAND_MSP_DEINIT_CB_ID = 0x01U,
146 HAL_NAND_IT_CB_ID = 0x02U
147 }HAL_NAND_CallbackIDTypeDef;
169 #if (USE_HAL_NAND_REGISTER_CALLBACKS == 1)
170 #define __HAL_NAND_RESET_HANDLE_STATE(__HANDLE__) do { \
171 (__HANDLE__)->State = HAL_NAND_STATE_RESET; \
172 (__HANDLE__)->MspInitCallback = NULL; \
173 (__HANDLE__)->MspDeInitCallback = NULL; \
176 #define __HAL_NAND_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_NAND_STATE_RESET)
231 #if (USE_HAL_NAND_REGISTER_CALLBACKS == 1)
273 #define NAND_DEVICE ((uint32_t)0x80000000U)
274 #define NAND_WRITE_TIMEOUT ((uint32_t)0x01000000U)
276 #define CMD_AREA ((uint32_t)(1<<16))
277 #define ADDR_AREA ((uint32_t)(1<<17))
279 #define NAND_CMD_AREA_A ((uint8_t)0x00U)
280 #define NAND_CMD_AREA_B ((uint8_t)0x01U)
281 #define NAND_CMD_AREA_C ((uint8_t)0x50U)
282 #define NAND_CMD_AREA_TRUE1 ((uint8_t)0x30U)
284 #define NAND_CMD_WRITE0 ((uint8_t)0x80U)
285 #define NAND_CMD_WRITE_TRUE1 ((uint8_t)0x10U)
286 #define NAND_CMD_ERASE0 ((uint8_t)0x60U)
287 #define NAND_CMD_ERASE1 ((uint8_t)0xD0U)
288 #define NAND_CMD_READID ((uint8_t)0x90U)
289 #define NAND_CMD_STATUS ((uint8_t)0x70U)
290 #define NAND_CMD_LOCK_STATUS ((uint8_t)0x7AU)
291 #define NAND_CMD_RESET ((uint8_t)0xFFU)
294 #define NAND_VALID_ADDRESS ((uint32_t)0x00000100U)
295 #define NAND_INVALID_ADDRESS ((uint32_t)0x00000200U)
296 #define NAND_TIMEOUT_ERROR ((uint32_t)0x00000400U)
297 #define NAND_BUSY ((uint32_t)0x00000000U)
298 #define NAND_ERROR ((uint32_t)0x00000001U)
299 #define NAND_READY ((uint32_t)0x00000040U)
315 #define ARRAY_ADDRESS(__ADDRESS__ , __HANDLE__) ((__ADDRESS__)->Page + \
316 (((__ADDRESS__)->Block + (((__ADDRESS__)->Plane) * ((__HANDLE__)->Config.PlaneSize)))* ((__HANDLE__)->Config.BlockSize)))
318 #define COLUMN_ADDRESS( __HANDLE__) ((__HANDLE__)->Config.PageSize)
325 #define ADDR_1ST_CYCLE(__ADDRESS__) (uint8_t)(__ADDRESS__)
326 #define ADDR_2ND_CYCLE(__ADDRESS__) (uint8_t)((__ADDRESS__) >> 8)
327 #define ADDR_3RD_CYCLE(__ADDRESS__) (uint8_t)((__ADDRESS__) >> 16)
328 #define ADDR_4TH_CYCLE(__ADDRESS__) (uint8_t)((__ADDRESS__) >> 24)
335 #define COLUMN_1ST_CYCLE(__ADDRESS__) (uint8_t)(__ADDRESS__)
336 #define COLUMN_2ND_CYCLE(__ADDRESS__) (uint8_t)((__ADDRESS__) >> 8)
HAL_StatusTypeDef HAL_NAND_ECC_Disable(NAND_HandleTypeDef *hnand)
NAND Memory info Structure definition.
void HAL_NAND_MspInit(NAND_HandleTypeDef *hnand)
HAL_StatusTypeDef
HAL Status structures definition
__IO HAL_NAND_StateTypeDef State
NAND Memory electronic signature Structure definition.
HAL_StatusTypeDef HAL_NAND_Read_Page_16b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint16_t *pBuffer, uint32_t NumPageToRead)
HAL_StatusTypeDef HAL_NAND_Reset(NAND_HandleTypeDef *hnand)
NAND Memory address Structure definition.
HAL_LockTypeDef
HAL Lock structures definition
HAL_StatusTypeDef HAL_NAND_Write_Page_8b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint8_t *pBuffer, uint32_t NumPageToWrite)
uint32_t HAL_NAND_Address_Inc(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress)
HAL_StatusTypeDef HAL_NAND_DeInit(NAND_HandleTypeDef *hnand)
NAND_DeviceConfigTypeDef Config
HAL_StatusTypeDef HAL_NAND_Read_Page_8b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint8_t *pBuffer, uint32_t NumPageToRead)
HAL_NAND_StateTypeDef HAL_NAND_GetState(NAND_HandleTypeDef *hnand)
HAL_StatusTypeDef HAL_NAND_Write_SpareArea_8b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint8_t *pBuffer, uint32_t NumSpareAreaTowrite)
HAL_StatusTypeDef HAL_NAND_Init(NAND_HandleTypeDef *hnand, FMC_NAND_PCC_TimingTypeDef *ComSpace_Timing, FMC_NAND_PCC_TimingTypeDef *AttSpace_Timing)
HAL_NAND_StateTypeDef
HAL NAND State structures definition.
HAL_StatusTypeDef HAL_NAND_ECC_Enable(NAND_HandleTypeDef *hnand)
HAL_StatusTypeDef HAL_NAND_Read_SpareArea_8b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint8_t *pBuffer, uint32_t NumSpareAreaToRead)
FMC NAND Timing parameters structure definition.
HAL_StatusTypeDef HAL_NAND_GetECC(NAND_HandleTypeDef *hnand, uint32_t *ECCval, uint32_t Timeout)
HAL_StatusTypeDef HAL_NAND_Read_SpareArea_16b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint16_t *pBuffer, uint32_t NumSpareAreaToRead)
HAL_StatusTypeDef HAL_NAND_Read_ID(NAND_HandleTypeDef *hnand, NAND_IDTypeDef *pNAND_ID)
HAL_StatusTypeDef HAL_NAND_Write_SpareArea_16b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint16_t *pBuffer, uint32_t NumSpareAreaTowrite)
NAND handle Structure definition.
FMC_NAND_TypeDef * Instance
void HAL_NAND_IRQHandler(NAND_HandleTypeDef *hnand)
HAL_StatusTypeDef HAL_NAND_Write_Page_16b(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress, uint16_t *pBuffer, uint32_t NumPageToWrite)
Header file of FMC HAL module.
void HAL_NAND_ITCallback(NAND_HandleTypeDef *hnand)
uint32_t HAL_NAND_Read_Status(NAND_HandleTypeDef *hnand)
HAL_StatusTypeDef HAL_NAND_Erase_Block(NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress)
FMC NAND Configuration Structure definition
FunctionalState ExtraCommandEnable
HAL_StatusTypeDef HAL_NAND_ConfigDevice(NAND_HandleTypeDef *hnand, NAND_DeviceConfigTypeDef *pDeviceConfig)
FMC_NAND_InitTypeDef Init
void HAL_NAND_MspDeInit(NAND_HandleTypeDef *hnand)