mirror of
https://github.com/apache/nuttx.git
synced 2026-09-29 18:45:22 +00:00
The SAADC internal sample timer only works with a single enabled channel, so hardware-timed multi-channel scan was not possible. Add NRF52_SAADC_TIMER_PPI, a third trigger mode in which a general-purpose TIMER compare event is routed to TASKS_SAMPLE over PPI. All enabled channels are scanned, and the TIMER prescaler allows much lower sample rates than the internal timer, which is limited to 16MHz/CC with CC in 80..2047. NRF52_SAADC_CONTINUOUS is no longer tied to the internal timer and works with either source. Its EasyDMA buffers now hold NRF52_SAADC_CONTINUOUS_BUFLEN whole scans rather than that many single samples, so MAXCNT becomes chan_len * BUFLEN. Samples are interleaved scan by scan, so a channel map is built once at configure() time and passed to the upper half with the batch; the upper half already accepts a per-sample channel array. A single-channel configuration produces the same MAXCNT and the same delivery as before. Because both features want a PPI channel, add a build-time check that NRF52_SAADC_PPI_CHANNEL and NRF52_SAADC_CONTINUOUS_PPI_CH differ, and constrain the latter under the SoftDevice controller like the former. NRF52_SAADC_CHANNELS gains a default and range for the new mode, and documents that the internal timer is restricted to one channel. Assisted-by: Claude Code Signed-off-by: raiden00pl <raiden00@railab.me> |
||
|---|---|---|
| .. | ||
| _extensions | ||
| _static | ||
| _templates | ||
| applications | ||
| components | ||
| contributing | ||
| debugging | ||
| faq | ||
| guides | ||
| implementation | ||
| introduction | ||
| logos | ||
| platforms | ||
| quickstart | ||
| reference | ||
| ReleaseNotes | ||
| standards | ||
| testing | ||
| .gitignore | ||
| conf.py | ||
| glossary.rst | ||
| index.rst | ||
| known-warnings.txt | ||
| legacy_README.md | ||
| make.bat | ||
| Makefile | ||
| Pipfile | ||
| Pipfile.lock | ||
| security.rst | ||
| substitutions.rst | ||