Public Access
startI2S() sets up I2S0 in 8-bit parallel (LCD) mode at 5 MHz (PLL_D2 160 MHz / 32, BCK div 1), routes stream bits 0..3 to VID/TVID/HS/VS via I2S0O_DATA_OUT16+n and BCK to VCLK, and loops DMA over an 18-descriptor chain of whole lines. stopI2S() stops TX, returns the pins to GPIO low and frees the chain. encodeRow() now stores clock c at c ^ 2 to match the 8-bit mode byte order (bytes 2, 3, 0, 1 per word, as in bitluni's ESP32Lib). Builds with no warnings; not yet checked on hardware. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
23 lines
709 B
C++
23 lines
709 B
C++
// Pin map for the EL512.256-H panel on an ESP-WROOM-32 (esp32dev).
|
|
//
|
|
// VCLK, VID, TVID, HS and VS are driven by I2S0 in 8-bit parallel (LCD) mode,
|
|
// so their levels come from a DMA byte stream. ENABLE and _LOWPWR are plain GPIO.
|
|
#pragma once
|
|
|
|
#include <stdint.h>
|
|
|
|
namespace el512pins {
|
|
|
|
// I2S-driven signals
|
|
constexpr int8_t VCLK = 18; // I2S0 BCK out -> panel VCLK
|
|
constexpr int8_t VID = 19; // byte bit 0
|
|
constexpr int8_t TVID = 21; // byte bit 1
|
|
constexpr int8_t HS = 22; // byte bit 2
|
|
constexpr int8_t VS = 23; // byte bit 3
|
|
|
|
// Static control lines
|
|
constexpr int8_t ENABLE = 25; // high = display enabled
|
|
constexpr int8_t LOWPWR_N = 26; // _LOWPWR, active low
|
|
|
|
} // namespace el512pins
|