Detailed 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
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_GENERIC_ALB_A0 EBI_ROUTEPEN_ALB_A0
#define EBI_GENERIC_ALB_A16 EBI_ROUTEPEN_ALB_A16
#define EBI_GENERIC_ALB_A24 EBI_ROUTEPEN_ALB_A24
#define EBI_GENERIC_ALB_A8 EBI_ROUTEPEN_ALB_A8
#define EBI_GENERIC_APEN_A0 EBI_ROUTEPEN_APEN_A0
#define EBI_GENERIC_APEN_A10 EBI_ROUTEPEN_APEN_A10
#define EBI_GENERIC_APEN_A11 EBI_ROUTEPEN_APEN_A11
#define EBI_GENERIC_APEN_A12 EBI_ROUTEPEN_APEN_A12
#define EBI_GENERIC_APEN_A13 EBI_ROUTEPEN_APEN_A13
#define EBI_GENERIC_APEN_A14 EBI_ROUTEPEN_APEN_A14
#define EBI_GENERIC_APEN_A15 EBI_ROUTEPEN_APEN_A15
#define EBI_GENERIC_APEN_A16 EBI_ROUTEPEN_APEN_A16
#define EBI_GENERIC_APEN_A17 EBI_ROUTEPEN_APEN_A17
#define EBI_GENERIC_APEN_A18 EBI_ROUTEPEN_APEN_A18
#define EBI_GENERIC_APEN_A19 EBI_ROUTEPEN_APEN_A19
#define EBI_GENERIC_APEN_A20 EBI_ROUTEPEN_APEN_A20
#define EBI_GENERIC_APEN_A21 EBI_ROUTEPEN_APEN_A21
#define EBI_GENERIC_APEN_A22 EBI_ROUTEPEN_APEN_A22
#define EBI_GENERIC_APEN_A23 EBI_ROUTEPEN_APEN_A23
#define EBI_GENERIC_APEN_A24 EBI_ROUTEPEN_APEN_A24
#define EBI_GENERIC_APEN_A25 EBI_ROUTEPEN_APEN_A25
#define EBI_GENERIC_APEN_A26 EBI_ROUTEPEN_APEN_A26
#define EBI_GENERIC_APEN_A27 EBI_ROUTEPEN_APEN_A27
#define EBI_GENERIC_APEN_A28 EBI_ROUTEPEN_APEN_A28
#define EBI_GENERIC_APEN_A5 EBI_ROUTEPEN_APEN_A5
#define EBI_GENERIC_APEN_A6 EBI_ROUTEPEN_APEN_A6
#define EBI_GENERIC_APEN_A7 EBI_ROUTEPEN_APEN_A7
#define EBI_GENERIC_APEN_A8 EBI_ROUTEPEN_APEN_A8
#define EBI_GENERIC_APEN_A9 EBI_ROUTEPEN_APEN_A9
#define EBI_INIT_DEFAULT
#define EBI_TFTINIT_DEFAULT

Enumerations

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
}
enum EBI_ALow_TypeDef {
ebiALowA0 = EBI_GENERIC_ALB_A0,
ebiALowA8 = EBI_GENERIC_ALB_A8,
ebiALowA16 = EBI_GENERIC_ALB_A16,
ebiALowA24 = EBI_GENERIC_ALB_A24
}
enum EBI_Line_TypeDef {
ebiLineARDY ,
ebiLineALE ,
ebiLineWE ,
ebiLineRE ,
ebiLineCS ,
ebiLineBL ,
ebiLineTFTVSync ,
ebiLineTFTHSync ,
ebiLineTFTDataEn ,
ebiLineTFTDClk ,
ebiLineTFTCS
}
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_TFTColorFormat_TypeDef {
ebiTFTARGB0555 = EBI_TFTCOLORFORMAT_PIXEL0FORMAT_ARGB0555,
ebiTFTARGB0565 = EBI_TFTCOLORFORMAT_PIXEL0FORMAT_ARGB0565,
ebiTFTARGB0666 = EBI_TFTCOLORFORMAT_PIXEL0FORMAT_ARGB0666,
ebiTFTARGB0888 = EBI_TFTCOLORFORMAT_PIXEL0FORMAT_ARGB0888,
ebiTFTARGB5555 = EBI_TFTCOLORFORMAT_PIXEL0FORMAT_ARGB5555,
ebiTFTARGB6565 = EBI_TFTCOLORFORMAT_PIXEL0FORMAT_ARGB6565,
ebiTFTARGB6666 = EBI_TFTCOLORFORMAT_PIXEL0FORMAT_ARGB6666,
ebiTFTARGB8888 = EBI_TFTCOLORFORMAT_PIXEL0FORMAT_ARGB8888,
ebiTFTRGB555 = EBI_TFTCOLORFORMAT_PIXEL1FORMAT_RGB555,
ebiTFTRGB565 = EBI_TFTCOLORFORMAT_PIXEL1FORMAT_RGB565,
ebiTFTRGB666 = EBI_TFTCOLORFORMAT_PIXEL1FORMAT_RGB666,
ebiTFTRGB888 = EBI_TFTCOLORFORMAT_PIXEL1FORMAT_RGB888
}
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_IMASKALPHA,
ebiTFTMBEMask = EBI_TFTCTRL_MASKBLEND_EFBMASK,
ebiTFTMBEAlpha = EBI_TFTCTRL_MASKBLEND_EFBALPHA,
ebiTFTMBEMaskAlpha = EBI_TFTCTRL_MASKBLEND_EFBMASKALPHA,
ebiTFTMBEIMask = EBI_TFTCTRL_MASKBLEND_IFBMASK,
ebiTFTMBEIAlpha = EBI_TFTCTRL_MASKBLEND_IFBALPHA,
ebiTFTMBEIMaskAlpha = EBI_TFTCTRL_MASKBLEND_IFBMASKALPHA
}
enum EBI_TFTWidth_TypeDef {
ebiTFTWidthByte = EBI_TFTCTRL_WIDTH_BYTE,
ebiTFTWidthHalfWord = EBI_TFTCTRL_WIDTH_HALFWORD
}

Functions

void EBI_AddressTimingSet (uint32_t setupCycles, uint32_t holdCycles)
Configure timing values of address latch bus accesses.
void EBI_AltMapEnable (bool enable)
Configure the Alternate Address Map support. Enables or disables 256 MB address range for all banks.
uint32_t EBI_BankAddress (uint32_t bank)
Return the base address of the EBI bank.
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_BankByteLaneEnable (uint32_t banks, bool enable)
Configure Byte Lane Enable for select banks timing support.
void EBI_BankEnable (uint32_t banks, bool enable)
Enable or disable EBI Bank.
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_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_ChipSelectEnable (uint32_t cs, bool enable)
Enable or disable EBI Chip Select.
void EBI_Disable (void)
Disable External Bus Interface.
void EBI_Init (const EBI_Init_TypeDef *ebiInit)
Configure and enable the External Bus Interface.
__STATIC_INLINE void EBI_IntClear (uint32_t flags)
Clear one or more pending EBI interrupts.
__STATIC_INLINE void EBI_IntDisable (uint32_t flags)
Disable one or more EBI interrupts.
__STATIC_INLINE void EBI_IntEnable (uint32_t flags)
Enable one or more EBI interrupts.
__STATIC_INLINE uint32_t EBI_IntGet (void)
Get pending EBI interrupt flags.
__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.
__STATIC_INLINE void EBI_IntSet (uint32_t flags)
Set one or more pending EBI interrupts.
void EBI_NANDFlashEnable (uint32_t banks, bool enable)
Enable or disable EBI NAND Flash Support.
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.
__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.
__STATIC_INLINE void EBI_TFTAlphaBlendSet (uint8_t alpha)
Set TFT Alpha Blending Factor.
__STATIC_INLINE void EBI_TFTColorFormatSet ( EBI_TFTColorFormat_TypeDef color0, EBI_TFTColorFormat_TypeDef color1)
Set TFT Color Format.
__STATIC_INLINE void EBI_TFTColorSrcSet ( EBI_TFTColorSrc_TypeDef colorSrc)
Masking and Blending Color1 Source Set.
__STATIC_INLINE void EBI_TFTDDSet (uint32_t color)
Set TFT Direct Drive Data from Internal Memory.
__STATIC_INLINE void EBI_TFTEnable ( EBI_TFTDDMode_TypeDef mode)
Enable or disable TFT Direct Drive.
__STATIC_INLINE void EBI_TFTFBTriggerSet ( EBI_TFTFrameBufTrigger_TypeDef sync)
Set Frame Buffer Trigger.
__STATIC_INLINE void EBI_TFTFrameBaseSet (uint32_t address)
Configure frame buffer pointer.
__STATIC_INLINE uint32_t EBI_TFTHCount (void)
Get current horizontal position counter.
void EBI_TFTHPorchSet (uint32_t front, uint32_t back, uint32_t pulseWidth)
Configure and initialize Horizontal Porch Settings.
__STATIC_INLINE void EBI_TFTHStrideSet (uint32_t nbytes)
Set horizontal TFT stride value in number of bytes.
void EBI_TFTInit (const EBI_TFTInit_TypeDef *ebiTFTInit)
Configure and initialize TFT Direct Drive.
__STATIC_INLINE void EBI_TFTMaskBlendMode ( EBI_TFTMaskBlend_TypeDef maskBlend)
Masking and Blending Mode Set.
__STATIC_INLINE void EBI_TFTMaskSet (uint32_t mask)
Set TFT mask value. Data accesses that matches this value are suppressed.
__STATIC_INLINE void EBI_TFTPixelSet (int pixel, uint32_t color)
Set TFT Pixel Color 0 or 1.
void EBI_TFTSizeSet (uint32_t horizontal, uint32_t vertical)
Configure and initialize TFT size settings.
void EBI_TFTTimingSet (uint32_t dclkPeriod, uint32_t start, uint32_t setup, uint32_t hold)
Configure TFT Direct Drive Timing Settings.
__STATIC_INLINE uint32_t EBI_TFTVCount (void)
Get current vertical position counter.
void EBI_TFTVPorchSet (uint32_t front, uint32_t back, uint32_t pulseWidth)
Configure Vertical Porch Settings.
void EBI_WriteTimingSet (uint32_t setupCycles, uint32_t strobeCycles, uint32_t holdCycles)
Configure timing values of write bus accesses.

Macro Definition Documentation

#define EBI_BANK0   (uint32_t)(1 << 1)
*
* ---------               ---------
* |       |  /|       |\  | Ext.  |
* |  EBI  | / --------- \ | Async |
* |       | \ --------- / | Device|
* |       |  \|       |/  |       |
* ---------               ---------
*         Parallel interface
*
* 

EBI address bank 0.

Definition at line 73 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() , EBI_Init() , and EBI_NANDFlashEnable() .

#define EBI_CS0   (uint32_t)(1 << 1)

EBI chip select line 0.

Definition at line 78 of file em_ebi.h .

Referenced by EBI_ChipSelectEnable() .

#define EBI_CS1   (uint32_t)(1 << 2)

EBI chip select line 1.

Definition at line 79 of file em_ebi.h .

Referenced by EBI_ChipSelectEnable() .

#define EBI_CS2   (uint32_t)(1 << 3)

EBI chip select line 2.

Definition at line 80 of file em_ebi.h .

Referenced by EBI_ChipSelectEnable() .

#define EBI_CS3   (uint32_t)(1 << 4)

EBI chip select line 3.

Definition at line 81 of file em_ebi.h .

Referenced by EBI_ChipSelectEnable() .

#define EBI_INIT_DEFAULT

Default configuration for EBI initialization structures.

Definition at line 492 of file em_ebi.h .

#define EBI_TFTINIT_DEFAULT
Value:
{ \
ebiTFTBank0, /* Select EBI Bank 0. */ \
ebiTFTWidthHalfWord, /* Select 2-byte increments. */ \
ebiTFTColorSrcMem, /* Use memory as source for mask/blending. */ \
ebiTFTInterleaveUnlimited, /* Unlimited interleaved accesses. */ \
ebiTFTFrameBufTriggerVSync, /* VSYNC as frame buffer update trigger. */ \
false, /* Drive DCLK from negative edge of internal clock. */ \
ebiTFTMBDisabled, /* No masking and alpha blending enabled. */ \
ebiTFTDDModeExternal, /* Drive from external memory. */ \
ebiActiveLow, /* CS Active Low polarity. */ \
ebiActiveLow, /* DCLK Active Low polarity. */ \
ebiActiveLow, /* DATAEN Active Low polarity. */ \
ebiActiveLow, /* HSYNC Active Low polarity. */ \
ebiActiveLow, /* VSYNC Active Low polarity. */ \
320, /* Horizontal size in pixels. */ \
1, /* Horizontal Front Porch. */ \
29, /* Horizontal Back Porch. */ \
2, /* Horizontal Synchronization Pulse Width. */ \
240, /* Vertical size in pixels. */ \
1, /* Vertical Front Porch. */ \
4, /* Vertical Back Porch. */ \
2, /* Vertical Synchronization Pulse Width. */ \
0x0000, /* Address offset to EBI memory base. */ \
5, /* DCLK Period. */ \
2, /* DCLK Start. */ \
1, /* DCLK Setup cycles. */ \
1, /* DCLK Hold cycles. */ \
}

Default configuration for EBI TFT initialization structure.

Definition at line 644 of file em_ebi.h .

Enumeration Type Documentation

Address Pin Enable, high limit - higher limit of pins to enable.

Enumerator
ebiAHighA0

All EBI_A pins are disabled.

ebiAHighA5

All EBI_A[4:ALow] are enabled.

ebiAHighA6

All EBI_A[5:ALow] are enabled.

ebiAHighA7

All EBI_A[6:ALow] are enabled.

ebiAHighA8

All EBI_A[7:ALow] are enabled.

ebiAHighA9

All EBI_A[8:ALow] are enabled.

ebiAHighA10

All EBI_A[9:ALow] are enabled.

ebiAHighA11

All EBI_A[10:ALow] are enabled.

ebiAHighA12

All EBI_A[11:ALow] are enabled.

ebiAHighA13

All EBI_A[12:ALow] are enabled.

ebiAHighA14

All EBI_A[13:ALow] are enabled.

ebiAHighA15

All EBI_A[14:ALow] are enabled.

ebiAHighA16

All EBI_A[15:ALow] are enabled.

ebiAHighA17

All EBI_A[16:ALow] are enabled.

ebiAHighA18

All EBI_A[17:ALow] are enabled.

ebiAHighA19

All EBI_A[18:ALow] are enabled.

ebiAHighA20

All EBI_A[19:ALow] are enabled.

ebiAHighA21

All EBI_A[20:ALow] are enabled.

ebiAHighA22

All EBI_A[21:ALow] are enabled.

ebiAHighA23

All EBI_A[22:ALow] are enabled.

ebiAHighA24

All EBI_A[23:ALow] are enabled.

ebiAHighA25

All EBI_A[24:ALow] are enabled.

ebiAHighA26

All EBI_A[25:ALow] are enabled.

ebiAHighA27

All EBI_A[26:ALow] are enabled.

ebiAHighA28

All EBI_A[27:ALow] are enabled.

Definition at line 215 of file em_ebi.h .

Address Pin Enable, lower limit - lower range of pins to enable.

Enumerator
ebiALowA0

Address lines EBI_A[0] and upwards are enabled by APEN.

ebiALowA8

Address lines EBI_A[8] and upwards are enabled by APEN.

ebiALowA16

Address lines EBI_A[16] and upwards are enabled by APEN.

ebiALowA24

Address lines EBI_A[24] and upwards are enabled by APEN.

Definition at line 203 of file em_ebi.h .

EBI Pin Line types.

Enumerator
ebiLineARDY

Address Ready line.

ebiLineALE

Address Latch Enable line.

ebiLineWE

Write Enable line.

ebiLineRE

Read Enable line.

ebiLineCS

Chip Select line.

ebiLineBL

BL line.

ebiLineTFTVSync

TFT VSYNC line.

ebiLineTFTHSync

TFT HSYNC line.

ebiLineTFTDataEn

TFT Data enable line.

ebiLineTFTDClk

TFT DCLK line.

ebiLineTFTCS

TFT Chip select line.

Definition at line 172 of file em_ebi.h .

EBI Mode of operation.

Enumerator
ebiModeD8A8

8 data bits, 8 address bits.

ebiModeD16A16ALE

16 data bits, 16 address bits, using address latch enable.

ebiModeD8A24ALE

8 data bits, 24 address bits, using address latch enable.

ebiModeD16

Mode D16.

Definition at line 150 of file em_ebi.h .

EBI Polarity configuration.

Enumerator
ebiActiveLow

Active Low.

ebiActiveHigh

Active High.

Definition at line 164 of file em_ebi.h .

EBI TFT Graphics Bank Select.

Enumerator
ebiTFTBank0

Memory BANK0 contains frame buffer.

ebiTFTBank1

Memory BANK1 contains frame buffer.

ebiTFTBank2

Memory BANK2 contains frame buffer.

ebiTFTBank3

Memory BANK3 contains frame buffer.

Definition at line 285 of file em_ebi.h .

EBI TFT Color format.

Enumerator
ebiTFTARGB0555

Set ARGB (Alpha, Red, Green, Blue) color format to 0555

ebiTFTARGB0565

Set ARGB (Alpha, Red, Green, Blue) color format to 0565

ebiTFTARGB0666

Set ARGB (Alpha, Red, Green, Blue) color format to 0666

ebiTFTARGB0888

Set ARGB (Alpha, Red, Green, Blue) color format to 0888

ebiTFTARGB5555

Set ARGB (Alpha, Red, Green, Blue) color format to 5555

ebiTFTARGB6565

Set ARGB (Alpha, Red, Green, Blue) color format to 6565

ebiTFTARGB6666

Set ARGB (Alpha, Red, Green, Blue) color format to 6666

ebiTFTARGB8888

Set ARGB (Alpha, Red, Green, Blue) color format to 8888

ebiTFTRGB555

Set RGB (Red, Green, Blue) color format to 555

ebiTFTRGB565

Set RGB (Red, Green, Blue) color format to 565

ebiTFTRGB666

Set RGB (Red, Green, Blue) color format to 666

ebiTFTRGB888

Set RGB (Red, Green, Blue) color format to 888

Definition at line 298 of file em_ebi.h .

Masking and Alpha blending source color.

Enumerator
ebiTFTColorSrcMem

Use memory as source color for masking/alpha blending.

ebiTFTColorSrcPixel1

Use PIXEL1 register as source color for masking/alpha blending.

Definition at line 328 of file em_ebi.h .

TFT Direct Drive mode.

Enumerator
ebiTFTDDModeDisabled

Disabled.

ebiTFTDDModeInternal

Direct Drive from internal memory.

ebiTFTDDModeExternal

Direct Drive from external memory.

Definition at line 391 of file em_ebi.h .

Control frame base pointer copy.

Enumerator
ebiTFTFrameBufTriggerVSync

Trigger update of frame buffer pointer on vertical sync.

ebiTFTFrameBufTriggerHSync

Trigger update of frame buffer pointer on horizontal sync.

Definition at line 346 of file em_ebi.h .

Bus Data Interleave Mode.

Enumerator
ebiTFTInterleaveUnlimited

Unlimited interleaved accesses per EBI_DCLK period. Can cause jitter.

ebiTFTInterleaveOnePerDClk

Allow 1 interleaved access per EBI_DCLK period.

ebiTFTInterleavePorch

Only allow accesses during porch periods.

Definition at line 336 of file em_ebi.h .

Control of mask and alpha blending mode.

Enumerator
ebiTFTMBDisabled

Masking and blending are disabled.

ebiTFTMBIMask

Internal masking.

ebiTFTMBIAlpha

Internal alpha blending.

ebiTFTMBIMaskAlpha

Internal masking and alpha blending are enabled.

ebiTFTMBEMask

External masking.

ebiTFTMBEAlpha

External alpha blending.

ebiTFTMBEMaskAlpha

External masking and alpha blending.

ebiTFTMBEIMask

Internal Frame Buffer masking.

ebiTFTMBEIAlpha

Internal Frame Buffer alpha blending.

ebiTFTMBEIMaskAlpha

Internal Frame Buffer masking and alpha blending.

Definition at line 354 of file em_ebi.h .

TFT Data Increment Width.

Enumerator
ebiTFTWidthByte

Pixel increments are 1 byte at a time.

ebiTFTWidthHalfWord

Pixel increments are 2 bytes (half word).

Definition at line 401 of file em_ebi.h .

Function Documentation

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.

Definition at line 594 of file em_ebi.c .

Referenced by EBI_Init() .

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.

Definition at line 1177 of file em_ebi.c .

References BUS_RegBitWrite() .

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.

Definition at line 360 of file em_ebi.c .

References EBI_BANK0 , EBI_BANK1 , EBI_BANK2 , and EBI_BANK3 .

Referenced by BSP_getTftSRAMDirectDriveBaseAddress() , BSP_setTftSRAMDirectDriveBaseAddress() , and TFT_DirectInit() .

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.

Definition at line 981 of file em_ebi.c .

References BUS_RegBitWrite() , EBI_BANK0 , EBI_BANK1 , EBI_BANK2 , and EBI_BANK3 .

Referenced by EBI_Init() .

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.

Definition at line 1014 of file em_ebi.c .

References 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.

Parameters
[in] banks A mask of memory bank(s) to configure polarity for.
[in] enable A flag

Definition at line 1149 of file em_ebi.c .

References BUS_RegBitWrite() , EBI_BANK0 , EBI_BANK1 , EBI_BANK2 , and EBI_BANK3 .

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.

Definition at line 334 of file em_ebi.c .

References BUS_RegBitWrite() , 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.

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.

Definition at line 1069 of file em_ebi.c .

References BUS_RegBitWrite() , 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 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.

Definition at line 779 of file em_ebi.c .

References BUS_RegBitWrite() , EBI_BANK0 , EBI_BANK1 , EBI_BANK2 , and EBI_BANK3 .

Referenced by EBI_Init() .

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.

Definition at line 824 of file em_ebi.c .

References 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 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.

Definition at line 884 of file em_ebi.c .

References BUS_RegBitWrite() , EBI_BANK0 , EBI_BANK1 , EBI_BANK2 , and EBI_BANK3 .

Referenced by EBI_Init() .

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.

Definition at line 924 of file em_ebi.c .

References 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.

Parameters
[in] cs ChipSelect lines to reconfigure, mask of EBI_CS<n> flags.
[in] enable True to enable, false to disable.

Definition at line 442 of file em_ebi.c .

References EBI_CS0 , EBI_CS1 , EBI_CS2 , and EBI_CS3 .

Referenced by 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.

Definition at line 112 of file em_ebi.c .

References 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 , EBI_Init_TypeDef::csLines , EBI_Init_TypeDef::csPolarity , 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_PolaritySet() , EBI_ReadTimingSet() , EBI_WriteTimingSet() , ebiLineALE , ebiLineARDY , ebiLineBL , ebiLineCS , ebiLineRE , ebiLineWE , ebiModeD16 , ebiModeD16A16ALE , ebiModeD8A24ALE , ebiModeD8A8 , EBI_Init_TypeDef::enable , 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() , BSP_initEbiFlash() , and BSP_initEbiSram() .

__STATIC_INLINE void EBI_IntClear ( uint32_t flags )

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).

Definition at line 886 of file em_ebi.h .

__STATIC_INLINE void EBI_IntDisable ( uint32_t flags )

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)

Definition at line 912 of file em_ebi.h .

__STATIC_INLINE void EBI_IntEnable ( uint32_t flags )

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)

Definition at line 925 of file em_ebi.h .

__STATIC_INLINE uint32_t EBI_IntGet ( void )

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.

Definition at line 941 of file em_ebi.h .

__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.

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.

Definition at line 960 of file em_ebi.h .

__STATIC_INLINE void EBI_IntSet ( uint32_t flags )

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).

Definition at line 899 of file em_ebi.h .

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.

Definition at line 414 of file em_ebi.c .

References BUS_RegBitWrite() , EBI_BANK0 , EBI_BANK1 , EBI_BANK2 , and EBI_BANK3 .

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.

Definition at line 468 of file em_ebi.c .

References BUS_RegBitWrite() , ebiLineALE , ebiLineARDY , ebiLineBL , ebiLineCS , ebiLineRE , ebiLineTFTCS , ebiLineTFTDataEn , ebiLineTFTDClk , ebiLineTFTHSync , ebiLineTFTVSync , and ebiLineWE .

Referenced by EBI_Init() , and EBI_TFTInit() .

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.

Definition at line 528 of file em_ebi.c .

Referenced by EBI_Init() .

__STATIC_INLINE uint32_t EBI_StopNandEccGen ( void )

Stop NAND flash ECC generator and return generated ECC.

Returns
The generated ECC.

Definition at line 986 of file em_ebi.h .

Referenced by NANDFLASH_ReadPage() , and NANDFLASH_WritePage() .

__STATIC_INLINE void EBI_TFTAlphaBlendSet ( uint8_t alpha )

Set TFT Alpha Blending Factor.

Parameters
[in] alpha 8-bit value indicating blending factor.

Definition at line 812 of file em_ebi.h .

__STATIC_INLINE void EBI_TFTColorFormatSet ( EBI_TFTColorFormat_TypeDef color0,
EBI_TFTColorFormat_TypeDef color1
)

Set TFT Color Format.

Parameters
[in] color0 ARGB color format to be used.
[in] color1 RGB color format to be used.

Definition at line 778 of file em_ebi.h .

__STATIC_INLINE void EBI_TFTColorSrcSet ( EBI_TFTColorSrc_TypeDef colorSrc )

Masking and Blending Color1 Source Set.

Parameters
[in] colorSrc Color1 source.

Definition at line 801 of file em_ebi.h .

__STATIC_INLINE void EBI_TFTDDSet ( uint32_t color )

Set TFT Direct Drive Data from Internal Memory.

Parameters
[in] color Color of pixel

Definition at line 763 of file em_ebi.h .

__STATIC_INLINE void EBI_TFTEnable ( EBI_TFTDDMode_TypeDef mode )

Enable or disable TFT Direct Drive.

Parameters
[in] mode Drive from Internal or External memory, or Disable Direct Drive.

Definition at line 720 of file em_ebi.h .

__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).

Parameters
[in] sync Trigger update of frame buffer pointer on vertical or horizontal sync.

Definition at line 857 of file em_ebi.h .

__STATIC_INLINE void EBI_TFTFrameBaseSet ( uint32_t address )

Configure frame buffer pointer.

Parameters
[in] address Frame pointer address, as offset by EBI base address.

Definition at line 732 of file em_ebi.h .

Referenced by EBI_TFTInit() .

__STATIC_INLINE uint32_t EBI_TFTHCount ( void )

Get current horizontal position counter.

Returns
Returns the current horizontal pixel position within a visible line.

Definition at line 842 of file em_ebi.h .

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.

Definition at line 698 of file em_ebi.c .

Referenced by EBI_TFTInit() .

__STATIC_INLINE void EBI_TFTHStrideSet ( uint32_t nbytes )

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.

Definition at line 869 of file em_ebi.h .

__STATIC_INLINE void EBI_TFTMaskBlendMode ( EBI_TFTMaskBlend_TypeDef maskBlend )

Masking and Blending Mode Set.

Parameters
[in] maskBlend Masking and alpha blending mode.

Definition at line 790 of file em_ebi.h .

__STATIC_INLINE void EBI_TFTMaskSet ( uint32_t mask )

Set TFT mask value. Data accesses that matches this value are suppressed.

Parameters
[in] mask

Definition at line 822 of file em_ebi.h .

__STATIC_INLINE void EBI_TFTPixelSet ( int pixel,
uint32_t color
)

Set TFT Pixel Color 0 or 1.

Parameters
[in] pixel Which pixel instance to set.
[in] color Color of pixel, 16-bit value.

Definition at line 745 of file em_ebi.h .

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.

Definition at line 678 of file em_ebi.c .

Referenced by EBI_TFTInit() .

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.

Definition at line 747 of file em_ebi.c .

Referenced by EBI_TFTInit() .

__STATIC_INLINE uint32_t EBI_TFTVCount ( void )

Get current vertical position counter.

Returns
Returns the current line position for the visible part of a frame.

Definition at line 832 of file em_ebi.h .

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.

Definition at line 720 of file em_ebi.c .

Referenced by EBI_TFTInit() .

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.

Definition at line 562 of file em_ebi.c .

Referenced by EBI_Init() .