Skip to content

Commit 05e6db9

Browse files
authored
Merge pull request #8528 from ladyada/main
update ESP32S3 camera to rev D
2 parents 6b62df4 + a83f95b commit 05e6db9

File tree

2 files changed

+7
-65
lines changed

2 files changed

+7
-65
lines changed

ports/espressif/boards/adafruit_esp32s3_camera/board.c

Lines changed: 1 addition & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -52,69 +52,8 @@ uint8_t display_init_sequence[] = {
5252
0x29, 0 | DELAY, 5, // _DISPON
5353
};
5454

55-
#define I2C_MASTER_SCL_IO 34
56-
#define I2C_MASTER_SDA_IO 33
57-
#define I2C_MASTER_NUM 0
58-
#define I2C_MASTER_FREQ_HZ 400000
59-
#define I2C_MASTER_TX_BUF_DISABLE 0
60-
#define I2C_MASTER_RX_BUF_DISABLE 0
61-
#define I2C_MASTER_TIMEOUT_MS 1000
62-
#define I2C_WAIT 40 // Timing (in microseconds) for I2C
63-
64-
#define AW9523_ADDR (0x5B)
65-
#define AW9523_REG_SOFTRESET (0x7f)
66-
#define AW9523_REG_OUTPUT0 (0x02)
67-
#define AW9523_REG_CONFIG0 (0x04)
68-
#define AW9523_DEFAULT_OUTPUT (0)
69-
#define AW9523_DEFAULT_CONFIG (0x2)
70-
71-
72-
static void io_expander_backlight_init(void) {
73-
int i2c_num = I2C_MASTER_NUM;
74-
i2c_config_t conf = {
75-
.mode = I2C_MODE_MASTER,
76-
.sda_io_num = I2C_MASTER_SDA_IO,
77-
.scl_io_num = I2C_MASTER_SCL_IO,
78-
.sda_pullup_en = GPIO_PULLUP_ENABLE,
79-
.scl_pullup_en = GPIO_PULLUP_ENABLE,
80-
.master.clk_speed = I2C_MASTER_FREQ_HZ,
81-
};
82-
i2c_param_config(i2c_num, &conf);
83-
i2c_driver_install(i2c_num, conf.mode, I2C_MASTER_RX_BUF_DISABLE, I2C_MASTER_TX_BUF_DISABLE, 0);
84-
i2c_cmd_handle_t cmd = i2c_cmd_link_create();
85-
i2c_master_start(cmd);
86-
i2c_master_write_byte(cmd, AW9523_ADDR << 1 | I2C_MASTER_WRITE, true);
87-
i2c_master_write_byte(cmd, AW9523_REG_SOFTRESET, true);
88-
i2c_master_write_byte(cmd, 0, true);
89-
i2c_master_stop(cmd);
90-
i2c_master_cmd_begin(i2c_num, cmd, 1000 / portTICK_PERIOD_MS);
91-
i2c_cmd_link_delete(cmd);
92-
93-
cmd = i2c_cmd_link_create();
94-
i2c_master_start(cmd);
95-
i2c_master_write_byte(cmd, AW9523_ADDR << 1 | I2C_MASTER_WRITE, true);
96-
i2c_master_write_byte(cmd, AW9523_REG_CONFIG0, true);
97-
i2c_master_write_byte(cmd, AW9523_DEFAULT_CONFIG >> 8, true);
98-
i2c_master_write_byte(cmd, AW9523_DEFAULT_CONFIG & 0xff, true);
99-
i2c_master_stop(cmd);
100-
i2c_master_cmd_begin(i2c_num, cmd, 1000 / portTICK_PERIOD_MS);
101-
i2c_cmd_link_delete(cmd);
102-
103-
cmd = i2c_cmd_link_create();
104-
i2c_master_start(cmd);
105-
i2c_master_write_byte(cmd, AW9523_ADDR << 1 | I2C_MASTER_WRITE, true);
106-
i2c_master_write_byte(cmd, AW9523_REG_OUTPUT0, true);
107-
i2c_master_write_byte(cmd, AW9523_DEFAULT_OUTPUT >> 8, true);
108-
i2c_master_write_byte(cmd, AW9523_DEFAULT_OUTPUT & 0xff, true);
109-
i2c_master_stop(cmd);
110-
i2c_master_cmd_begin(i2c_num, cmd, 1000 / portTICK_PERIOD_MS);
111-
i2c_cmd_link_delete(cmd);
112-
113-
i2c_driver_delete(i2c_num);
114-
}
11555

11656
void board_init(void) {
117-
io_expander_backlight_init();
11857
busio_spi_obj_t *spi = common_hal_board_create_spi(0);
11958
fourwire_fourwire_obj_t *bus = &allocate_display_bus()->fourwire_bus;
12059
bus->base.type = &fourwire_fourwire_type;
@@ -148,7 +87,7 @@ void board_init(void) {
14887
MIPI_COMMAND_WRITE_MEMORY_START, // Write memory command
14988
display_init_sequence,
15089
sizeof(display_init_sequence),
151-
NULL, // backlight pin
90+
&pin_GPIO45, // backlight pin
15291
NO_BRIGHTNESS_COMMAND,
15392
1.0f, // brightness
15493
false, // single_byte_bounds

ports/espressif/boards/adafruit_esp32s3_camera/pins.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,15 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
2727
{ MP_ROM_QSTR(MP_QSTR_TFT_RESET), MP_ROM_PTR(&pin_GPIO38) },
2828
{ MP_ROM_QSTR(MP_QSTR_TFT_CS), MP_ROM_PTR(&pin_GPIO39) },
2929
{ MP_ROM_QSTR(MP_QSTR_TFT_DC), MP_ROM_PTR(&pin_GPIO40) },
30+
{ MP_ROM_QSTR(MP_QSTR_TFT_BACKLIGHT), MP_ROM_PTR(&pin_GPIO45) },
3031

3132
{ MP_ROM_QSTR(MP_QSTR_CARD_CS), MP_ROM_PTR(&pin_GPIO48) },
3233

3334
{ MP_ROM_QSTR(MP_QSTR_IRQ), MP_ROM_PTR(&pin_GPIO3) },
3435

3536
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO1) },
3637

37-
{ MP_ROM_QSTR(MP_QSTR_SPEAKER), MP_ROM_PTR(&pin_GPIO41) },
38+
{ MP_ROM_QSTR(MP_QSTR_SPEAKER), MP_ROM_PTR(&pin_GPIO46) },
3839

3940
{ MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_GPIO0) },
4041

@@ -43,8 +44,8 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
4344
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO17) },
4445
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO18) },
4546

46-
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO33) },
47-
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO34) },
47+
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO34) },
48+
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO33) },
4849

4950
{ MP_ROM_QSTR(MP_QSTR_CAMERA_DATA), MP_ROM_PTR(&camera_data_tuple) },
5051

@@ -60,6 +61,8 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
6061
{ MP_ROM_QSTR(MP_QSTR_CAMERA_DATA5), MP_ROM_PTR(&pin_GPIO14) },
6162
{ MP_ROM_QSTR(MP_QSTR_CAMERA_DATA3), MP_ROM_PTR(&pin_GPIO15) },
6263
{ MP_ROM_QSTR(MP_QSTR_CAMERA_DATA4), MP_ROM_PTR(&pin_GPIO16) },
64+
{ MP_ROM_QSTR(MP_QSTR_CAMERA_RESET), MP_ROM_PTR(&pin_GPIO47) },
65+
{ MP_ROM_QSTR(MP_QSTR_CAMERA_PWDN), MP_ROM_PTR(&pin_GPIO21) },
6366

6467
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
6568
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },

0 commit comments

Comments
 (0)