Zephyr API Documentation 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
pulse_io_caps Struct Reference

Per-instance capability descriptor. More...

#include <zephyr/drivers/pulse_io.h>

Data Fields

size_t tx_min_chunk_symbols
 Minimum chunk size for streaming (hardware FIFO depth).
size_t tx_max_streaming
 Maximum size of a single streaming transmit; SIZE_MAX if unbounded.
uint32_t modes
 Bitmask of supported pulse_io_mode.
uint32_t min_tick_ns
 Finest tick the hardware can produce, in nanoseconds.
uint32_t max_tick_ns
 Coarsest tick with maximum prescaler, in nanoseconds.
uint32_t max_duration_ticks
 Maximum duration per symbol in ticks.
uint32_t tx_loop_max
 Maximum loop count for TX.
uint32_t rx_idle_threshold_max
 Maximum end-of-frame idle threshold, in ticks.
uint32_t rx_filter_max_ticks
 Maximum glitch-filter width, in ticks; 0 if no filter.
uint32_t tx_channel_mask
 Bitmask of channels usable for TX (bit N = channel N).
uint32_t rx_channel_mask
 Bitmask of channels usable for RX (bit N = channel N).
uint8_t cell_duty_bits
 Width of the duty field in CELL mode; 0 for level-only cells.
uint8_t num_channels
 Total number of independent channels on this instance.
bool supports_tx
 Transmit is supported.
bool supports_rx
 Receive is supported.
bool tx_carrier
 Hardware carrier modulation on TX.
bool tx_loop_auto_stop
 Hardware stops automatically at end of loop.
bool tx_sync_multi_channel
 Multiple channels can start on the same clock edge.
bool rx_carrier_demod
 Hardware carrier demodulation on RX.
bool rx_dma_buffered
 RX uses a DMA-backed ring buffer (vs.
bool rx_streaming
 RX supports ping-pong streaming beyond one buffer.
bool cell_period_per_chunk
 Period can change between submissions in CELL mode.

Detailed Description

Per-instance capability descriptor.

Returned by pulse_io_get_capabilities. All fields describe the hardware instance, not a specific channel; per-channel restrictions (if any) are documented by the backend.

Field Documentation

◆ cell_duty_bits

uint8_t pulse_io_caps::cell_duty_bits

Width of the duty field in CELL mode; 0 for level-only cells.

◆ cell_period_per_chunk

bool pulse_io_caps::cell_period_per_chunk

Period can change between submissions in CELL mode.

◆ max_duration_ticks

uint32_t pulse_io_caps::max_duration_ticks

Maximum duration per symbol in ticks.

◆ max_tick_ns

uint32_t pulse_io_caps::max_tick_ns

Coarsest tick with maximum prescaler, in nanoseconds.

◆ min_tick_ns

uint32_t pulse_io_caps::min_tick_ns

Finest tick the hardware can produce, in nanoseconds.

◆ modes

uint32_t pulse_io_caps::modes

Bitmask of supported pulse_io_mode.

◆ num_channels

uint8_t pulse_io_caps::num_channels

Total number of independent channels on this instance.

◆ rx_carrier_demod

bool pulse_io_caps::rx_carrier_demod

Hardware carrier demodulation on RX.

◆ rx_channel_mask

uint32_t pulse_io_caps::rx_channel_mask

Bitmask of channels usable for RX (bit N = channel N).

◆ rx_dma_buffered

bool pulse_io_caps::rx_dma_buffered

RX uses a DMA-backed ring buffer (vs.

interrupt-drained).

◆ rx_filter_max_ticks

uint32_t pulse_io_caps::rx_filter_max_ticks

Maximum glitch-filter width, in ticks; 0 if no filter.

◆ rx_idle_threshold_max

uint32_t pulse_io_caps::rx_idle_threshold_max

Maximum end-of-frame idle threshold, in ticks.

◆ rx_streaming

bool pulse_io_caps::rx_streaming

RX supports ping-pong streaming beyond one buffer.

◆ supports_rx

bool pulse_io_caps::supports_rx

Receive is supported.

◆ supports_tx

bool pulse_io_caps::supports_tx

Transmit is supported.

◆ tx_carrier

bool pulse_io_caps::tx_carrier

Hardware carrier modulation on TX.

◆ tx_channel_mask

uint32_t pulse_io_caps::tx_channel_mask

Bitmask of channels usable for TX (bit N = channel N).

Hardware with dedicated TX and RX channels reports disjoint masks; fully symmetric hardware sets both masks to all channels.

◆ tx_loop_auto_stop

bool pulse_io_caps::tx_loop_auto_stop

Hardware stops automatically at end of loop.

◆ tx_loop_max

uint32_t pulse_io_caps::tx_loop_max

Maximum loop count for TX.

0 - no loop support 1 - infinite loop only N (>1) - finite loops up to N, plus infinite

◆ tx_max_streaming

size_t pulse_io_caps::tx_max_streaming

Maximum size of a single streaming transmit; SIZE_MAX if unbounded.

◆ tx_min_chunk_symbols

size_t pulse_io_caps::tx_min_chunk_symbols

Minimum chunk size for streaming (hardware FIFO depth).

◆ tx_sync_multi_channel

bool pulse_io_caps::tx_sync_multi_channel

Multiple channels can start on the same clock edge.


The documentation for this struct was generated from the following file: