Skip to main content
Visitor II
March 7, 2022
Question

Board with the most capacity for GPIO_EXTI (external interrupts)

  • March 7, 2022
  • 8 replies
  • 2413 views

Hello

I am planning to start a Hardware MIDI Control Surface design that incorporates a large quantity of rotary encoders, so I am searching for a prototype / evaluation board that has the most potential for GPIO_EXTI (external / attached interrupts).

 

Cost of the board isn't a major factor (within reason), although the board doesn't need every mod con under the sun. USB / Ethernet desirable. On the brainier side of the MCU spectrum.

 

Would be grateful for help

thanks

    This topic has been closed for replies.

    8 replies

    Super User
    March 7, 2022

    There's going to be a limit of 16, which you can achieve on most boards. Nucleo boards will be the cheapest, availability is also a consideration as many are perpetually sold out.

    NUCLEO-F429ZI is in stock and relatively cheap.

    Rotary encoders can also be serviced by timers.

    jusroc777Author
    Visitor II
    March 7, 2022

    Hi TDK

    Thanks for your answer.

    I think there is something in the spec that I must have misread.

    I was sure that some where some one said their boards were capable of much more interrupts

    something crazy like 168 external or attached interrupt. I must be wrong.

    I was also told recently the teensy prototyping boards have up to 64 digital pins available that all could be configured to be used as interrupts.

    From a hardware midi control surface designers perspective, I would prefer to lean towards using a MCU that has higher spec than trying to engineer around the problems that using a lesser board would make.

    I have one of those Nucleo 767zi's,, which i brought a few years ago but never got around to using it.

    Super User
    March 7, 2022

    (almost?) All GPIO pins can be configured as EXTI, but not at the same time. Limit of 16.

    You could go a long way with a software based polling method if the board is dedicated to reading encoders.

    Graduate II
    March 8, 2022

    Or use a CPLD/FPGA, or CPU with an FPGA fabric, with banks of encoder

    jusroc777Author
    Visitor II
    March 8, 2022

    Thanks for the info

    I will have to read up on CPLD/FPGA etc.

    As to be honest with you, I am at hobbyist level in terms of embedded / electronic engineering.

    Have A Degree in Sound engineering, so know what I want as the outcome, just trying to figure out how to get to the outcome

    thanks again

    jusroc777Author
    Visitor II
    March 8, 2022

    Sure, thanks for the info.

    I was a bit confused, as recently was told that using polling in conjunction with multiplexers was too slow for using with lots of encoders, and that GPIO configured as attached or external interrupts was a speedier method.

    The problem was however I started by using basic Arduino boards, such as the UNO.

    and the Uno's have just two pins that can be used as external interrupts.

    The guy who was teaching his course on how to create midi controllers recommended using teensy

    which mostly have STM32 MCU's onboard. The Teensy people claim that it is possible to use all digital pins for external interrupts. they don't say how many can be used at the same time.

    btw,

    I think the following spec on a page associated with a project called Zephyr is where I got the idea that loads of the pins could be used for interrupts, although, i may have also misinterpreted this thinking that as it is x amount capable, then that equals x amount simultaneously, rather than simply 16 out of x.

    https://docs.zephyrproject.org/2.6.0/boards/arm/nucleo_f767zi/doc/index.html

    If it is true that I can only use 16 pins for interrupts per STM32 MCU,

    I guess I will have to look into alternative methods if there are problems with the simple polling method

    16 interrupts would give me 8 rotary encoders without inc buttons

    I have been told multiplexers are too slow for real time use

    so. I was wondering what the other options are?

    If polling is too slow, perhaps connecting more than one MCU together

    in order to achieve the desired amount of interrupts?

    Like I say, the amount of real time rotary encoders needed is on the extreme side,

    as hardware digital mixing consoles do generally have more knobs than almost anything

    else there is in the universe. :)

    Visitor II
    March 8, 2022

    Well, if it is only interrupt from falling or rising edge, explore timer channels as well, you will get morr than just 16 pins. It is sometime called timer input capture.

    Graduate II
    March 8, 2022

    Normal human controlled encoders dont require interrupt from pins.

    Simple code is setup one timer interrupt every Xms and handle GPIO inputs from many encoders...

    With little calculations on 100MHz MCU you can handle encoders on all available pins...

    jusroc777Author
    Visitor II
    March 8, 2022

    Thanks to eveyone for their help

    i will have to do some study

    thank again