AnsweredAssumed Answered

Timer using external clock nr 2

Question asked by makeitworking on Jun 22, 2012
Latest reply on Jun 22, 2012 by Clive One
  I'm using a STM32F103RBT6.
Basicly I want to clock TIM1 (it should work on this frequency because of the Fmax from APB2) external with an 25.5 Mhz signal and use the Update_IRQ. Thats all.
I can start TIM1 and use the Update Interrupt with this code:

  TIM_TimeBase_InitStructure.TIM_ClockDivision = TIM_CKD_DIV1;
  TIM_TimeBase_InitStructure.TIM_CounterMode = TIM_CounterMode_Up;
  TIM_TimeBase_InitStructure.TIM_Period = 10000;
  TIM_TimeBase_InitStructure.TIM_Prescaler = 0;
  TIM_TimeBaseInit(TIM1, &TIM_TimeBase_InitStructure);

  //space to add code for clock switching

  TIM_ITConfig(TIM1, TIM_IT_Update, ENABLE);


and my ISR:

void TIM1_UP_IRQHandler(void)
  TIM_ClearITPendingBit(TIM1, TIM_IT_Update);

this is working well ... but now I like to change the TIM1 internal clock to an external clock like it done here :   Timer using external clock

I have init the GPIO PB14 with clock on and as floating input. I can read the GPIO and I see it changing like i change the input in hardware.
I tried to put this code (and a quite variants of it) insite my TIM1 init but this is not function...

  // External Trigger set to External Clock, Mode 1
  TIM_ETRClockMode1Config (TIM1, TIM_ExtTRGPSC_OFF, TIM_ExtTRGPolarity_NonInverted, 0);

  // Input Trigger selection 
  TIM_TIxExternalClockConfig (TIM1, TIM_TIxExternalCLK1Source_TI2, TIM_ICPolarity_Rising, 0) ;
  //TIM_SelectInputTrigger (TIM1, TIM_TS_TI2FP2);

  // Slave Mode selection: Trigger Mode 
  TIM_SelectSlaveMode(TIM1, TIM_SlaveMode_External1);

Or should I use external clock mode 2 better? It is very importent that the STM32 do not lose any edges even on high frequency. 
In the application I like to use the STM32F105xx MCU.