EBIEMLIB
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 |
Macros |
|
#define | EBI_BANK0 (uint32_t)(1 << 1) |
#define | EBI_BANK1 (uint32_t)(1 << 2) |
#define | EBI_BANK2 (uint32_t)(1 << 3) |
#define | EBI_BANK3 (uint32_t)(1 << 4) |
#define | EBI_CS0 (uint32_t)(1 << 1) |
#define | EBI_CS1 (uint32_t)(1 << 2) |
#define | EBI_CS2 (uint32_t)(1 << 3) |
#define | EBI_CS3 (uint32_t)(1 << 4) |
#define | EBI_INIT_DEFAULT |
Enumerations |
|
enum |
EBI_Line_TypeDef
{
ebiLineARDY , ebiLineALE , ebiLineWE , ebiLineRE , ebiLineCS } |
enum |
EBI_Mode_TypeDef
{
ebiModeD8A8 = EBI_CTRL_MODE_D8A8, ebiModeD16A16ALE = EBI_CTRL_MODE_D16A16ALE, ebiModeD8A24ALE = EBI_CTRL_MODE_D8A24ALE } |
enum |
EBI_Polarity_TypeDef
{
ebiActiveLow = 0, ebiActiveHigh = 1 } |
Functions |
|
void | EBI_AddressTimingSet (uint32_t setupCycles, uint32_t holdCycles) |
Configure timing values of address latch bus accesses.
|
|
uint32_t | EBI_BankAddress (uint32_t bank) |
Return the base address of the EBI bank.
|
|
void | EBI_BankEnable (uint32_t banks, bool enable) |
Enable or disable EBI Bank.
|
|
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.
|
|
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.
|
|
Macro Definition Documentation
#define EBI_BANK0 (uint32_t)(1 << 1) |
* * --------- --------- * | | /| |\ | Ext. | * | EBI | / --------- \ | Async | * | | \ --------- / | Device| * | | \| |/ | | * --------- --------- * Parallel interface * *
EBI address bank 0.
Definition at line
74
of file
em_ebi.h
.
Referenced by BSP_EbiInit() , EBI_BankAddress() , EBI_BankEnable() , and EBI_Init() .
#define EBI_BANK1 (uint32_t)(1 << 2) |
EBI address bank 1.
Definition at line
75
of file
em_ebi.h
.
Referenced by EBI_BankAddress() , EBI_BankEnable() , and EBI_Init() .
#define EBI_BANK2 (uint32_t)(1 << 3) |
EBI address bank 2.
Definition at line
76
of file
em_ebi.h
.
Referenced by EBI_BankAddress() , EBI_BankEnable() , EBI_Init() , and TFT_DirectInit() .
#define EBI_BANK3 (uint32_t)(1 << 4) |
EBI address bank 3.
Definition at line
77
of file
em_ebi.h
.
Referenced by EBI_BankAddress() , EBI_BankEnable() , and EBI_Init() .
#define EBI_CS0 (uint32_t)(1 << 1) |
EBI chip select line 0.
Definition at line
79
of file
em_ebi.h
.
Referenced by EBI_ChipSelectEnable() .
#define EBI_CS1 (uint32_t)(1 << 2) |
EBI chip select line 1.
Definition at line
80
of file
em_ebi.h
.
Referenced by EBI_ChipSelectEnable() .
#define EBI_CS2 (uint32_t)(1 << 3) |
EBI chip select line 2.
Definition at line
81
of file
em_ebi.h
.
Referenced by EBI_ChipSelectEnable() .
#define EBI_CS3 (uint32_t)(1 << 4) |
EBI chip select line 3.
Definition at line
82
of file
em_ebi.h
.
Referenced by EBI_ChipSelectEnable() .
#define EBI_INIT_DEFAULT |
Default configuration for EBI initialization structures.
Definition at line
562
of file
em_ebi.h
.
Enumeration Type Documentation
enum EBI_Line_TypeDef |
enum EBI_Mode_TypeDef |
enum EBI_Polarity_TypeDef |
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
595
of file
em_ebi.c
.
Referenced by EBI_Init() .
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
361
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_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
335
of file
em_ebi.c
.
References BUS_RegBitWrite() , EBI_BANK0 , EBI_BANK1 , EBI_BANK2 , and EBI_BANK3 .
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
443
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
113
of file
em_ebi.c
.
References EBI_Init_TypeDef::addrHoldCycles , EBI_Init_TypeDef::addrSetupCycles , EBI_Init_TypeDef::alePolarity , EBI_Init_TypeDef::ardyDisableTimeout , EBI_Init_TypeDef::ardyEnable , EBI_Init_TypeDef::ardyPolarity , EBI_Init_TypeDef::banks , EBI_Init_TypeDef::csLines , EBI_Init_TypeDef::csPolarity , EBI_AddressTimingSet() , EBI_BANK0 , EBI_BANK1 , EBI_BANK2 , EBI_BANK3 , EBI_ChipSelectEnable() , EBI_PolaritySet() , EBI_ReadTimingSet() , EBI_WriteTimingSet() , ebiLineALE , ebiLineARDY , ebiLineCS , ebiLineRE , ebiLineWE , ebiModeD16A16ALE , ebiModeD8A24ALE , ebiModeD8A8 , EBI_Init_TypeDef::enable , EBI_Init_TypeDef::mode , EBI_Init_TypeDef::readHoldCycles , EBI_Init_TypeDef::readSetupCycles , EBI_Init_TypeDef::readStrobeCycles , EBI_Init_TypeDef::rePolarity , EBI_Init_TypeDef::wePolarity , EBI_Init_TypeDef::writeHoldCycles , EBI_Init_TypeDef::writeSetupCycles , and EBI_Init_TypeDef::writeStrobeCycles .
Referenced by
BSP_EbiInit()
,
BSP_initEbiFlash()
, and
BSP_initEbiSram()
.
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
469
of file
em_ebi.c
.
References BUS_RegBitWrite() , ebiLineALE , ebiLineARDY , ebiLineCS , ebiLineRE , and ebiLineWE .
Referenced by EBI_Init() .
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
529
of file
em_ebi.c
.
Referenced by EBI_Init() .
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
563
of file
em_ebi.c
.
Referenced by EBI_Init() .