EBI
[EM_Library]

EBI External Bus Interface (EBI) Peripheral API. More...

Collaboration diagram for EBI:

Data Structures

struct  EBI_Init_TypeDef
struct  EBI_TFTInit_TypeDef

Defines

#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_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_Line_TypeDef {
  ebiLineARDY,
  ebiLineALE,
  ebiLineWE,
  ebiLineRE,
  ebiLineCS,
  ebiLineBL,
  ebiLineTFTVSync,
  ebiLineTFTHSync,
  ebiLineTFTDataEn,
  ebiLineTFTDClk,
  ebiLineTFTCS
}
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_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_Location_TypeDef {
  ebiLocation0 = EBI_ROUTE_LOCATION_LOC0,
  ebiLocation1 = EBI_ROUTE_LOCATION_LOC1,
  ebiLocation2 = EBI_ROUTE_LOCATION_LOC2
}
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_TFTInterleave_TypeDef {
  ebiTFTInterleaveUnlimited = EBI_TFTCTRL_INTERLEAVE_UNLIMITED,
  ebiTFTInterleaveOnePerDClk = EBI_TFTCTRL_INTERLEAVE_ONEPERDCLK,
  ebiTFTInterleavePorch = EBI_TFTCTRL_INTERLEAVE_PORCH
}
enum  EBI_TFTFrameBufTrigger_TypeDef {
  ebiTFTFrameBufTriggerVSync = EBI_TFTCTRL_FBCTRIG_VSYNC,
  ebiTFTFrameBufTriggerHSync = EBI_TFTCTRL_FBCTRIG_HSYNC
}
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_TFTDDMode_TypeDef {
  ebiTFTDDModeDisabled = EBI_TFTCTRL_DD_DISABLED,
  ebiTFTDDModeInternal = EBI_TFTCTRL_DD_INTERNAL,
  ebiTFTDDModeExternal = EBI_TFTCTRL_DD_EXTERNAL
}
enum  EBI_TFTWidth_TypeDef {
  ebiTFTWidthByte = EBI_TFTCTRL_WIDTH_BYTE,
  ebiTFTWidthHalfWord = EBI_TFTCTRL_WIDTH_HALFWORD
}

Functions

void EBI_Init (const EBI_Init_TypeDef *ebiInit)
 Configure and enable External Bus Interface.
void EBI_Disable (void)
 Disable External Bus Interface.
uint32_t EBI_BankAddress (uint32_t bank)
 Return base address of EBI bank.
void EBI_BankEnable (uint32_t banks, bool enable)
 Enable or disable EBI Bank.
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 (int front, int back, int pulseWidth)
 Configure and initialize Horizontal Porch Settings.
void EBI_TFTVPorchSet (int front, int back, int pulseWidth)
 Configure Vertical Porch Settings.
void EBI_TFTTimingSet (int dclkPeriod, int start, int setup, int hold)
 Configure TFT Direct Drive Timing Settings.
void EBI_BankReadTimingSet (uint32_t banks, int setupCycles, int strobeCycles, int holdCycles)
 Configure timing values of read bus accesses.
void EBI_BankReadTimingConfig (uint32_t banks, bool pageMode, bool prefetch, bool halfRE)
 Configure read operation parameters for selected bank.
void EBI_BankWriteTimingSet (uint32_t banks, int setupCycles, int strobeCycles, int holdCycles)
 Configure timing values of write bus accesses.
void EBI_BankWriteTimingConfig (uint32_t banks, bool writeBufDisable, bool halfWE)
 Configure write operation parameters for selected bank.
void EBI_BankAddressTimingSet (uint32_t banks, int setupCycles, int holdCycles)
 Configure timing values of address latch bus accesses.
void EBI_BankAddressTimingConfig (uint32_t banks, bool halfALE)
 Configure address operation parameters for selected 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_BankByteLaneEnable (uint32_t banks, bool enable)
 Configure Byte Lane Enable for select banks timing support.
void EBI_AltMapEnable (bool enable)
 Configure Alternate Address Map support Enables or disables 256MB address range for all banks.
__STATIC_INLINE void EBI_TFTEnable (EBI_TFTDDMode_TypeDef mode)
 Enable or disable TFT Direct Drive.
__STATIC_INLINE void EBI_TFTFrameBaseSet (uint32_t address)
 Configure frame buffer pointer.
__STATIC_INLINE void EBI_TFTPixelSet (int pixel, uint32_t color)
 Set TFT Pixel Color 0 or 1.
__STATIC_INLINE void EBI_TFTMaskBlendMode (EBI_TFTMaskBlend_TypeDef maskBlend)
 Masking and Blending Mode Set.
__STATIC_INLINE void EBI_TFTAlphaBlendSet (uint8_t alpha)
 Set TFT Alpha Blending Factor.
__STATIC_INLINE void EBI_TFTMaskSet (uint32_t mask)
 Set TFT mask value Data accesses that matches this value are suppressed.
__STATIC_INLINE uint32_t EBI_TFTVCount (void)
 Get current vertical position counter.
__STATIC_INLINE uint32_t EBI_TFTHCount (void)
 Get current horizontal position counter.
__STATIC_INLINE void EBI_TFTFBTriggerSet (EBI_TFTFrameBufTrigger_TypeDef sync)
 Set Frame Buffer Trigger.
__STATIC_INLINE void EBI_TFTHStrideSet (uint32_t nbytes)
 Set horizontal TFT stride value in number of bytes.
__STATIC_INLINE void EBI_IntClear (uint32_t flags)
 Clear one or more pending EBI interrupts.
__STATIC_INLINE void EBI_IntSet (uint32_t flags)
 Set one or more pending EBI interrupts from SW.
__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 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.
void EBI_ChipSelectEnable (uint32_t cs, bool enable)
 Enable or disable EBI Chip Select.
void EBI_ReadTimingSet (int setupCycles, int strobeCycles, int holdCycles)
 Configure timing values of read bus accesses.
void EBI_WriteTimingSet (int setupCycles, int strobeCycles, int holdCycles)
 Configure timing values of write bus accesses.
void EBI_AddressTimingSet (int setupCycles, int holdCycles)
 Configure timing values of address latch bus accesses.
void EBI_PolaritySet (EBI_Line_TypeDef line, EBI_Polarity_TypeDef polarity)
 Configure EBI pin polarity.

Detailed Description

EBI External Bus Interface (EBI) Peripheral API.


Define Documentation

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

EBI address bank 0

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(), and EBI_Init().

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

EBI chip select line 0

Definition at line 82 of file em_ebi.h.

Referenced by EBI_ChipSelectEnable().

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

EBI chip select line 1

Definition at line 83 of file em_ebi.h.

Referenced by EBI_ChipSelectEnable().

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

EBI chip select line 2

Definition at line 84 of file em_ebi.h.

Referenced by EBI_ChipSelectEnable().

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

EBI chip select line 3

Definition at line 85 of file em_ebi.h.

Referenced by EBI_ChipSelectEnable().

#define EBI_INIT_DEFAULT

Default config for EBI init structures

Definition at line 392 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 init structure

Definition at line 509 of file em_ebi.h.


Enumeration Type Documentation

Adress 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 161 of file em_ebi.h.

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

Enumerator:
ebiALowA0 

Adress lines EBI_A[0] and upwards are enabled by APEN

ebiALowA8 

Adress lines EBI_A[8] and upwards are enabled by APEN

ebiALowA16 

Adress lines EBI_A[16] and upwards are enabled by APEN

ebiALowA24 

Adress lines EBI_A[24] and upwards are enabled by APEN

Definition at line 148 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 116 of file em_ebi.h.

EBI I/O Alternate Pin Location

Enumerator:
ebiLocation0 

EBI PIN I/O Location 0

ebiLocation1 

EBI PIN I/O Location 1

ebiLocation2 

EBI PIN I/O Location 2

Definition at line 216 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 92 of file em_ebi.h.

EBI Polarity configuration

Enumerator:
ebiActiveLow 

Active Low

ebiActiveHigh 

Active High

Definition at line 107 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 229 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 242 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 290 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 262 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 251 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

Definition at line 271 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 301 of file em_ebi.h.


Function Documentation

void EBI_AddressTimingSet ( int  setupCycles,
int  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 HW

Definition at line 542 of file em_ebi.c.

Referenced by EBI_Init().

Here is the caller graph for this function:

void EBI_AltMapEnable ( bool  enable  ) 

Configure Alternate Address Map support Enables or disables 256MB address range for all banks.

Parameters:
[in] enable Set or clear address map extension

Definition at line 1163 of file em_ebi.c.

References BITBAND_Peripheral().

Here is the call graph for this function:

uint32_t EBI_BankAddress ( uint32_t  bank  ) 

Return base address of EBI bank.

Parameters:
[in] bank Bank to return start address for
Returns:
Absolute address of bank

Definition at line 327 of file em_ebi.c.

References EBI_BANK0, EBI_BANK1, EBI_BANK2, and EBI_BANK3.

void EBI_BankAddressTimingConfig ( uint32_t  banks,
bool  halfALE 
)

Configure address operation parameters for selected bank.

Parameters:
[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 942 of file em_ebi.c.

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

Referenced by EBI_Init().

Here is the call graph for this function:

Here is the caller graph for this function:

void EBI_BankAddressTimingSet ( uint32_t  banks,
int  setupCycles,
int  holdCycles 
)

Configure timing values of address latch bus accesses.

Parameters:
[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 980 of file em_ebi.c.

References EBI_BANK0, EBI_BANK1, EBI_BANK2, and EBI_BANK3.

Referenced by EBI_Init().

Here is the caller graph for this function:

void EBI_BankByteLaneEnable ( uint32_t  banks,
bool  enable 
)

Configure Byte Lane Enable for select banks timing support.

Parameters:
[in] banks Mask of memory bank(s) to configure polarity for
[in] enable Flag

Definition at line 1130 of file em_ebi.c.

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

Here is the call graph for this function:

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 296 of file em_ebi.c.

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

Here is the call graph for this function:

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 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 1036 of file em_ebi.c.

References BITBAND_Peripheral(), EBI_BANK0, EBI_BANK1, EBI_BANK2, EBI_BANK3, ebiLineALE, ebiLineARDY, ebiLineBL, ebiLineCS, ebiLineRE, ebiLineTFTCS, ebiLineTFTDataEn, ebiLineTFTDClk, ebiLineTFTHSync, ebiLineTFTVSync, and ebiLineWE.

Referenced by EBI_Init().

Here is the call graph for this function:

Here is the caller graph for this function:

void EBI_BankReadTimingConfig ( uint32_t  banks,
bool  pageMode,
bool  prefetch,
bool  halfRE 
)

Configure read operation parameters for selected bank.

Parameters:
[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 729 of file em_ebi.c.

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

Referenced by EBI_Init().

Here is the call graph for this function:

Here is the caller graph for this function:

void EBI_BankReadTimingSet ( uint32_t  banks,
int  setupCycles,
int  strobeCycles,
int  holdCycles 
)

Configure timing values of read bus accesses.

Parameters:
[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 778 of file em_ebi.c.

References EBI_BANK0, EBI_BANK1, EBI_BANK2, and EBI_BANK3.

Referenced by EBI_Init().

Here is the caller graph for this function:

void EBI_BankWriteTimingConfig ( uint32_t  banks,
bool  writeBufDisable,
bool  halfWE 
)

Configure write operation parameters for selected bank.

Parameters:
[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 839 of file em_ebi.c.

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

Referenced by EBI_Init().

Here is the call graph for this function:

Here is the caller graph for this function:

void EBI_BankWriteTimingSet ( uint32_t  banks,
int  setupCycles,
int  strobeCycles,
int  holdCycles 
)

Configure timing values of write bus accesses.

Parameters:
[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 884 of file em_ebi.c.

References EBI_BANK0, EBI_BANK1, EBI_BANK2, and EBI_BANK3.

Referenced by EBI_Init().

Here is the caller graph for this function:

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 384 of file em_ebi.c.

References BITBAND_Peripheral(), EBI_CS0, EBI_CS1, EBI_CS2, and EBI_CS3.

Referenced by EBI_Init().

Here is the call graph for this function:

Here is the caller graph for this function:

void EBI_Disable ( void   ) 

Disable External Bus Interface.

Definition at line 277 of file em_ebi.c.

void EBI_Init ( const EBI_Init_TypeDef ebiInit  ) 

Configure and enable External Bus Interface.

Parameters:
[in] ebiInit EBI configuration structure
Note:
GPIO lines must be configured as PUSH_PULL for correct operation GPIO and EBI clocks must be enabled in the CMU

Definition at line 61 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, BITBAND_Peripheral(), 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::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.

Here is the call graph for this function:

__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 716 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 744 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 758 of file em_ebi.h.

__STATIC_INLINE uint32_t EBI_IntGet ( void   ) 

Get pending EBI interrupt flags.

Note:
The 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 775 of file em_ebi.h.

__STATIC_INLINE void EBI_IntSet ( uint32_t  flags  ) 

Set one or more pending EBI interrupts from SW.

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 730 of file em_ebi.h.

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 415 of file em_ebi.c.

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

Referenced by EBI_Init(), and EBI_TFTInit().

Here is the call graph for this function:

Here is the caller graph for this function:

void EBI_ReadTimingSet ( int  setupCycles,
int  strobeCycles,
int  holdCycles 
)

Configure timing values of read bus accesses.

Parameters:
[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 475 of file em_ebi.c.

Referenced by EBI_Init().

Here is the caller graph for this function:

__STATIC_INLINE void EBI_StartNandEccGen ( void   ) 

Start ECC generator on NAND flash transfers.

Definition at line 785 of file em_ebi.h.

__STATIC_INLINE uint32_t EBI_StopNandEccGen ( void   ) 

Stop NAND flash ECC generator and return generated ECC.

Returns:
The generated ECC.

Definition at line 798 of file em_ebi.h.

__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 638 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 578 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 horisontal sync.

Definition at line 687 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 591 of file em_ebi.h.

Referenced by EBI_TFTInit().

Here is the caller graph for this function:

__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 671 of file em_ebi.h.

void EBI_TFTHPorchSet ( int  front,
int  back,
int  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 647 of file em_ebi.c.

Referenced by EBI_TFTInit().

Here is the caller graph for this function:

__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 700 of file em_ebi.h.

void EBI_TFTInit ( const EBI_TFTInit_TypeDef ebiTFTInit  ) 
__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 626 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 649 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 605 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 627 of file em_ebi.c.

Referenced by EBI_TFTInit().

Here is the caller graph for this function:

void EBI_TFTTimingSet ( int  dclkPeriod,
int  start,
int  setup,
int  hold 
)

Configure TFT Direct Drive Timing Settings.

Parameters:
[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 698 of file em_ebi.c.

Referenced by EBI_TFTInit().

Here is the caller graph for this function:

__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 660 of file em_ebi.h.

void EBI_TFTVPorchSet ( int  front,
int  back,
int  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 670 of file em_ebi.c.

Referenced by EBI_TFTInit().

Here is the caller graph for this function:

void EBI_WriteTimingSet ( int  setupCycles,
int  strobeCycles,
int  holdCycles 
)

Configure timing values of write bus accesses.

Parameters:
[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 510 of file em_ebi.c.

Referenced by EBI_Init().

Here is the caller graph for this function: