From 03d00df0ca63dca54d2e88e5b720d9d1070be0de Mon Sep 17 00:00:00 2001 From: ccli8 Date: Thu, 6 Oct 2016 17:30:20 +0800 Subject: [PATCH] Fix pin definition error regarding SD, I2C, and SPI 1. Fix pin definition error regarding SD. 2. Fix pin definition error regarding I2C. 3. Fix pin definition error regarding SPI. 4. Add pinmap for SD. --- .../TARGET_NUMAKER_PFM_M453/PeripheralPins.h | 10 +++ .../PeripheralNames.h | 5 ++ .../PeripheralPins.c | 71 +++++++++++++++++-- .../device/StdDriver/nuc472_sys.h | 69 +++++++++--------- 4 files changed, 115 insertions(+), 40 deletions(-) diff --git a/targets/TARGET_NUVOTON/TARGET_M451/TARGET_NUMAKER_PFM_M453/PeripheralPins.h b/targets/TARGET_NUVOTON/TARGET_M451/TARGET_NUMAKER_PFM_M453/PeripheralPins.h index 5b1a453de9..6c9a26b865 100644 --- a/targets/TARGET_NUVOTON/TARGET_M451/TARGET_NUMAKER_PFM_M453/PeripheralPins.h +++ b/targets/TARGET_NUVOTON/TARGET_M451/TARGET_NUMAKER_PFM_M453/PeripheralPins.h @@ -55,6 +55,16 @@ extern const PinMap PinMap_SPI_MISO[]; extern const PinMap PinMap_SPI_SCLK[]; extern const PinMap PinMap_SPI_SSEL[]; +//*** SD *** + +extern const PinMap PinMap_SD_CD[]; +extern const PinMap PinMap_SD_CMD[]; +extern const PinMap PinMap_SD_CLK[]; +extern const PinMap PinMap_SD_DAT0[]; +extern const PinMap PinMap_SD_DAT1[]; +extern const PinMap PinMap_SD_DAT2[]; +extern const PinMap PinMap_SD_DAT3[]; + #ifdef __cplusplus } #endif diff --git a/targets/TARGET_NUVOTON/TARGET_NUC472/TARGET_NUMAKER_PFM_NUC472/PeripheralNames.h b/targets/TARGET_NUVOTON/TARGET_NUC472/TARGET_NUMAKER_PFM_NUC472/PeripheralNames.h index fe3cb0ed96..2cdc0bbc45 100644 --- a/targets/TARGET_NUVOTON/TARGET_NUC472/TARGET_NUMAKER_PFM_NUC472/PeripheralNames.h +++ b/targets/TARGET_NUVOTON/TARGET_NUC472/TARGET_NUMAKER_PFM_NUC472/PeripheralNames.h @@ -115,6 +115,11 @@ typedef enum { DMA_0 = (int) NU_MODNAME(PDMA_BASE, 0) } DMAName; +typedef enum { + SD_0 = (int) NU_MODNAME(SD_BASE, 0), + SD_1 = (int) NU_MODNAME(SD_BASE, 1) +} SDName; + #ifdef __cplusplus } #endif diff --git a/targets/TARGET_NUVOTON/TARGET_NUC472/TARGET_NUMAKER_PFM_NUC472/PeripheralPins.c b/targets/TARGET_NUVOTON/TARGET_NUC472/TARGET_NUMAKER_PFM_NUC472/PeripheralPins.c index 31779f32f5..4ab4693a68 100644 --- a/targets/TARGET_NUVOTON/TARGET_NUC472/TARGET_NUMAKER_PFM_NUC472/PeripheralPins.c +++ b/targets/TARGET_NUVOTON/TARGET_NUC472/TARGET_NUMAKER_PFM_NUC472/PeripheralPins.c @@ -227,7 +227,7 @@ const PinMap PinMap_I2C_SDA[] = { {PD_3, I2C_3, SYS_GPD_MFPL_PD3MFP_I2C3_SDA}, {PD_9, I2C_0, SYS_GPD_MFPH_PD9MFP_I2C0_SDA}, {PD_12, I2C_4, SYS_GPD_MFPH_PD12MFP_I2C4_SDA}, - {PG_15, I2C_1, SYS_GPG_MFPH_PG15MFP_I2C1_SDA}, + {PG_14, I2C_1, SYS_GPG_MFPH_PG14MFP_I2C1_SDA}, {PH_1, I2C_1, SYS_GPH_MFPL_PH1MFP_I2C1_SDA}, {PH_4, I2C_3, SYS_GPH_MFPL_PH4MFP_I2C3_SDA}, {PI_8, I2C_2, SYS_GPI_MFPH_PI8MFP_I2C2_SDA}, @@ -243,7 +243,7 @@ const PinMap PinMap_I2C_SCL[] = { {PD_2, I2C_3, SYS_GPD_MFPL_PD2MFP_I2C3_SCL}, {PD_8, I2C_0, SYS_GPD_MFPH_PD8MFP_I2C0_SCL}, {PD_10, I2C_4, SYS_GPD_MFPH_PD10MFP_I2C4_SCL}, - {PG_14, I2C_1, SYS_GPG_MFPH_PG14MFP_I2C1_SCL}, + {PG_15, I2C_1, SYS_GPG_MFPH_PG15MFP_I2C1_SCL}, {PH_0, I2C_1, SYS_GPH_MFPL_PH0MFP_I2C1_SCL}, {PH_3, I2C_3, SYS_GPH_MFPL_PH3MFP_I2C3_SCL}, {PI_7, I2C_2, SYS_GPI_MFPL_PI7MFP_I2C2_SCL}, @@ -370,7 +370,7 @@ const PinMap PinMap_SPI_MOSI[] = { {PA_12, SPI_3, SYS_GPA_MFPH_PA12MFP_SPI3_MOSI1}, {PB_5, SPI_2, SYS_GPB_MFPL_PB5MFP_SPI2_MOSI0}, {PB_13, SPI_2, SYS_GPB_MFPH_PB13MFP_SPI2_MOSI1}, - {PC_4, SPI_0, SYS_GPC_MFPL_PC4MFP_SPI0_MOSI0}, + {PC_4, SPI_0, SYS_GPC_MFPL_PC4MFP_SPI0_MOSI1}, {PC_7, SPI_0, SYS_GPC_MFPL_PC7MFP_SPI0_MOSI0}, {PC_13, SPI_1, SYS_GPC_MFPH_PC13MFP_SPI1_MOSI1}, {PC_15, SPI_1, SYS_GPC_MFPH_PC15MFP_SPI1_MOSI0}, @@ -379,7 +379,7 @@ const PinMap PinMap_SPI_MOSI[] = { {PE_7, SPI_0, SYS_GPE_MFPL_PE7MFP_SPI0_MOSI0}, {PE_11, SPI_0, SYS_GPE_MFPH_PE11MFP_SPI0_MOSI1}, {PF_0, SPI_1, SYS_GPF_MFPL_PF0MFP_SPI1_MOSI0}, - {PF_1, SPI_2, SYS_GPF_MFPL_PF1MFP_SPI2_MOSI0}, + {PF_1, SPI_2, SYS_GPF_MFPL_PF1MFP_SPI2_MOSI1}, {PF_5, SPI_3, SYS_GPF_MFPL_PF5MFP_SPI3_MOSI0}, {PG_8, SPI_2, SYS_GPG_MFPH_PG8MFP_SPI2_MOSI0}, {PH_8, SPI_2, SYS_GPH_MFPH_PH8MFP_SPI2_MOSI0}, @@ -447,3 +447,66 @@ const PinMap PinMap_SPI_SSEL[] = { {NC, NC, 0} }; + +//*** SD *** + +const PinMap PinMap_SD_CD[] = { + {PC_12, SD_1, SYS_GPC_MFPH_PC12MFP_SD1_CDn}, + {PD_3, SD_0, SYS_GPD_MFPL_PD3MFP_SD0_CDn}, + {PE_5, SD_0, SYS_GPE_MFPL_PE5MFP_SD0_CDn}, + {PF_6, SD_0, SYS_GPF_MFPL_PF6MFP_SD0_CDn}, + + {NC, NC, 0} +}; + +const PinMap PinMap_SD_CMD[] = { + {PC_13, SD_1, SYS_GPC_MFPH_PC13MFP_SD1_CMD}, + {PD_6, SD_0, SYS_GPD_MFPL_PD6MFP_SD0_CMD}, + {PE_6, SD_0, SYS_GPE_MFPL_PE6MFP_SD0_CMD}, + {PF_7, SD_0, SYS_GPF_MFPL_PF7MFP_SD0_CMD}, + + {NC, NC, 0} +}; + +const PinMap PinMap_SD_CLK[] = { + {PC_14, SD_1, SYS_GPC_MFPH_PC14MFP_SD1_CLK}, + {PD_7, SD_0, SYS_GPD_MFPL_PD7MFP_SD0_CLK}, + {PE_7, SD_0, SYS_GPE_MFPL_PE7MFP_SD0_CLK}, + {PF_8, SD_0, SYS_GPF_MFPH_PF8MFP_SD0_CLK}, + + {NC, NC, 0} +}; + +const PinMap PinMap_SD_DAT0[] = { + {PC_9, SD_1, SYS_GPC_MFPH_PC9MFP_SD1_DAT0}, + {PD_2, SD_1, SYS_GPD_MFPL_PD2MFP_SD1_DAT0}, + {PE_11, SD_0, SYS_GPE_MFPH_PE11MFP_SD0_DAT0}, + {PF_5, SD_0, SYS_GPF_MFPL_PF5MFP_SD0_DAT0}, + + {NC, NC, 0} +}; + +const PinMap PinMap_SD_DAT1[] = { + {PD_1, SD_1, SYS_GPD_MFPL_PD1MFP_SD1_DAT1}, + {PE_10, SD_0, SYS_GPE_MFPH_PE10MFP_SD0_DAT1}, + {PF_4, SD_0, SYS_GPF_MFPL_PF4MFP_SD0_DAT1}, + + + {NC, NC, 0} +}; + +const PinMap PinMap_SD_DAT2[] = { + {PD_0, SD_1, SYS_GPD_MFPL_PD0MFP_SD1_DAT2}, + {PE_9, SD_0, SYS_GPE_MFPH_PE9MFP_SD0_DAT2}, + {PF_3, SD_0, SYS_GPF_MFPL_PF3MFP_SD0_DAT2}, + + {NC, NC, 0} +}; + +const PinMap PinMap_SD_DAT3[] = { + {PC_15, SD_1, SYS_GPC_MFPH_PC15MFP_SD1_DAT3}, + {PE_8, SD_0, SYS_GPE_MFPH_PE8MFP_SD0_DAT3}, + {PF_2, SD_0, SYS_GPF_MFPL_PF2MFP_SD0_DAT3}, + + {NC, NC, 0} +}; diff --git a/targets/TARGET_NUVOTON/TARGET_NUC472/device/StdDriver/nuc472_sys.h b/targets/TARGET_NUVOTON/TARGET_NUC472/device/StdDriver/nuc472_sys.h index ed4ce3ae5e..bf6cc6995b 100644 --- a/targets/TARGET_NUVOTON/TARGET_NUC472/device/StdDriver/nuc472_sys.h +++ b/targets/TARGET_NUVOTON/TARGET_NUC472/device/StdDriver/nuc472_sys.h @@ -2,7 +2,7 @@ * @file SYS.h * @version V1.0 * $Revision 1 $ - * $Date: 14/10/06 1:15p $ + * $Date: 15/10/21 1:35p $ * @brief NUC472/NUC442 SYS Header File * * @note @@ -32,16 +32,14 @@ extern "C" /*---------------------------------------------------------------------------------------------------------*/ /* Module Reset Control Resister constant definitions. */ /*---------------------------------------------------------------------------------------------------------*/ -#define CHIP_RST ((0x0<<24)|SYS_IPRST0_CHIPRST_Pos) /*!BODCTL &= ~SYS_BODCTL_BODINTF_Msk) +#define SYS_CLEAR_BOD_INT_FLAG() (SYS->BODCTL |= SYS_BODCTL_BODINTF_Msk) /** * @brief Set Brown-out detector function to normal mode