EFM32 Wonder Gecko Software Documentation
efm32wg-doc-5.1.2
|
EBI External Bus Interface (EBI) Peripheral API.
This module contains functions to control the EBI peripheral of Silicon Labs 32-bit MCUs and SoCs. The EBI is used for accessing external parallel devices. The devices appear as part of the internal memory map of the MCU.
Data Structures | |
struct | EBI_Init_TypeDef |
struct | EBI_TFTInit_TypeDef |
Macros | |
#define | EBI_BANK0 (uint32_t)(1 << 1) |
#define | EBI_BANK1 (uint32_t)(1 << 2) |
#define | EBI_BANK2 (uint32_t)(1 << 3) |
#define | EBI_BANK3 (uint32_t)(1 << 4) |
#define | EBI_CS0 (uint32_t)(1 << 1) |
#define | EBI_CS1 (uint32_t)(1 << 2) |
#define | EBI_CS2 (uint32_t)(1 << 3) |
#define | EBI_CS3 (uint32_t)(1 << 4) |
#define | EBI_INIT_DEFAULT |
#define | EBI_TFTINIT_DEFAULT |
Enumerations | |
enum | EBI_AHigh_TypeDef { ebiAHighA0 = EBI_ROUTE_APEN_A0, ebiAHighA5 = EBI_ROUTE_APEN_A5, ebiAHighA6 = EBI_ROUTE_APEN_A6, ebiAHighA7 = EBI_ROUTE_APEN_A7, ebiAHighA8 = EBI_ROUTE_APEN_A8, ebiAHighA9 = EBI_ROUTE_APEN_A9, ebiAHighA10 = EBI_ROUTE_APEN_A10, ebiAHighA11 = EBI_ROUTE_APEN_A11, ebiAHighA12 = EBI_ROUTE_APEN_A12, ebiAHighA13 = EBI_ROUTE_APEN_A13, ebiAHighA14 = EBI_ROUTE_APEN_A14, ebiAHighA15 = EBI_ROUTE_APEN_A15, ebiAHighA16 = EBI_ROUTE_APEN_A16, ebiAHighA17 = EBI_ROUTE_APEN_A17, ebiAHighA18 = EBI_ROUTE_APEN_A18, ebiAHighA19 = EBI_ROUTE_APEN_A19, ebiAHighA20 = EBI_ROUTE_APEN_A20, ebiAHighA21 = EBI_ROUTE_APEN_A21, ebiAHighA22 = EBI_ROUTE_APEN_A22, ebiAHighA23 = EBI_ROUTE_APEN_A23, ebiAHighA24 = EBI_ROUTE_APEN_A24, ebiAHighA25 = EBI_ROUTE_APEN_A25, ebiAHighA26 = EBI_ROUTE_APEN_A26, ebiAHighA27 = EBI_ROUTE_APEN_A27, ebiAHighA28 = EBI_ROUTE_APEN_A28 } |
enum | EBI_ALow_TypeDef { ebiALowA0 = EBI_ROUTE_ALB_A0, ebiALowA8 = EBI_ROUTE_ALB_A8, ebiALowA16 = EBI_ROUTE_ALB_A16, ebiALowA24 = EBI_ROUTE_ALB_A24 } |
enum | EBI_Line_TypeDef { ebiLineARDY, ebiLineALE, ebiLineWE, ebiLineRE, ebiLineCS, ebiLineBL, ebiLineTFTVSync, ebiLineTFTHSync, ebiLineTFTDataEn, ebiLineTFTDClk, ebiLineTFTCS } |
enum | EBI_Location_TypeDef { ebiLocation0 = EBI_ROUTE_LOCATION_LOC0, ebiLocation1 = EBI_ROUTE_LOCATION_LOC1, ebiLocation2 = EBI_ROUTE_LOCATION_LOC2 } |
enum | EBI_Mode_TypeDef { ebiModeD8A8 = EBI_CTRL_MODE_D8A8, ebiModeD16A16ALE = EBI_CTRL_MODE_D16A16ALE, ebiModeD8A24ALE = EBI_CTRL_MODE_D8A24ALE, ebiModeD16 = EBI_CTRL_MODE_D16 } |
enum | EBI_Polarity_TypeDef { ebiActiveLow = 0, ebiActiveHigh = 1 } |
enum | EBI_TFTBank_TypeDef { ebiTFTBank0 = EBI_TFTCTRL_BANKSEL_BANK0, ebiTFTBank1 = EBI_TFTCTRL_BANKSEL_BANK1, ebiTFTBank2 = EBI_TFTCTRL_BANKSEL_BANK2, ebiTFTBank3 = EBI_TFTCTRL_BANKSEL_BANK3 } |
enum | EBI_TFTColorSrc_TypeDef { ebiTFTColorSrcMem = EBI_TFTCTRL_COLOR1SRC_MEM, ebiTFTColorSrcPixel1 = EBI_TFTCTRL_COLOR1SRC_PIXEL1 } |
enum | EBI_TFTDDMode_TypeDef { ebiTFTDDModeDisabled = EBI_TFTCTRL_DD_DISABLED, ebiTFTDDModeInternal = EBI_TFTCTRL_DD_INTERNAL, ebiTFTDDModeExternal = EBI_TFTCTRL_DD_EXTERNAL } |
enum | EBI_TFTFrameBufTrigger_TypeDef { ebiTFTFrameBufTriggerVSync = EBI_TFTCTRL_FBCTRIG_VSYNC, ebiTFTFrameBufTriggerHSync = EBI_TFTCTRL_FBCTRIG_HSYNC } |
enum | EBI_TFTInterleave_TypeDef { ebiTFTInterleaveUnlimited = EBI_TFTCTRL_INTERLEAVE_UNLIMITED, ebiTFTInterleaveOnePerDClk = EBI_TFTCTRL_INTERLEAVE_ONEPERDCLK, ebiTFTInterleavePorch = EBI_TFTCTRL_INTERLEAVE_PORCH } |
enum | EBI_TFTMaskBlend_TypeDef { ebiTFTMBDisabled = EBI_TFTCTRL_MASKBLEND_DISABLED, ebiTFTMBIMask = EBI_TFTCTRL_MASKBLEND_IMASK, ebiTFTMBIAlpha = EBI_TFTCTRL_MASKBLEND_IALPHA, ebiTFTMBIMaskAlpha = EBI_TFTCTRL_MASKBLEND_IMASKIALPHA, ebiTFTMBEMask = EBI_TFTCTRL_MASKBLEND_EMASK, ebiTFTMBEAlpha = EBI_TFTCTRL_MASKBLEND_EALPHA, ebiTFTMBEMaskAlpha = EBI_TFTCTRL_MASKBLEND_EMASKEALPHA } |
enum | EBI_TFTWidth_TypeDef { ebiTFTWidthByte = EBI_TFTCTRL_WIDTH_BYTE, ebiTFTWidthHalfWord = EBI_TFTCTRL_WIDTH_HALFWORD } |
Functions | |
void | EBI_AddressTimingSet (int setupCycles, int holdCycles) |
Configure timing values of address latch bus accesses. More... | |
void | EBI_AltMapEnable (bool enable) |
Configure Alternate Address Map support Enables or disables 256MB address range for all banks. More... | |
uint32_t | EBI_BankAddress (uint32_t bank) |
Return base address of EBI bank. More... | |
void | EBI_BankAddressTimingConfig (uint32_t banks, bool halfALE) |
Configure address operation parameters for selected bank. More... | |
void | EBI_BankAddressTimingSet (uint32_t banks, int setupCycles, int holdCycles) |
Configure timing values of address latch bus accesses. More... | |
void | EBI_BankByteLaneEnable (uint32_t banks, bool enable) |
Configure Byte Lane Enable for select banks timing support. More... | |
void | EBI_BankEnable (uint32_t banks, bool enable) |
Enable or disable EBI Bank. More... | |
void | EBI_BankPolaritySet (uint32_t banks, EBI_Line_TypeDef line, EBI_Polarity_TypeDef polarity) |
Configure EBI pin polarity for selected bank(s) for devices with individual timing support. More... | |
void | EBI_BankReadTimingConfig (uint32_t banks, bool pageMode, bool prefetch, bool halfRE) |
Configure read operation parameters for selected bank. More... | |
void | EBI_BankReadTimingSet (uint32_t banks, int setupCycles, int strobeCycles, int holdCycles) |
Configure timing values of read bus accesses. More... | |
void | EBI_BankWriteTimingConfig (uint32_t banks, bool writeBufDisable, bool halfWE) |
Configure write operation parameters for selected bank. More... | |
void | EBI_BankWriteTimingSet (uint32_t banks, int setupCycles, int strobeCycles, int holdCycles) |
Configure timing values of write bus accesses. More... | |
void | EBI_ChipSelectEnable (uint32_t cs, bool enable) |
Enable or disable EBI Chip Select. More... | |
void | EBI_Disable (void) |
Disable External Bus Interface. | |
void | EBI_Init (const EBI_Init_TypeDef *ebiInit) |
Configure and enable External Bus Interface. More... | |
__STATIC_INLINE void | EBI_IntClear (uint32_t flags) |
Clear one or more pending EBI interrupts. More... | |
__STATIC_INLINE void | EBI_IntDisable (uint32_t flags) |
Disable one or more EBI interrupts. More... | |
__STATIC_INLINE void | EBI_IntEnable (uint32_t flags) |
Enable one or more EBI interrupts. More... | |
__STATIC_INLINE uint32_t | EBI_IntGet (void) |
Get pending EBI interrupt flags. More... | |
__STATIC_INLINE uint32_t | EBI_IntGetEnabled (void) |
Get enabled and pending EBI interrupt flags. Useful for handling more interrupt sources in the same interrupt handler. More... | |
__STATIC_INLINE void | EBI_IntSet (uint32_t flags) |
Set one or more pending EBI interrupts. More... | |
void | EBI_PolaritySet (EBI_Line_TypeDef line, EBI_Polarity_TypeDef polarity) |
Configure EBI pin polarity. More... | |
void | EBI_ReadTimingSet (int setupCycles, int strobeCycles, int holdCycles) |
Configure timing values of read bus accesses. More... | |
__STATIC_INLINE void | EBI_StartNandEccGen (void) |
Start ECC generator on NAND flash transfers. | |
__STATIC_INLINE uint32_t | EBI_StopNandEccGen (void) |
Stop NAND flash ECC generator and return generated ECC. More... | |
__STATIC_INLINE void | EBI_TFTAlphaBlendSet (uint8_t alpha) |
Set TFT Alpha Blending Factor. More... | |
__STATIC_INLINE void | EBI_TFTEnable (EBI_TFTDDMode_TypeDef mode) |
Enable or disable TFT Direct Drive. More... | |
__STATIC_INLINE void | EBI_TFTFBTriggerSet (EBI_TFTFrameBufTrigger_TypeDef sync) |
Set Frame Buffer Trigger. More... | |
__STATIC_INLINE void | EBI_TFTFrameBaseSet (uint32_t address) |
Configure frame buffer pointer. More... | |
__STATIC_INLINE uint32_t | EBI_TFTHCount (void) |
Get current horizontal position counter. More... | |
void | EBI_TFTHPorchSet (int front, int back, int pulseWidth) |
Configure and initialize Horizontal Porch Settings. More... | |
__STATIC_INLINE void | EBI_TFTHStrideSet (uint32_t nbytes) |
Set horizontal TFT stride value in number of bytes. More... | |
void | EBI_TFTInit (const EBI_TFTInit_TypeDef *ebiTFTInit) |
Configure and initialize TFT Direct Drive. More... | |
__STATIC_INLINE void | EBI_TFTMaskBlendMode (EBI_TFTMaskBlend_TypeDef maskBlend) |
Masking and Blending Mode Set. More... | |
__STATIC_INLINE void | EBI_TFTMaskSet (uint32_t mask) |
Set TFT mask value Data accesses that matches this value are suppressed. More... | |
__STATIC_INLINE void | EBI_TFTPixelSet (int pixel, uint32_t color) |
Set TFT Pixel Color 0 or 1. More... | |
void | EBI_TFTSizeSet (uint32_t horizontal, uint32_t vertical) |
Configure and initialize TFT size settings. More... | |
void | EBI_TFTTimingSet (int dclkPeriod, int start, int setup, int hold) |
Configure TFT Direct Drive Timing Settings. More... | |
__STATIC_INLINE uint32_t | EBI_TFTVCount (void) |
Get current vertical position counter. More... | |
void | EBI_TFTVPorchSet (int front, int back, int pulseWidth) |
Configure Vertical Porch Settings. More... | |
void | EBI_WriteTimingSet (int setupCycles, int strobeCycles, int holdCycles) |
Configure timing values of write bus accesses. More... | |
#define EBI_BANK0 (uint32_t)(1 << 1) |
* * --------- --------- * | | /| |\ | Ext. | * | EBI | / --------- \ | Async | * | | \ --------- / | Device| * | | \| |/ | | * --------- --------- * Parallel interface * *
EBI address bank 0
Definition at line 75 of file em_ebi.h.
Referenced by BSP_EbiInit(), EBI_BankAddress(), EBI_BankAddressTimingConfig(), EBI_BankAddressTimingSet(), EBI_BankByteLaneEnable(), EBI_BankEnable(), EBI_BankPolaritySet(), EBI_BankReadTimingConfig(), EBI_BankReadTimingSet(), EBI_BankWriteTimingConfig(), EBI_BankWriteTimingSet(), and EBI_Init().
#define EBI_BANK1 (uint32_t)(1 << 2) |
EBI address bank 1
Definition at line 76 of file em_ebi.h.
Referenced by EBI_BankAddress(), EBI_BankAddressTimingConfig(), EBI_BankAddressTimingSet(), EBI_BankByteLaneEnable(), EBI_BankEnable(), EBI_BankPolaritySet(), EBI_BankReadTimingConfig(), EBI_BankReadTimingSet(), EBI_BankWriteTimingConfig(), EBI_BankWriteTimingSet(), and EBI_Init().
#define EBI_BANK2 (uint32_t)(1 << 3) |
EBI address bank 2
Definition at line 77 of file em_ebi.h.
Referenced by EBI_BankAddress(), EBI_BankAddressTimingConfig(), EBI_BankAddressTimingSet(), EBI_BankByteLaneEnable(), EBI_BankEnable(), EBI_BankPolaritySet(), EBI_BankReadTimingConfig(), EBI_BankReadTimingSet(), EBI_BankWriteTimingConfig(), EBI_BankWriteTimingSet(), EBI_Init(), and TFT_DirectInit().
#define EBI_BANK3 (uint32_t)(1 << 4) |
EBI address bank 3
Definition at line 78 of file em_ebi.h.
Referenced by EBI_BankAddress(), EBI_BankAddressTimingConfig(), EBI_BankAddressTimingSet(), EBI_BankByteLaneEnable(), EBI_BankEnable(), EBI_BankPolaritySet(), EBI_BankReadTimingConfig(), EBI_BankReadTimingSet(), EBI_BankWriteTimingConfig(), EBI_BankWriteTimingSet(), and EBI_Init().
#define EBI_CS0 (uint32_t)(1 << 1) |
EBI chip select line 0
Definition at line 80 of file em_ebi.h.
Referenced by EBI_ChipSelectEnable().
#define EBI_CS1 (uint32_t)(1 << 2) |
EBI chip select line 1
Definition at line 81 of file em_ebi.h.
Referenced by EBI_ChipSelectEnable().
#define EBI_CS2 (uint32_t)(1 << 3) |
EBI chip select line 2
Definition at line 82 of file em_ebi.h.
Referenced by EBI_ChipSelectEnable().
#define EBI_CS3 (uint32_t)(1 << 4) |
EBI chip select line 3
Definition at line 83 of file em_ebi.h.
Referenced by EBI_ChipSelectEnable().
#define EBI_INIT_DEFAULT |
#define EBI_TFTINIT_DEFAULT |
Default configuration for EBI TFT init structure
enum EBI_AHigh_TypeDef |
Adress Pin Enable, high limit - higher limit of pins to enable
enum EBI_ALow_TypeDef |
Address Pin Enable, lower limit - lower range of pins to enable
enum EBI_Line_TypeDef |
EBI Pin Line types
enum EBI_Location_TypeDef |
enum EBI_Mode_TypeDef |
enum EBI_Polarity_TypeDef |
enum EBI_TFTBank_TypeDef |
Control of mask and alpha blending mode
enum EBI_TFTWidth_TypeDef |
void EBI_AddressTimingSet | ( | int | setupCycles, |
int | holdCycles | ||
) |
Configure timing values of address latch bus accesses.
[in] | setupCycles | Sets the number of cycles the address is held after ALE is asserted |
[in] | holdCycles | Sets the number of cycles the address is driven onto the ADDRDAT bus before ALE is asserted. If set 0, 1 cycle is inserted by HW |
Definition at line 547 of file em_ebi.c.
References _EBI_ADDRTIMING_ADDRHOLD_MASK, _EBI_ADDRTIMING_ADDRHOLD_SHIFT, _EBI_ADDRTIMING_ADDRSETUP_MASK, _EBI_ADDRTIMING_ADDRSETUP_SHIFT, and EBI.
Referenced by EBI_Init().
void EBI_AltMapEnable | ( | bool | enable | ) |
Configure Alternate Address Map support Enables or disables 256MB address range for all banks.
[in] | enable | Set or clear address map extension |
Definition at line 1181 of file em_ebi.c.
References _EBI_CTRL_ALTMAP_SHIFT, BUS_RegBitWrite(), and EBI.
uint32_t EBI_BankAddress | ( | uint32_t | bank | ) |
Return base address of EBI bank.
[in] | bank | Bank to return start address for |
Definition at line 330 of file em_ebi.c.
References EBI, EBI_BANK0, EBI_BANK1, EBI_BANK2, EBI_BANK3, EBI_CTRL_ALTMAP, and EBI_MEM_BASE.
Referenced by TFT_DirectInit().
void EBI_BankAddressTimingConfig | ( | uint32_t | banks, |
bool | halfALE | ||
) |
Configure address operation parameters for selected bank.
[in] | banks | Mask of memory bank(s) to configure write timing for |
[in] | halfALE | Enables or disables half cycle ALE strobe in last strobe cycle |
Definition at line 956 of file em_ebi.c.
References _EBI_ADDRTIMING_HALFALE_SHIFT, BUS_RegBitWrite(), EBI, EBI_BANK0, EBI_BANK1, EBI_BANK2, and EBI_BANK3.
Referenced by EBI_Init().
void EBI_BankAddressTimingSet | ( | uint32_t | banks, |
int | setupCycles, | ||
int | holdCycles | ||
) |
Configure timing values of address latch bus accesses.
[in] | banks | Mask of memory bank(s) to configure address timing for |
[in] | setupCycles | Sets the number of cycles the address is held after ALE is asserted |
[in] | holdCycles | Sets the number of cycles the address is driven onto the ADDRDAT bus before ALE is asserted. If set 0, 1 cycle is inserted by HW |
Definition at line 994 of file em_ebi.c.
References _EBI_ADDRTIMING1_ADDRHOLD_MASK, _EBI_ADDRTIMING1_ADDRSETUP_MASK, _EBI_ADDRTIMING2_ADDRHOLD_MASK, _EBI_ADDRTIMING2_ADDRSETUP_MASK, _EBI_ADDRTIMING3_ADDRHOLD_MASK, _EBI_ADDRTIMING3_ADDRSETUP_MASK, _EBI_ADDRTIMING_ADDRHOLD_MASK, _EBI_ADDRTIMING_ADDRHOLD_SHIFT, _EBI_ADDRTIMING_ADDRSETUP_MASK, _EBI_ADDRTIMING_ADDRSETUP_SHIFT, EBI, EBI_BANK0, EBI_BANK1, EBI_BANK2, and EBI_BANK3.
Referenced by EBI_Init().
void EBI_BankByteLaneEnable | ( | uint32_t | banks, |
bool | enable | ||
) |
Configure Byte Lane Enable for select banks timing support.
[in] | banks | Mask of memory bank(s) to configure polarity for |
[in] | enable | Flag |
Definition at line 1148 of file em_ebi.c.
References _EBI_CTRL_BL1_SHIFT, _EBI_CTRL_BL2_SHIFT, _EBI_CTRL_BL3_SHIFT, _EBI_CTRL_BL_SHIFT, BUS_RegBitWrite(), EBI, EBI_BANK0, EBI_BANK1, EBI_BANK2, and EBI_BANK3.
void EBI_BankEnable | ( | uint32_t | banks, |
bool | enable | ||
) |
Enable or disable EBI Bank.
[in] | banks | Banks to reconfigure, mask of EBI_BANK<n> flags |
[in] | enable | True to enable, false to disable |
Definition at line 299 of file em_ebi.c.
References _EBI_CTRL_BANK0EN_SHIFT, _EBI_CTRL_BANK1EN_SHIFT, _EBI_CTRL_BANK2EN_SHIFT, _EBI_CTRL_BANK3EN_SHIFT, BUS_RegBitWrite(), EBI, EBI_BANK0, EBI_BANK1, EBI_BANK2, and EBI_BANK3.
void EBI_BankPolaritySet | ( | uint32_t | banks, |
EBI_Line_TypeDef | line, | ||
EBI_Polarity_TypeDef | polarity | ||
) |
Configure EBI pin polarity for selected bank(s) for devices with individual timing support.
[in] | banks | Mask of memory bank(s) to configure polarity for |
[in] | line | Which pin/line to configure |
[in] | polarity | Active high, or active low |
Definition at line 1054 of file em_ebi.c.
References _EBI_POLARITY_ALEPOL_SHIFT, _EBI_POLARITY_ARDYPOL_SHIFT, _EBI_POLARITY_BLPOL_SHIFT, _EBI_POLARITY_CSPOL_SHIFT, _EBI_POLARITY_REPOL_SHIFT, _EBI_POLARITY_WEPOL_SHIFT, _EBI_TFTPOLARITY_CSPOL_SHIFT, _EBI_TFTPOLARITY_DATAENPOL_SHIFT, _EBI_TFTPOLARITY_DCLKPOL_SHIFT, _EBI_TFTPOLARITY_HSYNCPOL_SHIFT, _EBI_TFTPOLARITY_VSYNCPOL_SHIFT, BUS_RegBitWrite(), EBI, EBI_BANK0, EBI_BANK1, EBI_BANK2, EBI_BANK3, ebiLineALE, ebiLineARDY, ebiLineBL, ebiLineCS, ebiLineRE, ebiLineTFTCS, ebiLineTFTDataEn, ebiLineTFTDClk, ebiLineTFTHSync, ebiLineTFTVSync, and ebiLineWE.
Referenced by EBI_Init().
void EBI_BankReadTimingConfig | ( | uint32_t | banks, |
bool | pageMode, | ||
bool | prefetch, | ||
bool | halfRE | ||
) |
Configure read operation parameters for selected bank.
[in] | banks | Mask of memory bank(s) to configure write timing for |
[in] | pageMode | Enables or disables half cycle WE strobe in last strobe cycle |
[in] | prefetch | Enables or disables half cycle WE strobe in last strobe cycle |
[in] | halfRE | Enables or disables half cycle WE strobe in last strobe cycle |
Definition at line 735 of file em_ebi.c.
References _EBI_RDTIMING_HALFRE_SHIFT, _EBI_RDTIMING_PAGEMODE_SHIFT, _EBI_RDTIMING_PREFETCH_SHIFT, BUS_RegBitWrite(), EBI, EBI_BANK0, EBI_BANK1, EBI_BANK2, and EBI_BANK3.
Referenced by EBI_Init().
void EBI_BankReadTimingSet | ( | uint32_t | banks, |
int | setupCycles, | ||
int | strobeCycles, | ||
int | holdCycles | ||
) |
Configure timing values of read bus accesses.
[in] | banks | Mask of memory bank(s) to configure timing for |
[in] | setupCycles | Number of clock cycles for address setup before REn is asserted |
[in] | strobeCycles | The number of cycles the REn is held active. After the specified number of cycles, data is read. If set to 0, 1 cycle is inserted by HW |
[in] | holdCycles | The number of cycles CSn is held active after the REn is dessarted |
Definition at line 784 of file em_ebi.c.
References _EBI_RDTIMING1_RDHOLD_MASK, _EBI_RDTIMING1_RDSETUP_MASK, _EBI_RDTIMING1_RDSTRB_MASK, _EBI_RDTIMING2_RDHOLD_MASK, _EBI_RDTIMING2_RDSETUP_MASK, _EBI_RDTIMING2_RDSTRB_MASK, _EBI_RDTIMING3_RDHOLD_MASK, _EBI_RDTIMING3_RDSETUP_MASK, _EBI_RDTIMING3_RDSTRB_MASK, _EBI_RDTIMING_RDHOLD_MASK, _EBI_RDTIMING_RDHOLD_SHIFT, _EBI_RDTIMING_RDSETUP_MASK, _EBI_RDTIMING_RDSETUP_SHIFT, _EBI_RDTIMING_RDSTRB_MASK, _EBI_RDTIMING_RDSTRB_SHIFT, EBI, EBI_BANK0, EBI_BANK1, EBI_BANK2, and EBI_BANK3.
Referenced by EBI_Init().
void EBI_BankWriteTimingConfig | ( | uint32_t | banks, |
bool | writeBufDisable, | ||
bool | halfWE | ||
) |
Configure write operation parameters for selected bank.
[in] | banks | Mask of memory bank(s) to configure write timing for |
[in] | writeBufDisable | If true, disable the write buffer |
[in] | halfWE | Enables or disables half cycle WE strobe in last strobe cycle |
Definition at line 849 of file em_ebi.c.
References _EBI_WRTIMING_HALFWE_SHIFT, _EBI_WRTIMING_WBUFDIS_SHIFT, BUS_RegBitWrite(), EBI, EBI_BANK0, EBI_BANK1, EBI_BANK2, and EBI_BANK3.
Referenced by EBI_Init().
void EBI_BankWriteTimingSet | ( | uint32_t | banks, |
int | setupCycles, | ||
int | strobeCycles, | ||
int | holdCycles | ||
) |
Configure timing values of write bus accesses.
[in] | banks | Mask of memory bank(s) to configure write timing for |
[in] | setupCycles | Number of clock cycles for address setup before WEn is asserted |
[in] | strobeCycles | Number of cycles WEn is held active. If set to 0, 1 cycle is inserted by HW |
[in] | holdCycles | Number of cycles CSn is held active after the WEn is deasserted |
Definition at line 894 of file em_ebi.c.
References _EBI_WRTIMING1_WRHOLD_MASK, _EBI_WRTIMING1_WRSETUP_MASK, _EBI_WRTIMING1_WRSTRB_MASK, _EBI_WRTIMING2_WRHOLD_MASK, _EBI_WRTIMING2_WRSETUP_MASK, _EBI_WRTIMING2_WRSTRB_MASK, _EBI_WRTIMING3_WRHOLD_MASK, _EBI_WRTIMING3_WRSETUP_MASK, _EBI_WRTIMING3_WRSTRB_MASK, _EBI_WRTIMING_WRHOLD_MASK, _EBI_WRTIMING_WRHOLD_SHIFT, _EBI_WRTIMING_WRSETUP_MASK, _EBI_WRTIMING_WRSETUP_SHIFT, _EBI_WRTIMING_WRSTRB_MASK, _EBI_WRTIMING_WRSTRB_SHIFT, EBI, EBI_BANK0, EBI_BANK1, EBI_BANK2, and EBI_BANK3.
Referenced by EBI_Init().
void EBI_ChipSelectEnable | ( | uint32_t | cs, |
bool | enable | ||
) |
Enable or disable EBI Chip Select.
[in] | cs | ChipSelect lines to reconfigure, mask of EBI_CS<n> flags |
[in] | enable | True to enable, false to disable |
Definition at line 387 of file em_ebi.c.
References _EBI_ROUTE_CS0PEN_SHIFT, _EBI_ROUTE_CS1PEN_SHIFT, _EBI_ROUTE_CS2PEN_SHIFT, _EBI_ROUTE_CS3PEN_SHIFT, BUS_RegBitWrite(), EBI, EBI_CS0, EBI_CS1, EBI_CS2, and EBI_CS3.
Referenced by EBI_Init().
void EBI_Init | ( | const EBI_Init_TypeDef * | ebiInit | ) |
Configure and enable External Bus Interface.
[in] | ebiInit | EBI configuration structure |
Definition at line 64 of file em_ebi.c.
References _EBI_CTRL_ARDY1EN_MASK, _EBI_CTRL_ARDY1EN_SHIFT, _EBI_CTRL_ARDY2EN_MASK, _EBI_CTRL_ARDY2EN_SHIFT, _EBI_CTRL_ARDY3EN_MASK, _EBI_CTRL_ARDY3EN_SHIFT, _EBI_CTRL_ARDYEN_MASK, _EBI_CTRL_ARDYEN_SHIFT, _EBI_CTRL_ARDYTO1DIS_MASK, _EBI_CTRL_ARDYTO1DIS_SHIFT, _EBI_CTRL_ARDYTO2DIS_MASK, _EBI_CTRL_ARDYTO2DIS_SHIFT, _EBI_CTRL_ARDYTO3DIS_MASK, _EBI_CTRL_ARDYTO3DIS_SHIFT, _EBI_CTRL_ARDYTODIS_MASK, _EBI_CTRL_ARDYTODIS_SHIFT, _EBI_CTRL_BANK0EN_MASK, _EBI_CTRL_BANK1EN_MASK, _EBI_CTRL_BANK2EN_MASK, _EBI_CTRL_BANK3EN_MASK, _EBI_CTRL_BL1_MASK, _EBI_CTRL_BL1_SHIFT, _EBI_CTRL_BL2_MASK, _EBI_CTRL_BL2_SHIFT, _EBI_CTRL_BL3_MASK, _EBI_CTRL_BL3_SHIFT, _EBI_CTRL_BL_MASK, _EBI_CTRL_BL_SHIFT, _EBI_CTRL_MODE1_MASK, _EBI_CTRL_MODE1_SHIFT, _EBI_CTRL_MODE2_MASK, _EBI_CTRL_MODE2_SHIFT, _EBI_CTRL_MODE3_MASK, _EBI_CTRL_MODE3_SHIFT, _EBI_CTRL_MODE_MASK, _EBI_CTRL_MODE_SHIFT, _EBI_CTRL_NOIDLE1_MASK, _EBI_CTRL_NOIDLE1_SHIFT, _EBI_CTRL_NOIDLE2_MASK, _EBI_CTRL_NOIDLE2_SHIFT, _EBI_CTRL_NOIDLE3_MASK, _EBI_CTRL_NOIDLE3_SHIFT, _EBI_CTRL_NOIDLE_MASK, _EBI_CTRL_NOIDLE_SHIFT, _EBI_ROUTE_ALB_MASK, _EBI_ROUTE_ALEPEN_SHIFT, _EBI_ROUTE_APEN_MASK, _EBI_ROUTE_BLPEN_SHIFT, _EBI_ROUTE_EBIPEN_SHIFT, _EBI_ROUTE_LOCATION_MASK, EBI_Init_TypeDef::addrHalfALE, EBI_Init_TypeDef::addrHoldCycles, EBI_Init_TypeDef::addrSetupCycles, EBI_Init_TypeDef::aHigh, EBI_Init_TypeDef::alePolarity, EBI_Init_TypeDef::aLow, EBI_Init_TypeDef::ardyDisableTimeout, EBI_Init_TypeDef::ardyEnable, EBI_Init_TypeDef::ardyPolarity, EBI_Init_TypeDef::banks, EBI_Init_TypeDef::blEnable, EBI_Init_TypeDef::blPolarity, BUS_RegBitWrite(), EBI_Init_TypeDef::csLines, EBI_Init_TypeDef::csPolarity, EBI, EBI_AddressTimingSet(), EBI_BANK0, EBI_BANK1, EBI_BANK2, EBI_BANK3, EBI_BankAddressTimingConfig(), EBI_BankAddressTimingSet(), EBI_BankPolaritySet(), EBI_BankReadTimingConfig(), EBI_BankReadTimingSet(), EBI_BankWriteTimingConfig(), EBI_BankWriteTimingSet(), EBI_ChipSelectEnable(), EBI_CTRL_BANK0EN, EBI_CTRL_BANK1EN, EBI_CTRL_BANK2EN, EBI_CTRL_BANK3EN, EBI_CTRL_ITS, EBI_PolaritySet(), EBI_ReadTimingSet(), EBI_WriteTimingSet(), ebiLineALE, ebiLineARDY, ebiLineBL, ebiLineCS, ebiLineRE, ebiLineWE, ebiModeD16, ebiModeD16A16ALE, ebiModeD8A24ALE, ebiModeD8A8, EBI_Init_TypeDef::enable, EBI_Init_TypeDef::location, EBI_Init_TypeDef::mode, EBI_Init_TypeDef::noIdle, EBI_Init_TypeDef::readHalfRE, EBI_Init_TypeDef::readHoldCycles, EBI_Init_TypeDef::readPageMode, EBI_Init_TypeDef::readPrefetch, EBI_Init_TypeDef::readSetupCycles, EBI_Init_TypeDef::readStrobeCycles, EBI_Init_TypeDef::rePolarity, EBI_Init_TypeDef::wePolarity, EBI_Init_TypeDef::writeBufferDisable, EBI_Init_TypeDef::writeHalfWE, EBI_Init_TypeDef::writeHoldCycles, EBI_Init_TypeDef::writeSetupCycles, and EBI_Init_TypeDef::writeStrobeCycles.
Referenced by BSP_EbiInit().
__STATIC_INLINE void EBI_IntClear | ( | uint32_t | flags | ) |
__STATIC_INLINE void EBI_IntDisable | ( | uint32_t | flags | ) |
__STATIC_INLINE void EBI_IntEnable | ( | uint32_t | flags | ) |
__STATIC_INLINE uint32_t EBI_IntGet | ( | void | ) |
__STATIC_INLINE uint32_t EBI_IntGetEnabled | ( | void | ) |
Get enabled and pending EBI interrupt flags. Useful for handling more interrupt sources in the same interrupt handler.
Definition at line 796 of file em_ebi.h.
References EBI.
__STATIC_INLINE void EBI_IntSet | ( | uint32_t | flags | ) |
void EBI_PolaritySet | ( | EBI_Line_TypeDef | line, |
EBI_Polarity_TypeDef | polarity | ||
) |
Configure EBI pin polarity.
[in] | line | Which pin/line to configure |
[in] | polarity | Active high, or active low |
Definition at line 418 of file em_ebi.c.
References _EBI_POLARITY_ALEPOL_SHIFT, _EBI_POLARITY_ARDYPOL_SHIFT, _EBI_POLARITY_BLPOL_SHIFT, _EBI_POLARITY_CSPOL_SHIFT, _EBI_POLARITY_REPOL_SHIFT, _EBI_POLARITY_WEPOL_SHIFT, _EBI_TFTPOLARITY_CSPOL_SHIFT, _EBI_TFTPOLARITY_DATAENPOL_SHIFT, _EBI_TFTPOLARITY_DCLKPOL_SHIFT, _EBI_TFTPOLARITY_HSYNCPOL_SHIFT, _EBI_TFTPOLARITY_VSYNCPOL_SHIFT, BUS_RegBitWrite(), EBI, ebiLineALE, ebiLineARDY, ebiLineBL, ebiLineCS, ebiLineRE, ebiLineTFTCS, ebiLineTFTDataEn, ebiLineTFTDClk, ebiLineTFTHSync, ebiLineTFTVSync, and ebiLineWE.
Referenced by EBI_Init(), and EBI_TFTInit().
void EBI_ReadTimingSet | ( | int | setupCycles, |
int | strobeCycles, | ||
int | holdCycles | ||
) |
Configure timing values of read bus accesses.
[in] | setupCycles | Number of clock cycles for address setup before REn is asserted |
[in] | strobeCycles | The number of cycles the REn is held active. After the specified number of cycles, data is read. If set to 0, 1 cycle is inserted by HW |
[in] | holdCycles | The number of cycles CSn is held active after the REn is dessarted |
Definition at line 478 of file em_ebi.c.
References _EBI_RDTIMING_RDHOLD_MASK, _EBI_RDTIMING_RDHOLD_SHIFT, _EBI_RDTIMING_RDSETUP_MASK, _EBI_RDTIMING_RDSETUP_SHIFT, _EBI_RDTIMING_RDSTRB_MASK, _EBI_RDTIMING_RDSTRB_SHIFT, and EBI.
Referenced by EBI_Init().
__STATIC_INLINE uint32_t EBI_StopNandEccGen | ( | void | ) |
Stop NAND flash ECC generator and return generated ECC.
Definition at line 822 of file em_ebi.h.
References EBI, and EBI_CMD_ECCSTOP.
Referenced by NANDFLASH_ReadPage(), and NANDFLASH_WritePage().
__STATIC_INLINE void EBI_TFTAlphaBlendSet | ( | uint8_t | alpha | ) |
__STATIC_INLINE void EBI_TFTEnable | ( | EBI_TFTDDMode_TypeDef | mode | ) |
Enable or disable TFT Direct Drive.
[in] | mode | Drive from Internal or External memory, or Disable Direct Drive |
Definition at line 579 of file em_ebi.h.
References _EBI_TFTCTRL_DD_MASK, and EBI.
__STATIC_INLINE void EBI_TFTFBTriggerSet | ( | EBI_TFTFrameBufTrigger_TypeDef | sync | ) |
Set Frame Buffer Trigger.
Frame buffer pointer will be updated either on each horizontal line (hsync) or vertical update (vsync).
[in] | sync | Trigger update of frame buffer pointer on vertical or horisontal sync. |
Definition at line 688 of file em_ebi.h.
References _EBI_TFTCTRL_FBCTRIG_MASK, and EBI.
__STATIC_INLINE void EBI_TFTFrameBaseSet | ( | uint32_t | address | ) |
Configure frame buffer pointer.
[in] | address | Frame pointer address, as offset by EBI base address |
Definition at line 592 of file em_ebi.h.
References EBI.
Referenced by EBI_TFTInit().
__STATIC_INLINE uint32_t EBI_TFTHCount | ( | void | ) |
Get current horizontal position counter.
Definition at line 672 of file em_ebi.h.
References _EBI_TFTSTATUS_HCNT_MASK, _EBI_TFTSTATUS_HCNT_SHIFT, and EBI.
void EBI_TFTHPorchSet | ( | int | front, |
int | back, | ||
int | pulseWidth | ||
) |
Configure and initialize Horizontal Porch Settings.
[in] | front | Horizontal front porch size in pixels |
[in] | back | Horizontal back porch size in pixels |
[in] | pulseWidth | Horizontal synchronization pulse width. Set to required -1. |
Definition at line 653 of file em_ebi.c.
References _EBI_TFTHPORCH_HBPORCH_SHIFT, _EBI_TFTHPORCH_HFPORCH_SHIFT, _EBI_TFTHPORCH_HSYNC_SHIFT, and EBI.
Referenced by EBI_TFTInit().
__STATIC_INLINE void EBI_TFTHStrideSet | ( | uint32_t | nbytes | ) |
Set horizontal TFT stride value in number of bytes.
[in] | nbytes | Number of bytes to add to frame buffer pointer after each horizontal line update |
Definition at line 701 of file em_ebi.h.
References _EBI_TFTSTRIDE_HSTRIDE_MASK, _EBI_TFTSTRIDE_HSTRIDE_SHIFT, and EBI.
void EBI_TFTInit | ( | const EBI_TFTInit_TypeDef * | ebiTFTInit | ) |
Configure and initialize TFT Direct Drive.
[in] | ebiTFTInit | TFT Initialization structure |
Definition at line 573 of file em_ebi.c.
References _EBI_TFTCTRL_SHIFTDCLKEN_SHIFT, EBI_TFTInit_TypeDef::addressOffset, EBI_TFTInit_TypeDef::bank, EBI_TFTInit_TypeDef::colSrc, EBI_TFTInit_TypeDef::csPolarity, EBI_TFTInit_TypeDef::dataenPolarity, EBI_TFTInit_TypeDef::dclkPeriod, EBI_TFTInit_TypeDef::dclkPolarity, EBI_TFTInit_TypeDef::driveMode, EBI, EBI_PolaritySet(), EBI_ROUTE_TFTPEN, EBI_TFTFrameBaseSet(), EBI_TFTHPorchSet(), EBI_TFTSizeSet(), EBI_TFTTimingSet(), EBI_TFTVPorchSet(), ebiLineTFTCS, ebiLineTFTDataEn, ebiLineTFTDClk, ebiLineTFTHSync, ebiLineTFTVSync, ebiTFTDDModeDisabled, EBI_TFTInit_TypeDef::fbTrigger, EBI_TFTInit_TypeDef::holdCycles, EBI_TFTInit_TypeDef::hPorchBack, EBI_TFTInit_TypeDef::hPorchFront, EBI_TFTInit_TypeDef::hPulseWidth, EBI_TFTInit_TypeDef::hsize, EBI_TFTInit_TypeDef::hsyncPolarity, EBI_TFTInit_TypeDef::interleave, EBI_TFTInit_TypeDef::maskBlend, EBI_TFTInit_TypeDef::setupCycles, EBI_TFTInit_TypeDef::shiftDClk, EBI_TFTInit_TypeDef::startPosition, EBI_TFTInit_TypeDef::vPorchBack, EBI_TFTInit_TypeDef::vPorchFront, EBI_TFTInit_TypeDef::vPulseWidth, EBI_TFTInit_TypeDef::vsize, EBI_TFTInit_TypeDef::vsyncPolarity, and EBI_TFTInit_TypeDef::width.
Referenced by TFT_DirectInit().
__STATIC_INLINE void EBI_TFTMaskBlendMode | ( | EBI_TFTMaskBlend_TypeDef | maskBlend | ) |
Masking and Blending Mode Set.
[in] | maskBlend | Masking and alpha blending mode |
Definition at line 627 of file em_ebi.h.
References _EBI_TFTCTRL_MASKBLEND_MASK, and EBI.
__STATIC_INLINE void EBI_TFTMaskSet | ( | uint32_t | mask | ) |
__STATIC_INLINE void EBI_TFTPixelSet | ( | int | pixel, |
uint32_t | color | ||
) |
void EBI_TFTSizeSet | ( | uint32_t | horizontal, |
uint32_t | vertical | ||
) |
Configure and initialize TFT size settings.
[in] | horizontal | TFT display horizontal size in pixels |
[in] | vertical | TFT display vertical size in pixels |
Definition at line 633 of file em_ebi.c.
References _EBI_TFTSIZE_HSZ_SHIFT, _EBI_TFTSIZE_VSZ_SHIFT, and EBI.
Referenced by EBI_TFTInit().
void EBI_TFTTimingSet | ( | int | dclkPeriod, |
int | start, | ||
int | setup, | ||
int | hold | ||
) |
Configure TFT Direct Drive Timing Settings.
[in] | dclkPeriod | DCLK period in internal cycles |
[in] | start | Starting position of external direct drive, relative to DCLK inactive edge |
[in] | setup | Number of cycles RGB data is driven before active edge of DCLK |
[in] | hold | Number of cycles RGB data is held after active edge of DCLK |
Definition at line 704 of file em_ebi.c.
References _EBI_TFTTIMING_DCLKPERIOD_SHIFT, _EBI_TFTTIMING_TFTHOLD_SHIFT, _EBI_TFTTIMING_TFTSETUP_SHIFT, _EBI_TFTTIMING_TFTSTART_SHIFT, and EBI.
Referenced by EBI_TFTInit().
__STATIC_INLINE uint32_t EBI_TFTVCount | ( | void | ) |
Get current vertical position counter.
Definition at line 661 of file em_ebi.h.
References _EBI_TFTSTATUS_VCNT_MASK, _EBI_TFTSTATUS_VCNT_SHIFT, and EBI.
void EBI_TFTVPorchSet | ( | int | front, |
int | back, | ||
int | pulseWidth | ||
) |
Configure Vertical Porch Settings.
[in] | front | Vertical front porch size in pixels |
[in] | back | Vertical back porch size in pixels |
[in] | pulseWidth | Vertical synchronization pulse width. Set to required -1. |
Definition at line 676 of file em_ebi.c.
References _EBI_TFTVPORCH_VBPORCH_SHIFT, _EBI_TFTVPORCH_VFPORCH_SHIFT, _EBI_TFTVPORCH_VSYNC_SHIFT, and EBI.
Referenced by EBI_TFTInit().
void EBI_WriteTimingSet | ( | int | setupCycles, |
int | strobeCycles, | ||
int | holdCycles | ||
) |
Configure timing values of write bus accesses.
[in] | setupCycles | Number of clock cycles for address setup before WEn is asserted |
[in] | strobeCycles | Number of cycles WEn is held active. If set to 0, 1 cycle is inserted by HW |
[in] | holdCycles | Number of cycles CSn is held active after the WEn is deasserted |
Definition at line 514 of file em_ebi.c.
References _EBI_WRTIMING_WRHOLD_MASK, _EBI_WRTIMING_WRHOLD_SHIFT, _EBI_WRTIMING_WRSETUP_MASK, _EBI_WRTIMING_WRSETUP_SHIFT, _EBI_WRTIMING_WRSTRB_MASK, _EBI_WRTIMING_WRSTRB_SHIFT, and EBI.
Referenced by EBI_Init().