cancel
Showing results for 
Search instead for 
Did you mean: 

Can the STM32F103 perform a delay of 62 ns or 125 ns?

No_Name
Associate III

Hi.
I'm not very familiar with STM32 yet.

Can STM32F103 delay up to 62ns or 125ns to raise GPIO and lower it again during that time interval?


Thank you :)

13 REPLIES 13
gbm
Principal

No problem. Use TIMx hardware timer in PWM or one-pulse mode.

My STM32 stuff on github - compact USB device stack and more: https://github.com/gbm-ii/gbmUSBdevice
No_Name
Associate III

So, can the STM32F1 MCU do that without having to use the STM32G4 MCU, which has a higher clock speed?

gbm
Principal

The general-purpose timer of any STM32 can do it easily.

Software delays are impractical and non-reliable and as such should be avoided even if they are theoretically possible.

My STM32 stuff on github - compact USB device stack and more: https://github.com/gbm-ii/gbmUSBdevice
Ozone
Principal II

This times correspond to 16MHz and 8MHz, which a F103 is surely capable to achieve with a timer.

However, you didn't tell us anything about the use case.
What is it used for, what accuracy is required, and what is the maximal allowed jitter ?

By the way, quartz oscillators are available with this frequency (16MHz), you could derive it directly from hardware.

So, using an additional 16 MHz oscillator will make it more precise?

 

That depends.

Gyessine
ST Employee

Hello, @No_Name 
First, can you please specify the version of the product that you are using?
Based on the F103x8 and F103xB datasheet, the maximum frequency for GPIOs is set to 18 MHz. However, please note that some GPIOs have different maximum frequencies.

Gyessine

Gyessine_0-1759926253280.png

Gyessine_1-1759926387884.png

 

 

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

I am using an STM32F103C8T6 purchased from lcsc.com.

TDK
Super User

You can use a timer to do this, but you can't do this by directly controlling the GPIO. A timer can be set to give a pulse of any integer number of clock ticks.

If you feel a post has answered your question, please click "Accept as Solution".