2013-09-19 08:37 AM
Hello everybody,
Is it possible to link same pin number of different GPIO ports on the same EXTI line ? For example, create an interrupt on line_0 for the GPIO pin A0 and the pin B0. It seems impossible to achieve with the ST librairies - but I don't understand why it's impossible regarding to the internal schematic of the STM32F4... I really want to use more than 16 GPIO with interrupts. Is there a software way to perform this interruption ?Thanks a lot !2013-09-19 09:33 AM
NO, it uses an N-to-1 mux, only one bank's pin reaches the signal conditioning.
[DEAD LINK /public/STe2ecommunities/mcu/Lists/STM32Discovery/Flat.aspx?RootFolder=/public/STe2ecommunities/mcu/Lists/STM32Discovery/Handling%20multiple%20interrupts%20on%20single%20EXTI%20line&FolderCTID=0x01200200770978C69A1141439FE559EB459D75800084C20D8867EAD444A5987D47BE638E0F¤tviews=193]Related Thread2013-09-19 09:37 AM
2013-09-19 09:56 AM
Thanks Clive, I just wanted to sure.
2013-09-19 10:11 AM
Generally you'd use an external priority decoder to decimate the number of pins required on the CPU.
Alternatively you could use TIMx_CHx pins in input capture mode, or poll slow GPIO sources. I'd recommend a print out of the Data Sheet with pin designations, and a high-lighter pen. Assign the TIM pins first, then the EXTI. Draw a pin vs bank matrix if that helps.2013-09-20 12:09 AM
For example. 74HC147
10-to-4 Line Priority Encoder
or 74HC1488-Line To 3-Line Priority Encoder
. Also CD4532 from the old CMOS 4000 series. Also note on the STM32F4 family (STM32F405/407xx and STM32F415/417xx) this erratum - Configuration of PH10 and PI10 as external interrupts is erroneous Description PH10 or PI10 is selected as the source for the EXTI10 external interrupt by setting bits EXTI10[3:0] of SYSCFG_EXTICR3 register to 0x0111 or 0x1000, respectively. However, this erroneous operation enables PH2 and PI2 as external interrupt inputs. As a result, it is not possible to use PH10/PI10 as interrupt sources if PH2/PI2 are not selected as the interrupt source, as well. This means that bits EXTI10[3:0] of SYSCFG_EXTICR3 register and bits EXTI2[3:0] of SYSCFG_EXTICR1 should be programmed to the same value: • 0x0111 to select PH10/PH2 • 0x1000 to select PI10/PI2 Workaround None.2014-03-30 08:01 PM
2014-03-31 12:25 AM
Then just use an external single OR gate such as the SN74LVC1G32DBVR (Texas version of 74LVC1G32 single OR gate). Alternatively, if you need a '0' OR (output low if either input low) the SN74LVC1G08DBVR AND gate will do.