ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
c6_probe_stats_t Struct Reference

Running evidence gathered across every transaction. More...

#include <c6_probe.h>

Data Fields

uint32_t attempts
 Transactions clocked.
uint32_t idle_frames
 Idle filler frames decoded.
uint32_t data_frames
 Real frames with a good checksum.
uint32_t bad_csum_frames
 Sane shape, checksum mismatched.
uint32_t hs_vote [k_c6_sb_count]
 Pin dropped while CS was asserted.
uint32_t dr_vote [k_c6_sb_count]
 Pin dropped once the queue drained.
uint8_t ever_high [k_c6_sb_count]
 Pin was seen high at least once.
uint8_t ever_low [k_c6_sb_count]
 Pin was seen low at least once.
uint8_t pull_low [k_c6_sb_count]
 Reads that lost to an external sink.
uint8_t pull_samples
 Pull-up reads per pin; 0 = not run.

Detailed Description

Running evidence gathered across every transaction.

Two independent kinds of evidence live here and they are not equally strong. The vote counters are behavioural: they need the C6 to move a pin while the probe happens to be sampling. pull_low is electrical: a pin read as an input with the internal pull-up engaged can only read low if something off-chip is sinking the pull-up current, which no floating pin can fake. c6_probe_resolve_map weighs them in that order.

Invariant
hs_vote / dr_vote are only ever incremented.
pull_low[i] <= pull_samples for every i.
Example:
bool c6_probe_sweep_mode(ra8_spi_mode_t mode, uint32_t pclka_hz, c6_probe_stats_t *st, uint8_t *hs_idx)
Run the transaction burst for one SPI mode.
Definition c6_xfer.c:345
@ k_ra8_spi_mode_3
CPOL=1, CPHA=1.
Definition ra8_spi.h:65
Running evidence gathered across every transaction.
Definition c6_probe.h:280
See also
c6_probe_vote

Definition at line 280 of file c6_probe.h.

Field Documentation

◆ attempts

uint32_t c6_probe_stats_t::attempts

Transactions clocked.

Definition at line 281 of file c6_probe.h.

Referenced by c6_probe_print_verdict(), and internal_one_xfer().

◆ bad_csum_frames

uint32_t c6_probe_stats_t::bad_csum_frames

Sane shape, checksum mismatched.

Definition at line 284 of file c6_probe.h.

Referenced by c6_probe_print_verdict(), and internal_report_frame().

◆ data_frames

uint32_t c6_probe_stats_t::data_frames

Real frames with a good checksum.

Definition at line 283 of file c6_probe.h.

Referenced by c6_probe_print_verdict(), and internal_report_frame().

◆ dr_vote

uint32_t c6_probe_stats_t::dr_vote[k_c6_sb_count]

Pin dropped once the queue drained.

Definition at line 286 of file c6_probe.h.

Referenced by c6_probe_print_map(), c6_probe_resolve_map(), and c6_probe_vote().

◆ ever_high

uint8_t c6_probe_stats_t::ever_high[k_c6_sb_count]

Pin was seen high at least once.

Definition at line 287 of file c6_probe.h.

Referenced by c6_probe_print_map(), and c6_probe_vote().

◆ ever_low

uint8_t c6_probe_stats_t::ever_low[k_c6_sb_count]

Pin was seen low at least once.

Definition at line 288 of file c6_probe.h.

Referenced by c6_probe_print_map(), and c6_probe_vote().

◆ hs_vote

uint32_t c6_probe_stats_t::hs_vote[k_c6_sb_count]

Pin dropped while CS was asserted.

Definition at line 285 of file c6_probe.h.

Referenced by c6_probe_print_map(), c6_probe_resolve_map(), c6_probe_sweep_mode(), c6_probe_vote(), and internal_cs_try().

◆ idle_frames

uint32_t c6_probe_stats_t::idle_frames

Idle filler frames decoded.

Definition at line 282 of file c6_probe.h.

Referenced by c6_probe_print_verdict(), and internal_report_frame().

◆ pull_low

uint8_t c6_probe_stats_t::pull_low[k_c6_sb_count]

Reads that lost to an external sink.

Definition at line 289 of file c6_probe.h.

Referenced by c6_probe_print_map(), c6_probe_pull_contest(), and c6_probe_sunk_pin().

◆ pull_samples

uint8_t c6_probe_stats_t::pull_samples

Pull-up reads per pin; 0 = not run.

Definition at line 290 of file c6_probe.h.

Referenced by c6_probe_print_map(), c6_probe_pull_contest(), and c6_probe_sunk_pin().


The documentation for this struct was generated from the following file:
  • examples/ek_ra8d2/hw_validated/c6/c6_spi_probe/inc/c6_probe.h