AnsweredAssumed Answered

STM32F429 DCMI VSYNC problem

Question asked by karpavicius.linas on Apr 10, 2015
Latest reply on Apr 10, 2015 by karpavicius.linas
Hello, as usual working on a project with STM32F429i and VITA1300 sensor from ONSEMI.

Everything seems to be in order, but for no good reason VSYNC (GPIOG pin9) is loading my VSYNC output so much, that only 200mV is left, and i can't get VSYNC interrupt.

If i reconfigure GPIOG pin 9 as normal IN ( not AF ) , i get normal CMOS level of 3.3V. At this moment, i can't figureout why AF is making my pin9 as cmos output low, because i can't find any other explanation

void DCMI_HW_Init(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;
 
 
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA|RCC_AHB1Periph_GPIOB|RCC_AHB1Periph_GPIOC|RCC_AHB1Periph_GPIOG,ENABLE);
 
  GPIO_PinAFConfig(GPIOA, GPIO_PinSource9,  GPIO_AF_DCMI); //D2+
  GPIO_PinAFConfig(GPIOA, GPIO_PinSource10, GPIO_AF_DCMI); //D3+
   
  GPIO_PinAFConfig(GPIOG, GPIO_PinSource10, GPIO_AF_DCMI); //D4+
  GPIO_PinAFConfig(GPIOG, GPIO_PinSource11, GPIO_AF_DCMI); //D5+
   
  GPIO_PinAFConfig(GPIOC, GPIO_PinSource11, GPIO_AF_DCMI); //D6+
  GPIO_PinAFConfig(GPIOD, GPIO_PinSource3,  GPIO_AF_DCMI); //D7+
  GPIO_PinAFConfig(GPIOB, GPIO_PinSource8,  GPIO_AF_DCMI); //D8+
  GPIO_PinAFConfig(GPIOB, GPIO_PinSource9,  GPIO_AF_DCMI); //D9+
 
   
  GPIO_PinAFConfig(GPIOA, GPIO_PinSource4, GPIO_AF_DCMI);  //HSYNC+
  GPIO_PinAFConfig(GPIOG, GPIO_PinSource9, GPIO_AF_DCMI);  //VSYNC+
  GPIO_PinAFConfig(GPIOA, GPIO_PinSource6, GPIO_AF_DCMI);  //PCLKX+
   
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_6 | GPIO_Pin_9| GPIO_Pin_10;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
   
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  GPIO_Init(GPIOB, &GPIO_InitStructure);
 
 
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 ;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  GPIO_Init(GPIOC, &GPIO_InitStructure);
   
   
  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_9| GPIO_Pin_10 | GPIO_Pin_11;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  GPIO_Init(GPIOG, &GPIO_InitStructure);
   
  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_9 ;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  GPIO_Init(GPIOG, &GPIO_InitStructure);
}

Question is, can any one tell me problem, and if not, does VSYNC is nothing else than simple interrupt, and i can meke it as normal EXTI with high priority, what would be the difference ?

That interrupt only reconfigures start address where to copy image data

Outcomes