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. | |
| Functions | |
| void | EBI_Init (const EBI_Init_TypeDef *ebiInit) | 
| Configure and enable the External Bus Interface. | |
| void | EBI_Disable (void) | 
| Disable External Bus Interface. | |
| 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_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_PolaritySet ( EBI_Line_TypeDef line, EBI_Polarity_TypeDef polarity) | 
| Configure EBI pin polarity. | |
| 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_INIT_DEFAULT | 
| Default configuration for EBI initialization structures. | |
| Enumerations | |
| enum | EBI_Mode_TypeDef
         
         { ebiModeD8A8 = EBI_CTRL_MODE_D8A8, ebiModeD16A16ALE = EBI_CTRL_MODE_D16A16ALE, ebiModeD8A24ALE = EBI_CTRL_MODE_D8A24ALE } | 
| EBI Mode of operation. | |
| enum | EBI_Polarity_TypeDef
         
         { ebiActiveLow = 0, ebiActiveHigh = 1 } | 
| EBI Polarity configuration. | |
| enum | EBI_Line_TypeDef
         
         { ebiLineARDY , ebiLineALE , ebiLineWE , ebiLineRE , ebiLineCS } | 
| EBI Pin Line types. | |
Function Documentation
◆ EBI_Init()
| void EBI_Init | ( | const EBI_Init_TypeDef * | 
            ebiInit
            | ) | 
Configure and enable the External Bus Interface.
- Parameters
- 
         [in] ebiInitThe 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_BankAddress()
| uint32_t EBI_BankAddress | ( | uint32_t | 
            bank
            | ) | 
Return the base address of the EBI bank.
- Parameters
- 
         [in] bankA bank to return the start address for. 
- Returns
- an absolute address of the bank.
◆ EBI_BankEnable()
| void EBI_BankEnable | ( | uint32_t | 
            banks,
            | 
| bool | 
            enable
            | ||
| ) | 
Enable or disable EBI Bank.
- Parameters
- 
         [in] banksBanks to reconfigure, mask of EBI_BANK<n> flags. [in] enableTrue to enable, false to disable. 
◆ EBI_ChipSelectEnable()
| void EBI_ChipSelectEnable | ( | uint32_t | 
            cs,
            | 
| bool | 
            enable
            | ||
| ) | 
Enable or disable EBI Chip Select.
- Parameters
- 
         [in] csChipSelect lines to reconfigure, mask of EBI_CS<n> flags. [in] enableTrue to enable, false to disable. 
◆ EBI_ReadTimingSet()
| void EBI_ReadTimingSet | ( | uint32_t | 
            setupCycles,
            | 
| uint32_t | 
            strobeCycles,
            | ||
| uint32_t | 
            holdCycles
            | ||
| ) | 
Configure timing values of read bus accesses.
- Parameters
- 
         [in] setupCyclesA number of clock cycles for the address setup before REn is asserted. [in] strobeCyclesThe 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] holdCyclesThe 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] setupCyclesA number of clock cycles for the address setup before WEn is asserted. [in] strobeCyclesA number of cycles WEn is held active. If set to 0, 1 cycle is inserted by hardware. [in] holdCyclesA 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] setupCyclesSets the number of cycles the address is held after ALE is asserted. [in] holdCyclesSets 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_PolaritySet()
| void EBI_PolaritySet | ( | EBI_Line_TypeDef | 
            line,
            | 
| EBI_Polarity_TypeDef | 
            polarity
            | ||
| ) | 
Configure EBI pin polarity.
- Parameters
- 
         [in] lineWhich pin/line to configure. [in] polarityActive high or active low. 
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_INIT_DEFAULT
| #define EBI_INIT_DEFAULT | 
Default configuration for EBI initialization structures.
Enumeration Type Documentation
◆ EBI_Mode_TypeDef
| enum EBI_Mode_TypeDef | 
◆ EBI_Polarity_TypeDef
| enum EBI_Polarity_TypeDef | 
◆ EBI_Line_TypeDef
| enum EBI_Line_TypeDef |