AnsweredAssumed Answered

STM32F429 Dead alternate function on pin?

Question asked by Madera.Ricardo on Nov 16, 2016
Latest reply on Nov 17, 2016 by waclawek.jan
Hello,

I am trying to configure pins D0-D15 on the STM32F429VIT6 to output sram data. The code seems to be functioning properly and I have scoped out each of the pins however Pin44(PE13)-D10 seems to never go high. Configuring the pin to gpio allows it to toggle on and off. Is it possible to damage  an alternate function on a pin? 

Below is the GPIO init code.

void SRAM_GPIOConfig()
{
      RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_GPIOE, ENABLE);
       GPIO_InitTypeDef GPIO_InitStructure;


       /* Common GPIO configuration */
       GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
       GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
       GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
       GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_NOPULL;

       /* GPIOD configuration */
       GPIO_PinAFConfig(GPIOD, GPIO_PinSource0, GPIO_AF_FMC);
       GPIO_PinAFConfig(GPIOD, GPIO_PinSource1, GPIO_AF_FMC);
       GPIO_PinAFConfig(GPIOD, GPIO_PinSource8, GPIO_AF_FMC);
       GPIO_PinAFConfig(GPIOD, GPIO_PinSource9, GPIO_AF_FMC);
       GPIO_PinAFConfig(GPIOD, GPIO_PinSource10, GPIO_AF_FMC);
       GPIO_PinAFConfig(GPIOD, GPIO_PinSource11, GPIO_AF_FMC);
       GPIO_PinAFConfig(GPIOD, GPIO_PinSource14, GPIO_AF_FMC);
       GPIO_PinAFConfig(GPIOD, GPIO_PinSource15, GPIO_AF_FMC);

       GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0  | GPIO_Pin_1   |  GPIO_Pin_8  |                                         GPIO_Pin_9  | GPIO_Pin_10 |
                                                     GPIO_Pin_11 | GPIO_Pin_14 |                                                       GPIO_Pin_15;


        GPIO_Init(GPIOD, &GPIO_InitStructure);


        /* GPIOE configuration */
        GPIO_PinAFConfig(GPIOE, GPIO_PinSource0 , GPIO_AF_FMC);
        GPIO_PinAFConfig(GPIOE, GPIO_PinSource1 , GPIO_AF_FMC);
        GPIO_PinAFConfig(GPIOE, GPIO_PinSource3 , GPIO_AF_FMC);
        GPIO_PinAFConfig(GPIOE, GPIO_PinSource4 , GPIO_AF_FMC);
        GPIO_PinAFConfig(GPIOE, GPIO_PinSource7 , GPIO_AF_FMC);
        GPIO_PinAFConfig(GPIOE, GPIO_PinSource8 , GPIO_AF_FMC);
        GPIO_PinAFConfig(GPIOE, GPIO_PinSource9 , GPIO_AF_FMC);
        GPIO_PinAFConfig(GPIOE, GPIO_PinSource10 , GPIO_AF_FMC);
        GPIO_PinAFConfig(GPIOE, GPIO_PinSource11 , GPIO_AF_FMC);
        GPIO_PinAFConfig(GPIOE, GPIO_PinSource12 , GPIO_AF_FMC);
        GPIO_PinAFConfig(GPIOE, GPIO_PinSource13 , GPIO_AF_FMC);
        GPIO_PinAFConfig(GPIOE, GPIO_PinSource14 , GPIO_AF_FMC);
        GPIO_PinAFConfig(GPIOE, GPIO_PinSource15 , GPIO_AF_FMC);


        GPIO_InitStructure.GPIO_Pin =
                                      GPIO_Pin_7  | GPIO_Pin_8  | GPIO_Pin_9  | GPIO_Pin_10 |
                                      GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 |
                                      GPIO_Pin_15;


        GPIO_Init(GPIOE, &GPIO_InitStructure);
}

Outcomes