[STM32] Modulo Capture, per campionare un fronte d'onda
Buonasera a tutti,
Ho un microcontrollore: STM32F103. Con questo vorrei campionare un fronte d'onda, del quale devo sapere quanto dura. In particolare un dispositivo connesso al pin del timer mi genera, dopo un impulso di reset, un "echo response" che deve durare 60 microsecondi, e deve essere di tipo low, perché il canale di comunicazione è in pull-up alla tensione di alimentazione.
La mia domanda è questa: il modulo "capture" associato al timer stesso, è in grado di campionare il solo fronte d'onda negativo in arrivo sul psuo pin associato?
Mi viene questo dubbio, perché, leggendo il datasheet, io posso selezionare la polarita del fronte d'onda entrante, ma non ho capito se il conteggio del modulo capture viene arrestato, quando rileva un secondo fronte d'onda della medesima polarità, oppure se si arresta, quando rileva una variazione del fronte d'onda, quindi anche di diversa polarità, rispetto a quello entrante.
In alternativa ho pensato di poter usare due moduli del timer (ogni timer ha quattro distinti moduli da poter usare), uno dei due moduli lo sincronizzo sul fronte d'onda negativa, ed avvia il conteggio quando rileva l'abbassamento dell'onda, e poi, quando l'onda si alza, tornando positiva, dovrebbe entrare in funzione il secondo modulo, che ho configurato per rilevare questo fronte positivo e, almeno nelle mie intenzioni, ma non ho capito se è cosi che funzioni, dovrebbe semplicemente arrestare il conteggio precedentemente avviato dal precedente modulo, che lo ha avviato sul fronte negativo.
Oppure il secondo modulo, semplicemente avvierebbe un secondo modulo diverso dal primo e quindi il primo continuerebbe a contare ignorando il fronte?
Non sono sicuro di essermi spiegato, ma spero che il mio problema sia chiaro, e spero che ci sia qualcuno qui che usa il modulo "capture" del timer, per cronometrare il solo fronte negativo dell'onda.
Grazie mille a tutti.
Ho un microcontrollore: STM32F103. Con questo vorrei campionare un fronte d'onda, del quale devo sapere quanto dura. In particolare un dispositivo connesso al pin del timer mi genera, dopo un impulso di reset, un "echo response" che deve durare 60 microsecondi, e deve essere di tipo low, perché il canale di comunicazione è in pull-up alla tensione di alimentazione.
La mia domanda è questa: il modulo "capture" associato al timer stesso, è in grado di campionare il solo fronte d'onda negativo in arrivo sul psuo pin associato?
Mi viene questo dubbio, perché, leggendo il datasheet, io posso selezionare la polarita del fronte d'onda entrante, ma non ho capito se il conteggio del modulo capture viene arrestato, quando rileva un secondo fronte d'onda della medesima polarità, oppure se si arresta, quando rileva una variazione del fronte d'onda, quindi anche di diversa polarità, rispetto a quello entrante.
In alternativa ho pensato di poter usare due moduli del timer (ogni timer ha quattro distinti moduli da poter usare), uno dei due moduli lo sincronizzo sul fronte d'onda negativa, ed avvia il conteggio quando rileva l'abbassamento dell'onda, e poi, quando l'onda si alza, tornando positiva, dovrebbe entrare in funzione il secondo modulo, che ho configurato per rilevare questo fronte positivo e, almeno nelle mie intenzioni, ma non ho capito se è cosi che funzioni, dovrebbe semplicemente arrestare il conteggio precedentemente avviato dal precedente modulo, che lo ha avviato sul fronte negativo.
Oppure il secondo modulo, semplicemente avvierebbe un secondo modulo diverso dal primo e quindi il primo continuerebbe a contare ignorando il fronte?
Non sono sicuro di essermi spiegato, ma spero che il mio problema sia chiaro, e spero che ci sia qualcuno qui che usa il modulo "capture" del timer, per cronometrare il solo fronte negativo dell'onda.
Grazie mille a tutti.