- edited description
LLD for I2C (STM32F4)
Issue #190
new
General Description
The goal of the task is to provide support for I2C driver in the LLD of STM32F4 target.
The related task on the trello board: https://trello.com/c/NDZWA4wF
Required LLD interface
// STANDARD LLD FUNCTIONS (AUTO-GENERATED - can be copied from the other architecture, for example from STM32F7) extern bool oC_I2C_LLD_IsChannelCorrect( oC_I2C_Channel_t Channel ); extern bool oC_I2C_LLD_IsChannelIndexCorrect( oC_I2C_LLD_ChannelIndex_t ChannelIndex ); extern oC_I2C_LLD_ChannelIndex_t oC_I2C_LLD_ChannelToChannelIndex( oC_I2C_Channel_t Channel ); extern oC_I2C_Channel_t oC_I2C_LLD_ChannelIndexToChannel( oC_I2C_LLD_ChannelIndex_t Channel ); extern oC_I2C_Channel_t oC_I2C_LLD_GetChannelOfModulePin( oC_I2C_Pin_t ModulePin ); oC_ErrorCode_t oC_I2C_LLD_TurnOnDriver( void ); oC_ErrorCode_t oC_I2C_LLD_TurnOffDriver( void ); // I2C specific functions (have to be implemented manual) extern oC_ErrorCode_t oC_I2C_LLD_ConfigureAsMaster( oC_I2C_Channel_t Channel , oC_I2C_LLD_SpeedMode_t SpeedMode , oC_I2C_LLD_AddressMode_t AddressMode , oC_Time_t DataHoldTime , oC_Time_t DataSetupTime , oC_Time_t ClockLowTime , oC_Time_t ClockHighTime , oC_Frequency_t ClockFrequency , oC_I2C_LLD_InterruptSource_t EnabledInterrupts ); extern oC_ErrorCode_t oC_I2C_LLD_ConfigureAsSlave( oC_I2C_Channel_t Channel , oC_I2C_LLD_SpeedMode_t SpeedMode , oC_I2C_LLD_AddressMode_t AddressMode , oC_I2C_LLD_Address_t OwnAddress , bool GeneralCallEnabled , bool ClockStretchingEnabled, oC_I2C_LLD_InterruptSource_t EnabledInterrupts ); extern oC_ErrorCode_t oC_I2C_LLD_UnconfigureChannel( oC_I2C_Channel_t Channel ); extern oC_ErrorCode_t oC_I2C_LLD_StartAsMaster( oC_I2C_Channel_t Channel, bool StartForRead, oC_I2C_LLD_Address_t SlaveAddress, oC_MemorySize_t Size ); extern oC_ErrorCode_t oC_I2C_LLD_StopAsMaster ( oC_I2C_Channel_t Channel ); extern oC_ErrorCode_t oC_I2C_LLD_WriteAsMaster( oC_I2C_Channel_t Channel, const uint8_t * Data, oC_MemorySize_t * Size ); extern oC_ErrorCode_t oC_I2C_LLD_ReadAsMaster ( oC_I2C_Channel_t Channel, uint8_t * outData, oC_MemorySize_t * Size ); extern oC_ErrorCode_t oC_I2C_LLD_WriteAsSlave ( oC_I2C_Channel_t Channel, const uint8_t * Data, oC_MemorySize_t * Size ); extern oC_ErrorCode_t oC_I2C_LLD_ReadAsSlave ( oC_I2C_Channel_t Channel, uint8_t * outData, oC_MemorySize_t * Size ); extern oC_ErrorCode_t oC_I2C_LLD_SetInterruptHandler( oC_I2C_LLD_InterruptHandler_t Handler ); extern oC_ErrorCode_t oC_I2C_LLD_ConnectModulePin( oC_I2C_Pin_t ModulePin ); extern oC_ErrorCode_t oC_I2C_LLD_DisconnectModulePin( oC_I2C_Pin_t ModulePin );
Comments (6)
-
reporter -
reporter - edited description
-
reporter - edited description
-
reporter - changed component to I2C-LLD
-
reporter - changed milestone to STM32F429ZIT6U
-
reporter - removed component
Removing component: I2C-LLD (automated comment)
- Log in to comment