|
ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
|
Directories | |
| inc | |
| src | |
Captures one live VGA frame from the OV5640 on the Camera Expansion Board through the RA8D2 Capture Engine Unit, converts it to RGB in firmware, and reports a plausibility verdict over the console. Host tooling dumps the buffers over SWD.
Connect the OV5640 Camera Expansion Board to the underside FFC port J35. The firmware drives the SW4-6 DVP-select override through U15 over RIIC1, so that switch does not have to be moved by hand.
Keep J41 open: the DVP camera shares P405/P406 with the DA7212 codec. PB02-PB04 are shared with the parallel graphics interface, so capture and the parallel panel are mutually exclusive.
The order is the fragile part, not the individual register writes:
The CEU buffer is packed Cb-Y0-Cr-Y1 after the configured input ordering and byte swaps. The OV5640 has native mirror and vertical-flip controls but no documented 90/270 transpose, so those two rotations are firmware-side pixel moves after the RGB conversion. The host script adds PPM headers and nothing else – it never rotates – so a wrong orientation is a firmware bug by construction.
PASS requires both the CEU capture and all four RGB buffers. g_cam_chipid, g_cam_frame_ok, g_cam_min, g_cam_max, g_cam_mean, g_cam_verdict and the four g_cam_rgb_* buffers are the symbols SWD tooling reads.
The working mode follows Renesas's CEU VGA data-synchronous capture model against a live scene; the OV5640 test pattern is deliberately disabled, so a frame that looks plausible is a frame the optics actually produced.
Drivers exercised: ra8_ceu, ra8_gpt, ra8_i2c, ra8_pfs, ra8_gpio, ra8_cache, ra8_sdramc and ra8_board_uart_console.