Files
HeavenlyHeroStar/main/bsp/board_config.h
T

79 lines
2.4 KiB
C

#pragma once
#include "driver/i2c_types.h"
#include "driver/ledc.h"
#include "driver/spi_master.h"
/* LCD SPI (ST7789) */
#define BOARD_LCD_HOST SPI2_HOST
#define BOARD_LCD_PIXEL_CLOCK_HZ (20 * 1000 * 1000)
#define BOARD_LCD_H_RES 170
#define BOARD_LCD_V_RES 320
/* LVGL logical resolution after 90° rotation (landscape) */
#define BOARD_LCD_LOGIC_H_RES 320
#define BOARD_LCD_LOGIC_V_RES 170
/* Touch IC → physical panel alignment (not LVGL logical rotation) */
#define BOARD_TOUCH_SWAP_XY 0
#define BOARD_TOUCH_MIRROR_X 0
#define BOARD_TOUCH_MIRROR_Y 0
#define BOARD_LCD_PANEL_H_RES 240
#define BOARD_LCD_GAP_X ((BOARD_LCD_PANEL_H_RES - BOARD_LCD_H_RES) / 2)
#define BOARD_LCD_GAP_Y 0
#define BOARD_LCD_CMD_BITS 8
#define BOARD_LCD_PARAM_BITS 8
#define BOARD_PIN_LCD_SCLK 10
#define BOARD_PIN_LCD_MOSI 13
#define BOARD_PIN_LCD_MISO (-1)
#define BOARD_PIN_LCD_DC 11
#define BOARD_PIN_LCD_RST 9
#define BOARD_PIN_LCD_CS 12
#define BOARD_PIN_BK_LIGHT 14
/* Backlight PWM */
#define BOARD_LCD_BK_LIGHT_CH LEDC_CHANNEL_0
#define BOARD_LCD_BK_LIGHT_TIMER LEDC_TIMER_0
#define BOARD_LCD_BK_LIGHT_FREQ 5000
#define BOARD_LCD_BK_LIGHT_ON_LEVEL 1
#define BOARD_LCD_BK_LIGHT_OFF_LEVEL (!BOARD_LCD_BK_LIGHT_ON_LEVEL)
/* Touch I2C (CST816) */
#define BOARD_PIN_TOUCH_SDA 47
#define BOARD_PIN_TOUCH_SCL 48
#define BOARD_PIN_TOUCH_RST 17
#define BOARD_PIN_TOUCH_INT 21
#define BOARD_TOUCH_I2C_NUM I2C_NUM_0
#define BOARD_TOUCH_I2C_FREQ_HZ 400000
#define BOARD_TOUCH_ENABLED 1
/* IMU (QMI8658) — shares I2C bus with touch on IO47/IO48 */
#define BOARD_IMU_I2C_NUM I2C_NUM_0
#define BOARD_PIN_IMU_SDA 47
#define BOARD_PIN_IMU_SCL 48
#define BOARD_PIN_IMU_INT1 8
#define BOARD_PIN_IMU_INT2 7
#define BOARD_IMU_I2C_FREQ_HZ 400000
#define BOARD_IMU_ENABLED 1
/* User IO */
#define BOARD_PIN_BOOT 0
#define BOARD_PIN_KEY 4
#define BOARD_PIN_LED 16
/* BLE (ESP32-S3 built-in radio) */
#define BOARD_BLE_ENABLED 1
/* WiFi */
#define BOARD_WIFI_ENABLED 0
/* LVGL port */
#define BOARD_LVGL_DRAW_BUF_LINES 20
#define BOARD_LVGL_TICK_PERIOD_MS 2
#define BOARD_LVGL_TASK_MAX_DELAY_MS 500
#define BOARD_LVGL_TASK_MIN_DELAY_MS (1000 / CONFIG_FREERTOS_HZ)
#define BOARD_LVGL_TASK_STACK_SIZE (8 * 1024)
#define BOARD_LVGL_TASK_PRIORITY 2