EBI - External Bus Interface
Description
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 |
EBI Initialization structure.
|
|
struct | EBI_TFTInit_TypeDef |
TFT Initialization structure.
|
|
Functions |
|
void | EBI_Init (const EBI_Init_TypeDef *ebiInit) |
Configure and enable the External Bus Interface.
|
|
void | EBI_Disable (void) |
Disable External Bus Interface.
|
|
void | EBI_BankEnable (uint32_t banks, bool enable) |
Enable or disable EBI Bank.
|
|
uint32_t | EBI_BankAddress (uint32_t bank) |
Return the base address of the EBI bank.
|
|
void | EBI_NANDFlashEnable (uint32_t banks, bool enable) |
Enable or disable EBI NAND Flash Support.
|
|
void | EBI_ChipSelectEnable (uint32_t cs, bool enable) |
Enable or disable EBI Chip Select.
|
|
void | EBI_PolaritySet ( EBI_Line_TypeDef line, EBI_Polarity_TypeDef polarity) |
Configure EBI pin polarity.
|
|
void | EBI_ReadTimingSet (uint32_t setupCycles, uint32_t strobeCycles, uint32_t holdCycles) |
Configure timing values of read bus accesses.
|
|
void | EBI_WriteTimingSet (uint32_t setupCycles, uint32_t strobeCycles, uint32_t holdCycles) |
Configure timing values of write bus accesses.
|
|
void | EBI_AddressTimingSet (uint32_t setupCycles, uint32_t holdCycles) |
Configure timing values of address latch bus accesses.
|
|
void | EBI_TFTInit (const EBI_TFTInit_TypeDef *ebiTFTInit) |
Configure and initialize TFT Direct Drive.
|
|
void | EBI_TFTSizeSet (uint32_t horizontal, uint32_t vertical) |
Configure and initialize TFT size settings.
|
|
void | EBI_TFTHPorchSet (uint32_t front, uint32_t back, uint32_t pulseWidth) |
Configure and initialize Horizontal Porch Settings.
|
|
void | EBI_TFTVPorchSet (uint32_t front, uint32_t back, uint32_t pulseWidth) |
Configure Vertical Porch Settings.
|
|
void | EBI_TFTTimingSet (uint32_t dclkPeriod, uint32_t start, uint32_t setup, uint32_t hold) |
Configure TFT Direct Drive Timing Settings.
|
|
void | EBI_BankReadTimingConfig (uint32_t banks, bool pageMode, bool prefetch, bool halfRE) |
Configure read operation parameters for a selected bank.
|
|
void | EBI_BankReadTimingSet (uint32_t banks, uint32_t setupCycles, uint32_t strobeCycles, uint32_t holdCycles) |
Configure timing values of read bus accesses.
|
|
void | EBI_BankWriteTimingConfig (uint32_t banks, bool writeBufDisable, bool halfWE) |
Configure write operation parameters for a selected bank.
|
|
void | EBI_BankWriteTimingSet (uint32_t banks, uint32_t setupCycles, uint32_t strobeCycles, uint32_t holdCycles) |
Configure timing values of write bus accesses.
|
|
void | EBI_BankAddressTimingConfig (uint32_t banks, bool halfALE) |
Configure address operation parameters for a selected bank.
|
|
void | EBI_BankAddressTimingSet (uint32_t banks, uint32_t setupCycles, uint32_t holdCycles) |
Configure timing values of address latch bus accesses.
|
|
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.
|
|
void | EBI_BankByteLaneEnable (uint32_t banks, bool enable) |
Configure Byte Lane Enable for select banks timing support.
|
|
void | EBI_AltMapEnable (bool enable) |
Configure the Alternate Address Map support.
|
|
void | EBI_TFTEnable ( EBI_TFTDDMode_TypeDef mode) |
Enable or disable TFT Direct Drive.
|
|
void | EBI_TFTFrameBaseSet (uint32_t address) |
Configure frame buffer pointer.
|
|
void | EBI_TFTPixelSet (int pixel, uint32_t color) |
Set TFT Pixel Color 0 or 1.
|
|
void | EBI_TFTDDSet (uint32_t color) |
Set TFT Direct Drive Data from Internal Memory.
|
|
void | EBI_TFTMaskBlendMode ( EBI_TFTMaskBlend_TypeDef maskBlend) |
Masking and Blending Mode Set.
|
|
void | EBI_TFTColorSrcSet ( EBI_TFTColorSrc_TypeDef colorSrc) |
Masking and Blending Color1 Source Set.
|
|
void | EBI_TFTAlphaBlendSet (uint8_t alpha) |
Set TFT Alpha Blending Factor.
|
|
void | EBI_TFTMaskSet (uint32_t mask) |
Set TFT mask value.
|
|
uint32_t | EBI_TFTVCount (void) |
Get current vertical position counter.
|
|
uint32_t | EBI_TFTHCount (void) |
Get current horizontal position counter.
|
|
void | EBI_TFTFBTriggerSet ( EBI_TFTFrameBufTrigger_TypeDef sync) |
Set Frame Buffer Trigger.
|
|
void | EBI_TFTHStrideSet (uint32_t nbytes) |
Set horizontal TFT stride value in number of bytes.
|
|
void | EBI_IntClear (uint32_t flags) |
Clear one or more pending EBI interrupts.
|
|
void | EBI_IntSet (uint32_t flags) |
Set one or more pending EBI interrupts.
|
|
void | EBI_IntDisable (uint32_t flags) |
Disable one or more EBI interrupts.
|
|
void | EBI_IntEnable (uint32_t flags) |
Enable one or more EBI interrupts.
|
|
uint32_t | EBI_IntGet (void) |
Get pending EBI interrupt flags.
|
|
uint32_t | EBI_IntGetEnabled (void) |
Get enabled and pending EBI interrupt flags.
|
|
void | EBI_StartNandEccGen (void) |
Start ECC generator on NAND flash transfers.
|
|
uint32_t | EBI_StopNandEccGen (void) |
Stop NAND flash ECC generator and return generated ECC.
|
|
Macros |
|
#define | EBI_BANK0 (uint32_t)(1 << 1) |
EBI address bank 0.
|
|
#define | EBI_BANK1 (uint32_t)(1 << 2) |
EBI address bank 1.
|
|
#define | EBI_BANK2 (uint32_t)(1 << 3) |
EBI address bank 2.
|
|
#define | EBI_BANK3 (uint32_t)(1 << 4) |
EBI address bank 3.
|
|
#define | EBI_CS0 (uint32_t)(1 << 1) |
EBI chip select line 0.
|
|
#define | EBI_CS1 (uint32_t)(1 << 2) |
EBI chip select line 1.
|
|
#define | EBI_CS2 (uint32_t)(1 << 3) |
EBI chip select line 2.
|
|
#define | EBI_CS3 (uint32_t)(1 << 4) |
EBI chip select line 3.
|
|
#define | EBI_GENERIC_ALB_A0 EBI_ROUTE_ALB_A0 |
Pin Enable Lower Bound EBI_A[0] and upwards.
|
|
#define | EBI_GENERIC_ALB_A8 EBI_ROUTE_ALB_A8 |
Pin Enable Lower Bound EBI_A[8] and upwards.
|
|
#define | EBI_GENERIC_ALB_A16 EBI_ROUTE_ALB_A16 |
Pin Enable Lower Bound EBI_A[16] and upwards.
|
|
#define | EBI_GENERIC_ALB_A24 EBI_ROUTE_ALB_A24 |
Pin Enable Lower Bound EBI_A[24] and upwards.
|
|
#define | EBI_GENERIC_APEN_A0 EBI_ROUTE_APEN_A0 |
All EBI_A pins enabled.
|
|
#define | EBI_GENERIC_APEN_A5 EBI_ROUTE_APEN_A5 |
EBI_A[4:L] pins enabled.
|
|
#define | EBI_GENERIC_APEN_A6 EBI_ROUTE_APEN_A6 |
EBI_A[5:L] pins enabled.
|
|
#define | EBI_GENERIC_APEN_A7 EBI_ROUTE_APEN_A7 |
EBI_A[6:L] pins enabled.
|
|
#define | EBI_GENERIC_APEN_A8 EBI_ROUTE_APEN_A8 |
EBI_A[7:L] pins enabled.
|
|
#define | EBI_GENERIC_APEN_A9 EBI_ROUTE_APEN_A9 |
EBI_A[8:L] pins enabled.
|
|
#define | EBI_GENERIC_APEN_A10 EBI_ROUTE_APEN_A10 |
EBI_A[9:L] pins enabled.
|
|
#define | EBI_GENERIC_APEN_A11 EBI_ROUTE_APEN_A11 |
EBI_A[10:L] pins enabled.
|
|
#define | EBI_GENERIC_APEN_A12 EBI_ROUTE_APEN_A12 |
EBI_A[11:L] pins enabled.
|
|
#define | EBI_GENERIC_APEN_A13 EBI_ROUTE_APEN_A13 |
EBI_A[12:L] pins enabled.
|
|
#define | EBI_GENERIC_APEN_A14 EBI_ROUTE_APEN_A14 |
EBI_A[13:L] pins enabled.
|
|
#define | EBI_GENERIC_APEN_A15 EBI_ROUTE_APEN_A15 |
EBI_A[14:L] pins enabled.
|
|
#define | EBI_GENERIC_APEN_A16 EBI_ROUTE_APEN_A16 |
EBI_A[15:L] pins enabled.
|
|
#define | EBI_GENERIC_APEN_A17 EBI_ROUTE_APEN_A17 |
EBI_A[16:L] pins enabled.
|
|
#define | EBI_GENERIC_APEN_A18 EBI_ROUTE_APEN_A18 |
EBI_A[17:L] pins enabled.
|
|
#define | EBI_GENERIC_APEN_A19 EBI_ROUTE_APEN_A19 |
EBI_A[18:L] pins enabled.
|
|
#define | EBI_GENERIC_APEN_A20 EBI_ROUTE_APEN_A20 |
EBI_A[19:L] pins enabled.
|
|
#define | EBI_GENERIC_APEN_A21 EBI_ROUTE_APEN_A21 |
EBI_A[20:L] pins enabled.
|
|
#define | EBI_GENERIC_APEN_A22 EBI_ROUTE_APEN_A22 |
EBI_A[21:L] pins enabled.
|
|
#define | EBI_GENERIC_APEN_A23 EBI_ROUTE_APEN_A23 |
EBI_A[22:L] pins enabled.
|
|
#define | EBI_GENERIC_APEN_A24 EBI_ROUTE_APEN_A24 |
EBI_A[23:L] pins enabled.
|
|
#define | EBI_GENERIC_APEN_A25 EBI_ROUTE_APEN_A25 |
EBI_A[24:L] pins enabled.
|
|
#define | EBI_GENERIC_APEN_A26 EBI_ROUTE_APEN_A26 |
EBI_A[25:L] pins enabled.
|
|
#define | EBI_GENERIC_APEN_A27 EBI_ROUTE_APEN_A27 |
EBI_A[26:L] pins enabled.
|
|
#define | EBI_GENERIC_APEN_A28 EBI_ROUTE_APEN_A28 |
EBI_A[27:L] pins enabled.
|
|
#define | EBI_INIT_DEFAULT |
Default configuration for EBI initialization structures.
|
|
#define | EBI_TFTINIT_DEFAULT |
Default configuration for EBI TFT initialization structure.
|
|
Enumerations |
|
enum |
EBI_Mode_TypeDef
{
ebiModeD8A8 = EBI_CTRL_MODE_D8A8, ebiModeD16A16ALE = EBI_CTRL_MODE_D16A16ALE, ebiModeD8A24ALE = EBI_CTRL_MODE_D8A24ALE, ebiModeD16 = EBI_CTRL_MODE_D16 } |
EBI Mode of operation.
|
|
enum |
EBI_Polarity_TypeDef
{
ebiActiveLow = 0, ebiActiveHigh = 1 } |
EBI Polarity configuration.
|
|
enum |
EBI_Line_TypeDef
{
ebiLineARDY , ebiLineALE , ebiLineWE , ebiLineRE , ebiLineCS , ebiLineBL , ebiLineTFTVSync , ebiLineTFTHSync , ebiLineTFTDataEn , ebiLineTFTDClk , ebiLineTFTCS } |
EBI Pin Line types.
|
|
enum |
EBI_ALow_TypeDef
{
ebiALowA0 = EBI_GENERIC_ALB_A0, ebiALowA8 = EBI_GENERIC_ALB_A8, ebiALowA16 = EBI_GENERIC_ALB_A16, ebiALowA24 = EBI_GENERIC_ALB_A24 } |
Address Pin Enable, lower limit - lower range of pins to enable.
|
|
enum |
EBI_AHigh_TypeDef
{
ebiAHighA0 = EBI_GENERIC_APEN_A0, ebiAHighA5 = EBI_GENERIC_APEN_A5, ebiAHighA6 = EBI_GENERIC_APEN_A6, ebiAHighA7 = EBI_GENERIC_APEN_A7, ebiAHighA8 = EBI_GENERIC_APEN_A8, ebiAHighA9 = EBI_GENERIC_APEN_A9, ebiAHighA10 = EBI_GENERIC_APEN_A10, ebiAHighA11 = EBI_GENERIC_APEN_A11, ebiAHighA12 = EBI_GENERIC_APEN_A12, ebiAHighA13 = EBI_GENERIC_APEN_A13, ebiAHighA14 = EBI_GENERIC_APEN_A14, ebiAHighA15 = EBI_GENERIC_APEN_A15, ebiAHighA16 = EBI_GENERIC_APEN_A16, ebiAHighA17 = EBI_GENERIC_APEN_A17, ebiAHighA18 = EBI_GENERIC_APEN_A18, ebiAHighA19 = EBI_GENERIC_APEN_A19, ebiAHighA20 = EBI_GENERIC_APEN_A20, ebiAHighA21 = EBI_GENERIC_APEN_A21, ebiAHighA22 = EBI_GENERIC_APEN_A22, ebiAHighA23 = EBI_GENERIC_APEN_A23, ebiAHighA24 = EBI_GENERIC_APEN_A24, ebiAHighA25 = EBI_GENERIC_APEN_A25, ebiAHighA26 = EBI_GENERIC_APEN_A26, ebiAHighA27 = EBI_GENERIC_APEN_A27, ebiAHighA28 = EBI_GENERIC_APEN_A28 } |
Address Pin Enable, high limit - higher limit of pins to enable.
|
|
enum |
EBI_Location_TypeDef
{
ebiLocation0 = EBI_ROUTE_LOCATION_LOC0, ebiLocation1 = EBI_ROUTE_LOCATION_LOC1, ebiLocation2 = EBI_ROUTE_LOCATION_LOC2 } |
EBI I/O Alternate Pin Location.
|
|
enum |
EBI_TFTBank_TypeDef
{
ebiTFTBank0 = EBI_TFTCTRL_BANKSEL_BANK0, ebiTFTBank1 = EBI_TFTCTRL_BANKSEL_BANK1, ebiTFTBank2 = EBI_TFTCTRL_BANKSEL_BANK2, ebiTFTBank3 = EBI_TFTCTRL_BANKSEL_BANK3 } |
EBI TFT Graphics Bank Select.
|
|
enum |
EBI_TFTColorSrc_TypeDef
{
ebiTFTColorSrcMem = EBI_TFTCTRL_COLOR1SRC_MEM, ebiTFTColorSrcPixel1 = EBI_TFTCTRL_COLOR1SRC_PIXEL1 } |
Masking and Alpha blending source color.
|
|
enum |
EBI_TFTInterleave_TypeDef
{
ebiTFTInterleaveUnlimited = EBI_TFTCTRL_INTERLEAVE_UNLIMITED, ebiTFTInterleaveOnePerDClk = EBI_TFTCTRL_INTERLEAVE_ONEPERDCLK, ebiTFTInterleavePorch = EBI_TFTCTRL_INTERLEAVE_PORCH } |
Bus Data Interleave Mode.
|
|
enum |
EBI_TFTFrameBufTrigger_TypeDef
{
ebiTFTFrameBufTriggerVSync = EBI_TFTCTRL_FBCTRIG_VSYNC, ebiTFTFrameBufTriggerHSync = EBI_TFTCTRL_FBCTRIG_HSYNC } |
Control frame base pointer copy.
|
|
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 } |
Control of mask and alpha blending mode.
|
|
enum |
EBI_TFTDDMode_TypeDef
{
ebiTFTDDModeDisabled = EBI_TFTCTRL_DD_DISABLED, ebiTFTDDModeInternal = EBI_TFTCTRL_DD_INTERNAL, ebiTFTDDModeExternal = EBI_TFTCTRL_DD_EXTERNAL } |
TFT Direct Drive mode.
|
|
enum |
EBI_TFTWidth_TypeDef
{
ebiTFTWidthByte = EBI_TFTCTRL_WIDTH_BYTE, ebiTFTWidthHalfWord = EBI_TFTCTRL_WIDTH_HALFWORD } |
TFT Data Increment Width.
|
|
Function Documentation
◆ EBI_Init()
void EBI_Init | ( | const EBI_Init_TypeDef * |
ebiInit
|
) |
Configure and enable the External Bus Interface.
- Parameters
-
[in] ebiInit
The EBI configuration structure.
- Note
- GPIO lines must be configured as a PUSH_PULL for the correct operation. GPIO and EBI clocks must be enabled in the CMU.
◆ EBI_Disable()
void EBI_Disable | ( | void |
|
) |
Disable External Bus Interface.
◆ EBI_BankEnable()
void EBI_BankEnable | ( | uint32_t |
banks,
|
bool |
enable
|
||
) |
Enable or disable EBI Bank.
- Parameters
-
[in] banks
Banks to reconfigure, mask of EBI_BANK<n> flags. [in] enable
True to enable, false to disable.
◆ EBI_BankAddress()
uint32_t EBI_BankAddress | ( | uint32_t |
bank
|
) |
Return the base address of the EBI bank.
- Parameters
-
[in] bank
A bank to return the start address for.
- Returns
- an absolute address of the bank.
◆ EBI_NANDFlashEnable()
void EBI_NANDFlashEnable | ( | uint32_t |
banks,
|
bool |
enable
|
||
) |
Enable or disable EBI NAND Flash Support.
- Parameters
-
[in] banks
Banks to reconfigure, mask of EBI_BANK<n> flags. [in] enable
True to enable, false to disable.
◆ EBI_ChipSelectEnable()
void EBI_ChipSelectEnable | ( | uint32_t |
cs,
|
bool |
enable
|
||
) |
Enable or disable EBI Chip Select.
- Parameters
-
[in] cs
ChipSelect lines to reconfigure, mask of EBI_CS<n> flags. [in] enable
True to enable, false to disable.
◆ EBI_PolaritySet()
void EBI_PolaritySet | ( | EBI_Line_TypeDef |
line,
|
EBI_Polarity_TypeDef |
polarity
|
||
) |
Configure EBI pin polarity.
- Parameters
-
[in] line
Which pin/line to configure. [in] polarity
Active high or active low.
◆ EBI_ReadTimingSet()
void EBI_ReadTimingSet | ( | uint32_t |
setupCycles,
|
uint32_t |
strobeCycles,
|
||
uint32_t |
holdCycles
|
||
) |
Configure timing values of read bus accesses.
- Parameters
-
[in] setupCycles
A number of clock cycles for the 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 hardware. [in] holdCycles
The number of cycles CSn is held active after the REn is deasserted.
◆ EBI_WriteTimingSet()
void EBI_WriteTimingSet | ( | uint32_t |
setupCycles,
|
uint32_t |
strobeCycles,
|
||
uint32_t |
holdCycles
|
||
) |
Configure timing values of write bus accesses.
- Parameters
-
[in] setupCycles
A number of clock cycles for the address setup before WEn is asserted. [in] strobeCycles
A number of cycles WEn is held active. If set to 0, 1 cycle is inserted by hardware. [in] holdCycles
A number of cycles CSn is held active after the WEn is deasserted.
◆ EBI_AddressTimingSet()
void EBI_AddressTimingSet | ( | uint32_t |
setupCycles,
|
uint32_t |
holdCycles
|
||
) |
Configure timing values of address latch bus accesses.
- Parameters
-
[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 hardware.
◆ EBI_TFTInit()
void EBI_TFTInit | ( | const EBI_TFTInit_TypeDef * |
ebiTFTInit
|
) |
Configure and initialize TFT Direct Drive.
- Parameters
-
[in] ebiTFTInit
The TFT Initialization structure.
◆ EBI_TFTSizeSet()
void EBI_TFTSizeSet | ( | uint32_t |
horizontal,
|
uint32_t |
vertical
|
||
) |
Configure and initialize TFT size settings.
- Parameters
-
[in] horizontal
TFT display horizontal size in pixels. [in] vertical
TFT display vertical size in pixels.
◆ EBI_TFTHPorchSet()
void EBI_TFTHPorchSet | ( | uint32_t |
front,
|
uint32_t |
back,
|
||
uint32_t |
pulseWidth
|
||
) |
Configure and initialize Horizontal Porch Settings.
- Parameters
-
[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.
◆ EBI_TFTVPorchSet()
void EBI_TFTVPorchSet | ( | uint32_t |
front,
|
uint32_t |
back,
|
||
uint32_t |
pulseWidth
|
||
) |
Configure Vertical Porch Settings.
- Parameters
-
[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.
◆ EBI_TFTTimingSet()
void EBI_TFTTimingSet | ( | uint32_t |
dclkPeriod,
|
uint32_t |
start,
|
||
uint32_t |
setup,
|
||
uint32_t |
hold
|
||
) |
Configure TFT Direct Drive Timing Settings.
- Parameters
-
[in] dclkPeriod
DCLK period in internal cycles. [in] start
A starting position of the external direct drive, relative to the DCLK inactive edge. [in] setup
A number of cycles that RGB data is driven before the active edge of DCLK. [in] hold
A number of cycles that RGB data is held after the active edge of DCLK.
◆ EBI_BankReadTimingConfig()
void EBI_BankReadTimingConfig | ( | uint32_t |
banks,
|
bool |
pageMode,
|
||
bool |
prefetch,
|
||
bool |
halfRE
|
||
) |
Configure read operation parameters for a selected bank.
- Parameters
-
[in] banks
A mask of memory bank(s) to configure write timing for. [in] pageMode
Enables or disables the half cycle WE strobe in the last strobe cycle. [in] prefetch
Enables or disables the half cycle WE strobe in the last strobe cycle. [in] halfRE
Enables or disables the half cycle WE strobe in the last strobe cycle.
◆ EBI_BankReadTimingSet()
void EBI_BankReadTimingSet | ( | uint32_t |
banks,
|
uint32_t |
setupCycles,
|
||
uint32_t |
strobeCycles,
|
||
uint32_t |
holdCycles
|
||
) |
Configure timing values of read bus accesses.
- Parameters
-
[in] banks
A mask of memory bank(s) to configure timing for. [in] setupCycles
A 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 hardware. [in] holdCycles
The number of cycles CSn is held active after the REn is deasserted.
◆ EBI_BankWriteTimingConfig()
void EBI_BankWriteTimingConfig | ( | uint32_t |
banks,
|
bool |
writeBufDisable,
|
||
bool |
halfWE
|
||
) |
Configure write operation parameters for a selected bank.
- Parameters
-
[in] banks
A 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 the last strobe cycle.
◆ EBI_BankWriteTimingSet()
void EBI_BankWriteTimingSet | ( | uint32_t |
banks,
|
uint32_t |
setupCycles,
|
||
uint32_t |
strobeCycles,
|
||
uint32_t |
holdCycles
|
||
) |
Configure timing values of write bus accesses.
- Parameters
-
[in] banks
A mask of memory bank(s) to configure write timing for. [in] setupCycles
A number of clock cycles for address setup before WEn is asserted. [in] strobeCycles
A number of cycles WEn is held active. If set to 0, 1 cycle is inserted by hardware. [in] holdCycles
Number of cycles CSn is held active after WEn is deasserted.
◆ EBI_BankAddressTimingConfig()
void EBI_BankAddressTimingConfig | ( | uint32_t |
banks,
|
bool |
halfALE
|
||
) |
Configure address operation parameters for a selected bank.
- Parameters
-
[in] banks
A mask of memory bank(s) to configure write timing for. [in] halfALE
Enables or disables the half cycle ALE strobe in the last strobe cycle.
◆ EBI_BankAddressTimingSet()
void EBI_BankAddressTimingSet | ( | uint32_t |
banks,
|
uint32_t |
setupCycles,
|
||
uint32_t |
holdCycles
|
||
) |
Configure timing values of address latch bus accesses.
- Parameters
-
[in] banks
A 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 hardware.
◆ EBI_BankPolaritySet()
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.
- Parameters
-
[in] banks
A mask of memory bank(s) to configure polarity for. [in] line
Which pin/line to configure. [in] polarity
Active high, or active low.
◆ EBI_BankByteLaneEnable()
void EBI_BankByteLaneEnable | ( | uint32_t |
banks,
|
bool |
enable
|
||
) |
Configure Byte Lane Enable for select banks timing support.
- Parameters
-
[in] banks
A mask of memory bank(s) to configure polarity for. [in] enable
A flag
◆ EBI_AltMapEnable()
void EBI_AltMapEnable | ( | bool |
enable
|
) |
Configure the Alternate Address Map support.
Enables or disables 256 MB address range for all banks.
- Parameters
-
[in] enable
Set or clear the address map extension.
◆ EBI_TFTEnable()
|
inline |
Enable or disable TFT Direct Drive.
- Parameters
-
[in] mode
Drive from Internal or External memory, or Disable Direct Drive.
◆ EBI_TFTFrameBaseSet()
|
inline |
Configure frame buffer pointer.
- Parameters
-
[in] address
Frame pointer address, as offset by EBI base address.
◆ EBI_TFTPixelSet()
|
inline |
Set TFT Pixel Color 0 or 1.
- Parameters
-
[in] pixel
Which pixel instance to set. [in] color
Color of pixel, 16-bit value.
◆ EBI_TFTDDSet()
|
inline |
Set TFT Direct Drive Data from Internal Memory.
- Parameters
-
[in] color
Color of pixel
◆ EBI_TFTMaskBlendMode()
|
inline |
Masking and Blending Mode Set.
- Parameters
-
[in] maskBlend
Masking and alpha blending mode.
◆ EBI_TFTColorSrcSet()
|
inline |
Masking and Blending Color1 Source Set.
- Parameters
-
[in] colorSrc
Color1 source.
◆ EBI_TFTAlphaBlendSet()
|
inline |
Set TFT Alpha Blending Factor.
- Parameters
-
[in] alpha
8-bit value indicating blending factor.
◆ EBI_TFTMaskSet()
|
inline |
Set TFT mask value.
Data accesses that matches this value are suppressed.
- Parameters
-
[in] mask
◆ EBI_TFTVCount()
|
inline |
Get current vertical position counter.
- Returns
- Returns the current line position for the visible part of a frame.
◆ EBI_TFTHCount()
|
inline |
Get current horizontal position counter.
- Returns
- Returns the current horizontal pixel position within a visible line.
◆ EBI_TFTFBTriggerSet()
|
inline |
Set Frame Buffer Trigger.
Frame buffer pointer will be updated either on each horizontal line (hsync) or vertical update (vsync).
- Parameters
-
[in] sync
Trigger update of frame buffer pointer on vertical or horizontal sync.
◆ EBI_TFTHStrideSet()
|
inline |
Set horizontal TFT stride value in number of bytes.
- Parameters
-
[in] nbytes
Number of bytes to add to frame buffer pointer after each horizontal line update.
◆ EBI_IntClear()
|
inline |
Clear one or more pending EBI interrupts.
- Parameters
-
[in] flags
Pending EBI interrupt source to clear. Use a logical OR combination of valid interrupt flags for the EBI module (EBI_IF_nnn).
◆ EBI_IntSet()
|
inline |
Set one or more pending EBI interrupts.
- Parameters
-
[in] flags
EBI interrupt sources to set to pending. Use a logical OR combination of valid interrupt flags for the EBI module (EBI_IF_nnn).
◆ EBI_IntDisable()
|
inline |
Disable one or more EBI interrupts.
- Parameters
-
[in] flags
EBI interrupt sources to disable. Use logical OR combination of valid interrupt flags for the EBI module (EBI_IF_nnn)
◆ EBI_IntEnable()
|
inline |
Enable one or more EBI interrupts.
- Parameters
-
[in] flags
EBI interrupt sources to enable. Use logical OR combination of valid interrupt flags for the EBI module (EBI_IF_nnn)
◆ EBI_IntGet()
|
inline |
Get pending EBI interrupt flags.
- Note
- Event bits are not cleared by the use of this function.
- Returns
- EBI interrupt sources pending, a logical combination of valid EBI interrupt flags, EBI_IF_nnn.
◆ EBI_IntGetEnabled()
|
inline |
Get enabled and pending EBI interrupt flags.
Useful for handling more interrupt sources in the same interrupt handler.
- Note
- Interrupt flags are not cleared by the use of this function.
- Returns
-
Pending and enabled EBI interrupt sources. The return value is the bitwise AND of
- the enabled interrupt sources in EBI_IEN and
- the pending interrupt flags EBI_IF.
◆ EBI_StartNandEccGen()
|
inline |
Start ECC generator on NAND flash transfers.
◆ EBI_StopNandEccGen()
|
inline |
Stop NAND flash ECC generator and return generated ECC.
- Returns
- The generated ECC.
Macro Definition Documentation
◆ EBI_BANK0
#define EBI_BANK0 (uint32_t)(1 << 1) |
EBI address bank 0.
* * --------- --------- * | | /| |\ | Ext. | * | EBI | / --------- \ | Async | * | | \ --------- / | Device| * | | \| |/ | | * --------- --------- * Parallel interface * *
◆ EBI_BANK1
#define EBI_BANK1 (uint32_t)(1 << 2) |
EBI address bank 1.
◆ EBI_BANK2
#define EBI_BANK2 (uint32_t)(1 << 3) |
EBI address bank 2.
◆ EBI_BANK3
#define EBI_BANK3 (uint32_t)(1 << 4) |
EBI address bank 3.
◆ EBI_CS0
#define EBI_CS0 (uint32_t)(1 << 1) |
EBI chip select line 0.
◆ EBI_CS1
#define EBI_CS1 (uint32_t)(1 << 2) |
EBI chip select line 1.
◆ EBI_CS2
#define EBI_CS2 (uint32_t)(1 << 3) |
EBI chip select line 2.
◆ EBI_CS3
#define EBI_CS3 (uint32_t)(1 << 4) |
EBI chip select line 3.
◆ EBI_GENERIC_ALB_A0
#define EBI_GENERIC_ALB_A0 EBI_ROUTE_ALB_A0 |
Pin Enable Lower Bound EBI_A[0] and upwards.
◆ EBI_GENERIC_ALB_A8
#define EBI_GENERIC_ALB_A8 EBI_ROUTE_ALB_A8 |
Pin Enable Lower Bound EBI_A[8] and upwards.
◆ EBI_GENERIC_ALB_A16
#define EBI_GENERIC_ALB_A16 EBI_ROUTE_ALB_A16 |
Pin Enable Lower Bound EBI_A[16] and upwards.
◆ EBI_GENERIC_ALB_A24
#define EBI_GENERIC_ALB_A24 EBI_ROUTE_ALB_A24 |
Pin Enable Lower Bound EBI_A[24] and upwards.
◆ EBI_GENERIC_APEN_A0
#define EBI_GENERIC_APEN_A0 EBI_ROUTE_APEN_A0 |
All EBI_A pins enabled.
◆ EBI_GENERIC_APEN_A5
#define EBI_GENERIC_APEN_A5 EBI_ROUTE_APEN_A5 |
EBI_A[4:L] pins enabled.
◆ EBI_GENERIC_APEN_A6
#define EBI_GENERIC_APEN_A6 EBI_ROUTE_APEN_A6 |
EBI_A[5:L] pins enabled.
◆ EBI_GENERIC_APEN_A7
#define EBI_GENERIC_APEN_A7 EBI_ROUTE_APEN_A7 |
EBI_A[6:L] pins enabled.
◆ EBI_GENERIC_APEN_A8
#define EBI_GENERIC_APEN_A8 EBI_ROUTE_APEN_A8 |
EBI_A[7:L] pins enabled.
◆ EBI_GENERIC_APEN_A9
#define EBI_GENERIC_APEN_A9 EBI_ROUTE_APEN_A9 |
EBI_A[8:L] pins enabled.
◆ EBI_GENERIC_APEN_A10
#define EBI_GENERIC_APEN_A10 EBI_ROUTE_APEN_A10 |
EBI_A[9:L] pins enabled.
◆ EBI_GENERIC_APEN_A11
#define EBI_GENERIC_APEN_A11 EBI_ROUTE_APEN_A11 |
EBI_A[10:L] pins enabled.
◆ EBI_GENERIC_APEN_A12
#define EBI_GENERIC_APEN_A12 EBI_ROUTE_APEN_A12 |
EBI_A[11:L] pins enabled.
◆ EBI_GENERIC_APEN_A13
#define EBI_GENERIC_APEN_A13 EBI_ROUTE_APEN_A13 |
EBI_A[12:L] pins enabled.
◆ EBI_GENERIC_APEN_A14
#define EBI_GENERIC_APEN_A14 EBI_ROUTE_APEN_A14 |
EBI_A[13:L] pins enabled.
◆ EBI_GENERIC_APEN_A15
#define EBI_GENERIC_APEN_A15 EBI_ROUTE_APEN_A15 |
EBI_A[14:L] pins enabled.
◆ EBI_GENERIC_APEN_A16
#define EBI_GENERIC_APEN_A16 EBI_ROUTE_APEN_A16 |
EBI_A[15:L] pins enabled.
◆ EBI_GENERIC_APEN_A17
#define EBI_GENERIC_APEN_A17 EBI_ROUTE_APEN_A17 |
EBI_A[16:L] pins enabled.
◆ EBI_GENERIC_APEN_A18
#define EBI_GENERIC_APEN_A18 EBI_ROUTE_APEN_A18 |
EBI_A[17:L] pins enabled.
◆ EBI_GENERIC_APEN_A19
#define EBI_GENERIC_APEN_A19 EBI_ROUTE_APEN_A19 |
EBI_A[18:L] pins enabled.
◆ EBI_GENERIC_APEN_A20
#define EBI_GENERIC_APEN_A20 EBI_ROUTE_APEN_A20 |
EBI_A[19:L] pins enabled.
◆ EBI_GENERIC_APEN_A21
#define EBI_GENERIC_APEN_A21 EBI_ROUTE_APEN_A21 |
EBI_A[20:L] pins enabled.
◆ EBI_GENERIC_APEN_A22
#define EBI_GENERIC_APEN_A22 EBI_ROUTE_APEN_A22 |
EBI_A[21:L] pins enabled.
◆ EBI_GENERIC_APEN_A23
#define EBI_GENERIC_APEN_A23 EBI_ROUTE_APEN_A23 |
EBI_A[22:L] pins enabled.
◆ EBI_GENERIC_APEN_A24
#define EBI_GENERIC_APEN_A24 EBI_ROUTE_APEN_A24 |
EBI_A[23:L] pins enabled.
◆ EBI_GENERIC_APEN_A25
#define EBI_GENERIC_APEN_A25 EBI_ROUTE_APEN_A25 |
EBI_A[24:L] pins enabled.
◆ EBI_GENERIC_APEN_A26
#define EBI_GENERIC_APEN_A26 EBI_ROUTE_APEN_A26 |
EBI_A[25:L] pins enabled.
◆ EBI_GENERIC_APEN_A27
#define EBI_GENERIC_APEN_A27 EBI_ROUTE_APEN_A27 |
EBI_A[26:L] pins enabled.
◆ EBI_GENERIC_APEN_A28
#define EBI_GENERIC_APEN_A28 EBI_ROUTE_APEN_A28 |
EBI_A[27:L] pins enabled.
◆ EBI_INIT_DEFAULT
#define EBI_INIT_DEFAULT |
Default configuration for EBI initialization structures.
◆ EBI_TFTINIT_DEFAULT
#define EBI_TFTINIT_DEFAULT |
Default configuration for EBI TFT initialization structure.
Enumeration Type Documentation
◆ EBI_Mode_TypeDef
enum EBI_Mode_TypeDef |
◆ EBI_Polarity_TypeDef
enum EBI_Polarity_TypeDef |
◆ EBI_Line_TypeDef
enum EBI_Line_TypeDef |
EBI Pin Line types.
◆ EBI_ALow_TypeDef
enum EBI_ALow_TypeDef |
Address Pin Enable, lower limit - lower range of pins to enable.
◆ EBI_AHigh_TypeDef
enum EBI_AHigh_TypeDef |
Address Pin Enable, high limit - higher limit of pins to enable.
◆ EBI_Location_TypeDef
enum EBI_Location_TypeDef |
◆ EBI_TFTBank_TypeDef
enum EBI_TFTBank_TypeDef |
◆ EBI_TFTColorSrc_TypeDef
◆ EBI_TFTInterleave_TypeDef
◆ EBI_TFTFrameBufTrigger_TypeDef
◆ EBI_TFTMaskBlend_TypeDef
Control of mask and alpha blending mode.
◆ EBI_TFTDDMode_TypeDef
◆ EBI_TFTWidth_TypeDef
enum EBI_TFTWidth_TypeDef |