Skip to content

Commit

Permalink
Merge pull request #371 from lewisxhe/master
Browse files Browse the repository at this point in the history
Add lilygo twr plus Rev2.1 support
  • Loading branch information
hathach authored Jan 9, 2024
2 parents fd8b950 + 4d54c8b commit 6a12d71
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 7 deletions.
19 changes: 16 additions & 3 deletions ports/espressif/boards/lilygo_ttgo_t_twr_plus/board.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -143,8 +143,10 @@ extern "C" bool board_init_extension()

PMU.setDC3Voltage(3400); // V2.0 - SA868, NeoPixel
PMU.enableDC3();
PMU.setALDO3Voltage(3300); // V2.1 - SA868, NeoPixel
PMU.enableALDO3();

// Rev2.1 pixel light and ESP have the same power supply
// PMU.setALDO3Voltage(3300); // V2.1 - SA868 .No need to turn it on here
// PMU.enableALDO3();

/* no power for GNSS and/or Mic at this moment */

Expand All @@ -162,8 +164,19 @@ extern "C" bool board_init_extension()
dev._offset = 0;
}

// Check the OLED device address. Rev2.1 has two I2C device addresses, which are used to distinguish VHF or UHF.
uint8_t oled_addr = 0x3C;
uint8_t data[1];
if (pmu_register_read(0x3C,0x00,data,1) == 0){
ESP_LOGI(tag, "Find OLED address is 0x3C");
oled_addr = 0x3C;
}else if (pmu_register_read(0x3D,0x00,data,1) == 0){
ESP_LOGI(tag, "Find OLED address is 0x3D");
oled_addr = 0x3D;
}

#if CONFIG_I2C_INTERFACE
i2c_master_init(&dev, I2C_MASTER_SDA_IO, I2C_MASTER_SCL_IO, -1);
i2c_master_init(&dev, I2C_MASTER_SDA_IO, I2C_MASTER_SCL_IO, -1, oled_addr);
#endif // CONFIG_I2C_INTERFACE

#if CONFIG_FLIP
Expand Down
2 changes: 1 addition & 1 deletion ports/espressif/boards/lilygo_ttgo_tbeam_s3/board.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ extern "C" bool board_init_extension()
ESP_LOGI(tag, "CONFIG_SDA_GPIO=%d",CONFIG_SDA_GPIO);
ESP_LOGI(tag, "CONFIG_SCL_GPIO=%d",CONFIG_SCL_GPIO);
ESP_LOGI(tag, "CONFIG_RESET_GPIO=%d",CONFIG_RESET_GPIO);
i2c_master_init(&dev, CONFIG_SDA_GPIO, CONFIG_SCL_GPIO, CONFIG_RESET_GPIO);
i2c_master_init(&dev, CONFIG_SDA_GPIO, CONFIG_SCL_GPIO, CONFIG_RESET_GPIO, 0x3C);
#endif // CONFIG_I2C_INTERFACE

#if CONFIG_FLIP
Expand Down
2 changes: 1 addition & 1 deletion ports/espressif/components/ssd1306/ssd1306.h
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ void ssd1306_fadeout(SSD1306_t * dev);
void ssd1306_dump(SSD1306_t dev);
void ssd1306_dump_page(SSD1306_t * dev, int page, int seg);

void i2c_master_init(SSD1306_t * dev, int16_t sda, int16_t scl, int16_t reset);
void i2c_master_init(SSD1306_t * dev, int16_t sda, int16_t scl, int16_t reset,int address);
void i2c_init(SSD1306_t * dev, int width, int height);
void i2c_display_image(SSD1306_t * dev, int page, int seg, uint8_t * images, int width);
void i2c_contrast(SSD1306_t * dev, int contrast);
Expand Down
4 changes: 2 additions & 2 deletions ports/espressif/components/ssd1306/ssd1306_i2c.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
#define I2C_MASTER_FREQ_HZ 800000 /*!< I2C master clock frequency. no higher than 1MHz for now */
//#define I2C_MASTER_FREQ_HZ 1000000 /*!< I2C master clock frequency. no higher than 1MHz for now */

void i2c_master_init(SSD1306_t * dev, int16_t sda, int16_t scl, int16_t reset)
void i2c_master_init(SSD1306_t * dev, int16_t sda, int16_t scl, int16_t reset,int address)
{
i2c_config_t i2c_config = {
.mode = I2C_MODE_MASTER,
Expand All @@ -38,7 +38,7 @@ void i2c_master_init(SSD1306_t * dev, int16_t sda, int16_t scl, int16_t reset)
vTaskDelay(50 / portTICK_PERIOD_MS);
gpio_set_level(reset, 1);
}
dev->_address = I2CAddress;
dev->_address = address;
dev->_flip = false;
}

Expand Down

0 comments on commit 6a12d71

Please sign in to comment.