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