Recibo información conflictiva sobre si puedo usar interrupciones activadas por nivel (en lugar de activadas por el borde) con el microcontrolador STM32F1xx.
En las Bibliotecas Periféricas Estándar compatibles con CMSIS de ST, las opciones de activación
se definen en enum EXTITrigger_TypeDef
, que solo incluye EXTI_Trigger_Rising
, EXTI_Trigger_Falling
y EXTI_Trigger_Rising_Falling
. (no se mencionan las interrupciones activadas por nivel)
De acuerdo con los foros de ayuda de ST aquí y También, el RM0008 de ST no hace mención al Manual de referencia de interrupciones activadas por nivel.
Por otro lado:
ST's PM0056 El Manual de programación, Sección 4.3, establece que:
The NVIC supports (...) Level and pulse detection of interrupt signals
El mismo documento, Sección 4.3.9, proporciona más detalles sobre las interrupciones activadas por nivel y por borde.
Y la documentación oficial de ARM, Sección 4.2.9 dice:
A Cortex-M3 device can support both level-sensitive and pulse interrupts.
Pulse interrupts are also described as edge-triggered interrupts.
(...) A level-sensitive interrupt is held asserted until the peripheral
deasserts the interrupt signal.
Sin embargo, no puedo encontrar ninguna manera de configurar esto realmente. No me importa pasar por alto las bibliotecas periféricas estándar, pero no veo ningún registro apropiado para usar ...
Soy mi caso específico, me estoy conectando con otro IC a través de SPI. Es un SOC complejo, e impulsa un pin de salida para indicar que necesita atención. Se comunica con su "controlador", que está alojado en el STM32. El SOC y el controlador desean una activación por flanco.
¿Cómo puedo configurar el STM32F1xx para usar interrupciones activadas por nivel?