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

Per-panel map from ra8_epaper_waveform_t onto LUT mode numbers. More...

#include <ra8_epaper.h>

Data Fields

uint8_t init
 LUT mode number for INIT (flush to white).
uint8_t du
 LUT mode number for DU (direct update).
uint8_t gc16
 LUT mode number for GC16 (16-grey quality).
uint8_t a2
 LUT mode number for A2 (bi-level, fastest).

Detailed Description

Per-panel map from ra8_epaper_waveform_t onto LUT mode numbers.

The IT8951 selects a refresh waveform by an integer index into the waveform LUT its firmware loaded. Those indices are not fixed across panels: Waveshare's own demo declares A2_Mode = 6 and then overrides it to 4 when GET_DEV_INFO reports LUT version M641 (the 6 inch and 6 inch HD panels). Baking one number into the driver is therefore correct for exactly one panel family and silently wrong – wrong waveform, wrong optical result, needless panel stress – for every other.

Populate this from the LUT version string the controller reports at init (ra8_epaper_waveform_cfg_for_lut), or state it directly in the BSP descriptor when the board design fixes the panel.

Invariant
Every member is <= k_ra8_epaper_wf_mode_max.
du, gc16 and a2 are non-zero (mode 0 is INIT), so a zero-initialised struct is rejected by ra8_epaper_init rather than silently refreshing everything as INIT.
Example:
(void)ra8_epaper_waveform_cfg_for_lut("M641", &wf); // -> wf.a2 == 4
cfg.waveform = wf;
ra8_err_t ra8_epaper_waveform_cfg_for_lut(const char *lut_version, ra8_epaper_waveform_cfg_t *out_cfg)
Fill a waveform map from a controller-reported LUT version.
Per-panel map from ra8_epaper_waveform_t onto LUT mode numbers.
Definition ra8_epaper.h:148
See also
ra8_epaper_waveform_t
ra8_epaper_waveform_cfg_for_lut
Since
0.1.0

Definition at line 148 of file ra8_epaper.h.

Field Documentation

◆ a2

uint8_t ra8_epaper_waveform_cfg_t::a2

LUT mode number for A2 (bi-level, fastest).

Definition at line 152 of file ra8_epaper.h.

Referenced by internal_ra8_epaper_resolve_waveform(), internal_ra8_epaper_validate_waveform(), and ra8_epaper_waveform_cfg_for_lut().

◆ du

uint8_t ra8_epaper_waveform_cfg_t::du

LUT mode number for DU (direct update).

Definition at line 150 of file ra8_epaper.h.

Referenced by internal_ra8_epaper_resolve_waveform(), internal_ra8_epaper_validate_waveform(), and ra8_epaper_waveform_cfg_for_lut().

◆ gc16

uint8_t ra8_epaper_waveform_cfg_t::gc16

LUT mode number for GC16 (16-grey quality).

Definition at line 151 of file ra8_epaper.h.

Referenced by internal_ra8_epaper_resolve_waveform(), internal_ra8_epaper_validate_waveform(), and ra8_epaper_waveform_cfg_for_lut().

◆ init

uint8_t ra8_epaper_waveform_cfg_t::init

LUT mode number for INIT (flush to white).

Definition at line 149 of file ra8_epaper.h.

Referenced by internal_ra8_epaper_resolve_waveform(), internal_ra8_epaper_validate_waveform(), and ra8_epaper_waveform_cfg_for_lut().


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