2008-11-06 05:30 PM
i2C1 pin remapping
2011-05-17 03:51 AM
i was trying to remap the i2c1 pins but its not working .
any suggestions ????????? i have checked in hardware debugging through jtag that afio register does gets modified with i21_remap bit getting set but the communication does not takes place . However my i2c module starts working fine when i use normal pins without remapping .2011-05-17 03:51 AM
Here is the code that i am trying out .
void gpio_init () { GPIO_InitTypeDef gpio_initstruct ; // Remapping of I2C1 RCC_APB2PeriphClockCmd ( RCC_APB2Periph_AFIO , ENABLE ) ; msdelay ( 5 ) ; GPIO_PinRemapConfig(GPIO_Remap_I2C1, ENABLE) ; gpio_initstruct.GPIO_Pin = 0xFC79 ; gpio_initstruct.GPIO_Speed = GPIO_Speed_50MHz ; gpio_initstruct.GPIO_Mode = GPIO_Mode_Out_PP ; GPIO_Init ( GPIOB , &gpio_initstruct ) ; // I2C pins initialised to alternate function open drain mode gpio_initstruct.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 ; // gpio_initstruct.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 ; gpio_initstruct.GPIO_Speed = GPIO_Speed_10MHz; gpio_initstruct.GPIO_Mode = GPIO_Mode_AF_OD; GPIO_Init (GPIOB, &gpio_initstruct ) ; gpio_initstruct.GPIO_Pin = 0x0F5F ; gpio_initstruct.GPIO_Speed = GPIO_Speed_50MHz ; gpio_initstruct.GPIO_Mode = GPIO_Mode_Out_PP ; GPIO_Init ( GPIOD , &gpio_initstruct ) ; } In the above code if i comment remapping part and initialise pins 6 and 7 instead of pin 8 and 9 for i2c1 then my i2c works fine but on remapping it doesn't . I am using STM103FRB controller ( 64-pin package) .2011-05-17 03:51 AM
i wonder if anybody out here has succcessfully used pin remapping .
if yes , then plz do share the things that must be taken care of for this.