Skip to main content
HPraj.2
Associate
June 30, 2022
Question

Is there any board which can support more than 30 MHZ Toggle frequency on GPIO and Parallel processing.?

  • June 30, 2022
  • 11 replies
  • 2331 views

Currently we are using Nucleo F746ZG controller with 216 MHZ frequency.

We are able to get high toggle frequency on GPIO with this board.

Now we want to shift to Micro Processor for parallel processing.

So is there any Better Controller/Processor available which can support parallel processing with High Toggle GPIO frequency?

This topic has been closed for replies.

11 replies

Michal Dudka
Lead
June 30, 2022

Any STM32 with clock frequency higher then 60MHz will be able to toggle GPIO with 30MHz+ frequency. The most common way is to use Timer and its output. But you can also use MCO and many other unconventional ways like SPI continuous clock etc.

HPraj.2
HPraj.2Author
Associate
June 30, 2022

We are able to get High GPIO frequency on nucleo F746ZG but its not support parallel processing. So We are looking for board which can support Parallel processing as well high GPIO Frequency

Andreas Bolsch
Lead III
June 30, 2022

With a dedicated peripheral (SPI, QSPI, Timer) it's no problem to exceed 30 Mhz toggle rate on most (all?) STM32, given suitable clock setting.

However, if you mean direct software GPIO control ... well the fastest I came across was the G0 with slightly less than 30 MHz. The M0+ has a special IO-bus for the GPIOs. On F7, H7 you will hardly get 20 MHz.

Michal Dudka
Lead
June 30, 2022

"GPIO software toggle rate" is a question discussed there a hundred times... why would anyone want to toggle GPIO by software that fast (and much load CPU) if can use HW way ?

HPraj.2
HPraj.2Author
Associate
June 30, 2022

Its not only GPIO toggle, its GPIO toggle with parallel processing.

We have requriement to toggle GPIo with High frequency and parallel processing

Michal Dudka
Lead
June 30, 2022

What do you mean by "parallel processing". I can toggle with output(s) by timer, MCO or plenty of other peripherals and parallel with that CPU can do anything else (output toggling does not load the processor at all).

Andrew Neil
Super User
June 30, 2022

What, exactly, do you mean by "parallel processing" here?

If you mean reading/setting multiple pins in a port simultaneously, perhaps look at using DMA?

Various people on the interwebs have created stuff like logic analysers using STM32 in that way ...

A complex system that works is invariably found to have evolved from a simple system that worked.A complex system designed from scratch never works and cannot be patched up to make it work.
HPraj.2
HPraj.2Author
Associate
June 30, 2022

We are building an inkjet printer where we need one thread which will bring image data from RPi, second thread running the print head through GPIOs and a 3 rd thread to manage motor control.

With the Nucleo MCU we cannot run all 3 threads simultaneously and so we get ****** image printing. Later we may need more threads to manage paper feed and some other unique requirements in this project.

Andrew Neil
Super User
June 30, 2022

@HPraj.2​  "We are building an inkjet printer"

That's clearly a problem that has been well & truly solved many times before - so have you looked at how this is "traditionally" done?

eg, are there standard chipsets?

"the Nucleo MCU we cannot run all 3 threads simultaneously"

So that's why you use things like timers and DMA to help you!

Maybe you need a dedicated head driver in hardware?

A complex system that works is invariably found to have evolved from a simple system that worked.A complex system designed from scratch never works and cannot be patched up to make it work.