Synchronizing ADC samples with another periodic event (e.g. PWM out)
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 30/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Da chiarire
- Stato di attività
- Tranquilla
- Ambito
- embedded-iot
Direzione di ricerca
Start by reading the CircuitPython analogbufio and PWM APIs and checking whether they expose a way to synchronize ADC sampling with a periodic output. The issue does not name files or tests; done would mean establishing a supported approach for phase-locked sampling, or clarifying what capability would need to be added.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Is there any sanctioned way in Circuitpython to sample an ADC coincident another periodic action? For example, is there any way to output a PWM signal and start ADC sampling with analogbufio, with some assurance that the two will actually be phase-locked?
I'm teaching an instrumentation class, and my use case is a beam-block sensor where you pulse an LED and collect analog samples from a photodiode some distance away. The right way to do this is to collect two analog samples for each cycle of LED PWM: one during the "on" time and the other during the "off" time. Do this for a while, then subtract the "off" samples from the "on" samples and average.
Alternatively we can try a tight loop (software PWM) where we turn the LED on, sample, LED off, sample, etc. But it would be nicer to do it using proper PWM. I think there are similar use cases for things like synchronized ADC/DAC sampling and so on, basically any time you have two periodic processes that you want to link together.
Also, if it's not inappropriate to ask here, would this be relatively trivial in micropython using a PWM with associated timer interrupt? (I'm an embedded guy but don't have experience with either micro- or circuit-python, only C/C++)
- Lingua principale
- C
- Stelle
- 4.6k
- Fork
- 1.4k
- Merge medio
- 1g 7h
- PR unite (30g)
- 166
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di adafruit/circuitpython
-
board breaks api
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
adafruit/circuitpython#11099 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
storage usb zephyr
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
adafruit/circuitpython#11531 ·
I maintainer di solito rispondono entro 1 giorno
-
Move silabs to ZephyrApertasilabs
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
adafruit/circuitpython#11507 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Feature/API request: portable camera capture across ESP-IDF, Zephyr, and parallel interfacesForse già presa @tannewt l’ha presa 2 giorni fa. Apertacircuitpython api displayio enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
adafruit/circuitpython#11505 · 5 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 38/100
adafruit/circuitpython#11472 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di adafruit/circuitpython
Issue simili
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 76/100
SteamGridDB/SGDBoop#147 ·
-
Doc: insert executor and incremental consolidation leave sorted runs, not globally sorted headsAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 83/100
semantic-reasoning/wirelog#2133 ·
I maintainer di solito rispondono entro 1 giorno
-
backlog
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
EchoTools/nevr-runtime#454 ·
I maintainer di solito rispondono entro 1 giorno
-
initramfs: -type f (#18686) skips the libcurl.so.4 symlink, libcurl no longer copied into initramfsAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno