Topic: STR912F daughter board for REva : Workaround to make I2C work
We have found a design conflict on the REva STR912F daughter board, that prevents IC2 from working properly.
Here is a workaround for people wanting to use I2C with the STR912F daughter board:
Hardware modification:
* Remove the jumper SCL/J2.60 on the REva mother board
* Solder a stem on the J2.58 pin of the REva mother board, and connect it to the SCL pin of the same SCL/J2.60 jumper support
Software modification:
* Use the following code snippet to configure GPIO ports according to this modification: (make sure you copy/paste the whole code snippet, there may be a scrollbar on the right)
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
// Port 0 configuration: I2C0 SDA
//-------------------------
GPIO_DeInit(GPIO0);
GPIO_InitStructure.GPIO_Direction = GPIO_PinOutput;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 ;
GPIO_InitStructure.GPIO_Type = GPIO_Type_OpenCollector;
GPIO_InitStructure.GPIO_IPConnected = GPIO_IPConnected_Enable;
GPIO_InitStructure.GPIO_Alternate = GPIO_OutputAlt2;
GPIO_Init(GPIO0, &GPIO_InitStructure);
// Port 2 configuration: I2C0 SCL
//-------------------------
GPIO_DeInit(GPIO2);
GPIO_InitStructure.GPIO_Direction = GPIO_PinOutput;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Type = GPIO_Type_OpenCollector;
GPIO_InitStructure.GPIO_IPConnected = GPIO_IPConnected_Enable;
GPIO_InitStructure.GPIO_Alternate = GPIO_OutputAlt2;
GPIO_Init(GPIO2, &GPIO_InitStructure);
}