|
| 1 | +// Target definition |
| 2 | +#define RG_TARGET_NAME "VMU" |
| 3 | + |
| 4 | +// Storage |
| 5 | +#define RG_STORAGE_ROOT "/sd" |
| 6 | +#define RG_STORAGE_SDSPI_HOST SPI2_HOST |
| 7 | +#define RG_STORAGE_SDSPI_SPEED SDMMC_FREQ_DEFAULT |
| 8 | +// #define RG_STORAGE_SDMMC_HOST SDMMC_HOST_SLOT_1 |
| 9 | +// #define RG_STORAGE_SDMMC_SPEED SDMMC_FREQ_DEFAULT |
| 10 | +// #define RG_STORAGE_FLASH_PARTITION "vfs" |
| 11 | + |
| 12 | +// Audio |
| 13 | +#define RG_AUDIO_USE_INT_DAC 3 // 0 = Disable, 1 = GPIO25, 2 = GPIO26, 3 = Both |
| 14 | +#define RG_AUDIO_USE_EXT_DAC 0 // 0 = Disable, 1 = Enable |
| 15 | + |
| 16 | +// Video |
| 17 | +#define RG_SCREEN_DRIVER 0 // 0 = ILI9341 |
| 18 | +#define RG_SCREEN_HOST SPI2_HOST |
| 19 | +#define RG_SCREEN_SPEED SPI_MASTER_FREQ_40M |
| 20 | +#define RG_SCREEN_BACKLIGHT 1 |
| 21 | +#define RG_SCREEN_WIDTH 240 |
| 22 | +#define RG_SCREEN_HEIGHT 300 |
| 23 | +#define RG_SCREEN_ROTATE 0 |
| 24 | +#define RG_SCREEN_VISIBLE_AREA {0, 55, 0, 30} // Left, Top, Right, Bottom |
| 25 | +#define RG_SCREEN_SAFE_AREA {0, 0, 0, 0} // Left, Top, Right, Bottom |
| 26 | + |
| 27 | +#define ST7789_MADCTL 0x36 // Memory Access Control |
| 28 | +#define ST7789_MADCTL_MY 0x80 |
| 29 | +#define ST7789_MADCTL_MX 0x40 |
| 30 | +#define ST7789_MADCTL_MV 0x20 |
| 31 | +#define ST7789_MADCTL_ML 0x10 |
| 32 | +#define ST7789_MADCTL_RGB 0x00 |
| 33 | +#define ST7789_MADCTL_BGR 0x08 |
| 34 | + |
| 35 | +#define RG_SCREEN_INIT() \ |
| 36 | + ILI9341_CMD(0xCF, 0x00, 0xc3, 0x30); \ |
| 37 | + ILI9341_CMD(0xED, 0x64, 0x03, 0x12, 0x81); \ |
| 38 | + ILI9341_CMD(0xE8, 0x85, 0x00, 0x78); \ |
| 39 | + ILI9341_CMD(0xCB, 0x39, 0x2c, 0x00, 0x34, 0x02); \ |
| 40 | + ILI9341_CMD(0xF7, 0x20); \ |
| 41 | + ILI9341_CMD(0xEA, 0x00, 0x00); \ |
| 42 | + ILI9341_CMD(0x36, 0x60); /* Display Rotation */ \ |
| 43 | + ILI9341_CMD(0xC0, 0x1B); /* Power control //VRH[5:0] */ \ |
| 44 | + ILI9341_CMD(0xC1, 0x12); /* Power control //SAP[2:0];BT[3:0] */ \ |
| 45 | + ILI9341_CMD(0xC5, 0x32, 0x3C); /* VCM control */ \ |
| 46 | + ILI9341_CMD(0xC7, 0x91); /* VCM control2 */ \ |
| 47 | + ILI9341_CMD(ST7789_MADCTL, (ST7789_MADCTL_MV | ST7789_MADCTL_MX | ST7789_MADCTL_BGR)); \ |
| 48 | + ILI9341_CMD(0xB1, 0x00, 0x10); /* Frame Rate Control (1B=70, 1F=61, 10=119) */ \ |
| 49 | + ILI9341_CMD(0xB6, 0x0A, 0xA2); /* Display Function Control */ \ |
| 50 | + ILI9341_CMD(0xF6, 0x01, 0x30); \ |
| 51 | + ILI9341_CMD(0xF2, 0x00); /* 3Gamma Function Disable */ \ |
| 52 | + ILI9341_CMD(0xE0, 0xD0, 0x00, 0x05, 0x0E, 0x15, 0x0D, 0x37, 0x43, 0x47, 0x09, 0x15, 0x12, 0x16, 0x19); \ |
| 53 | + ILI9341_CMD(0xE1, 0xD0, 0x00, 0x05, 0x0D, 0x0C, 0x06, 0x2D, 0x44, 0x40, 0x0E, 0x1C, 0x18, 0x16, 0x19); \ |
| 54 | + |
| 55 | + |
| 56 | +// Input |
| 57 | +// Refer to rg_input.h to see all available RG_KEY_* and RG_GAMEPAD_*_MAP types |
| 58 | +#define RG_GAMEPAD_ADC_MAP {\ |
| 59 | + {RG_KEY_UP, ADC_UNIT_1, ADC_CHANNEL_7, ADC_ATTEN_DB_11, 2048, 4096},\ |
| 60 | + {RG_KEY_DOWN, ADC_UNIT_1, ADC_CHANNEL_7, ADC_ATTEN_DB_11, 1024, 2047},\ |
| 61 | + {RG_KEY_LEFT, ADC_UNIT_1, ADC_CHANNEL_6, ADC_ATTEN_DB_11, 2048, 4096},\ |
| 62 | + {RG_KEY_RIGHT, ADC_UNIT_1, ADC_CHANNEL_6, ADC_ATTEN_DB_11, 1024, 2047},\ |
| 63 | +} |
| 64 | +#define RG_GAMEPAD_GPIO_MAP {\ |
| 65 | + {RG_KEY_MENU, GPIO_NUM_27, GPIO_PULLUP_ONLY, 0},\ |
| 66 | + {RG_KEY_START, GPIO_NUM_0, GPIO_FLOATING, 0},\ |
| 67 | + {RG_KEY_A, GPIO_NUM_32, GPIO_PULLUP_ONLY, 0},\ |
| 68 | + {RG_KEY_B, GPIO_NUM_33, GPIO_PULLUP_ONLY, 0},\ |
| 69 | +} |
| 70 | +#define RG_GAMEPAD_VIRT_MAP {\ |
| 71 | + {RG_KEY_SELECT, RG_KEY_A | RG_KEY_START},\ |
| 72 | + {RG_KEY_OPTION, RG_KEY_B | RG_KEY_START},\ |
| 73 | +} |
| 74 | + |
| 75 | + |
| 76 | + |
| 77 | +// Battery |
| 78 | +#define RG_BATTERY_DRIVER 1 |
| 79 | +#define RG_BATTERY_ADC_UNIT ADC_UNIT_1 |
| 80 | +#define RG_BATTERY_ADC_CHANNEL ADC_CHANNEL_0 |
| 81 | +#define RG_BATTERY_CALC_PERCENT(raw) (((raw) * 2.f - 3150.f) / (4150.f - 3150.f) * 100.f) |
| 82 | +#define RG_BATTERY_CALC_VOLTAGE(raw) ((raw) * 2.f * 0.001f) |
| 83 | + |
| 84 | +// Status LED |
| 85 | +// #define RG_GPIO_LED GPIO_NUM_2 |
| 86 | + |
| 87 | +// I2C BUS |
| 88 | +// #define RG_GPIO_I2C_SDA GPIO_NUM_15 |
| 89 | +// #define RG_GPIO_I2C_SCL GPIO_NUM_4 |
| 90 | + |
| 91 | +// SPI Display |
| 92 | +#define RG_GPIO_LCD_MISO GPIO_NUM_19 |
| 93 | +#define RG_GPIO_LCD_MOSI GPIO_NUM_23 |
| 94 | +#define RG_GPIO_LCD_CLK GPIO_NUM_18 |
| 95 | +#define RG_GPIO_LCD_CS GPIO_NUM_5 |
| 96 | +#define RG_GPIO_LCD_DC GPIO_NUM_21 |
| 97 | +#define RG_GPIO_LCD_BCKL GPIO_NUM_14 |
| 98 | +// #define RG_GPIO_LCD_RST GPIO_NUM_NC |
| 99 | + |
| 100 | +// SPI SD Card |
| 101 | +#define RG_GPIO_SDSPI_MISO GPIO_NUM_19 |
| 102 | +#define RG_GPIO_SDSPI_MOSI GPIO_NUM_23 |
| 103 | +#define RG_GPIO_SDSPI_CLK GPIO_NUM_18 |
| 104 | +#define RG_GPIO_SDSPI_CS GPIO_NUM_22 |
| 105 | + |
| 106 | +// External I2S DAC |
| 107 | +// #define RG_GPIO_SND_I2S_BCK GPIO_NUM_4 |
| 108 | +// #define RG_GPIO_SND_I2S_WS GPIO_NUM_12 |
| 109 | +// #define RG_GPIO_SND_I2S_DATA GPIO_NUM_15 |
| 110 | +// #define RG_GPIO_SND_AMP_ENABLE GPIO_NUM_NC |
| 111 | + |
| 112 | +// Updater |
| 113 | +#define RG_UPDATER_ENABLE 1 |
| 114 | +#define RG_UPDATER_APPLICATION RG_APP_FACTORY |
| 115 | +#define RG_UPDATER_DOWNLOAD_LOCATION RG_STORAGE_ROOT "/vmu/firmware" |
0 commit comments