cancel
Showing results for 
Search instead for 
Did you mean: 

Where can I find the relation between the OSPEEDR register different value (Low, Medium, High and Very High) and the frequency of the signals I want to use?

BNord.1
Associate III

Hello ST Microelectronics community,

I'm using a STM32H743ZI and I'm currently working on configurating properly the different I/O I want to use.

To do so I need to set the set the pull up/down, open drain,etc. And also the speed mode.

I could not find any documentation about it in the reference manual (which only gives the register and the values Low, Medium,... not very clear) and the datasheet (which gives what have been set for each function to fill the tables... which is not necessarily helpful).

I read in different website that "if the speed register is 00, then the maximum achievable switching frequency of that GPIO pin will be 8MHz. For medium speed, then the maximum frequency is up to 50MHz. For maximum high-speed frequency up to 100MHz. For very high-speed maximum switching frequency up to 180Mhz." (Source : http://fastbitlab.com/gpio-output-speed-register-applicability/ ) but they did not give their sources...

Could you please help me, or at least tell me in which document I could find the proper information I'm looking for?

Thanks a lot for your help.

4 REPLIES 4

0693W00000UoRASQA3.png 

JW

BNord.1
Associate III

Wow... I could have spent a long time before figuring it out...

Thanks a lot 🙂

Complicated on the H7 by the IO compensation cell. This generally needs to be enabed.

In other galaxies this is also referred to a slew rate control, and it has more to do with the load the signal has to drive and how aggressive the drive transistor(s) need to be.

There are cases where short traces need to be driven less aggressively than the "MHz" number would suggest. To stop the lines ringing you need to back off on the energy dumped into the trace, and perhaps use series resistance so its not all reflected back.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Sarra.S
ST Employee

Hello @BNord.1​,

As mentionned, The rise time (tr), fall time (tf) and maximum frequency are configurable using the GPIOx_OSPEEDR configuration register as following :

00 => Low : Fmax = 16 MHz

01 => Medium : Fmax = 110 MHz

10 => High : Fmax = 166 Mhz

11 => Very High : Fmax = 220 MHz

However, Such adjustment has an impact on the EMI (electromagnetic interferences), so a compromise has to be done between GPIO performance versus noise, it is best to adapt the GPIO signal to the minimal value compatible with the associated signal frequency.

You can always refer to the GPIO Application Note for further information :  STM32 microcontroller GPIO hardware settings and low-power consumption - Application note

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.