forked from xiaozhi/xiaozhi-esp32
添加乐鑫开发板esp32-s3-lcd-ev-board支持 (#543)
* 添加乐鑫开发版esp32-s3-lcd-ev-board支持 * 新增乐鑫开发版esp32-s3-lcd-ev-board支持 * 新增乐鑫开发板esp32-s3-lcd-ev-board支持,修复led和背光bug * Delete main/boards/ESP32-S3-LCD-EV-Board directory * 新增乐鑫开发板esp32-s3-lcd-ev-board支持,修复led和背光bug * 去除冗余代码 * 添加esp-s3-lcd-ev-board的硬件版本选择配置 * Delete main/boards/esp-s3-lcd-ev-board-1.4 directory * 添加esp-s3-lcd-ev-board的硬件版本选择配置 * 新增不同版本的名称标识,使ota更新时能识别
This commit is contained in:
90
main/boards/esp-s3-lcd-ev-board/esp_io_expander_tca9554.h
Normal file
90
main/boards/esp-s3-lcd-ev-board/esp_io_expander_tca9554.h
Normal file
@@ -0,0 +1,90 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file
|
||||
* @brief ESP IO expander: TCA9554
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "esp_err.h"
|
||||
#include "driver/i2c_master.h"
|
||||
#include "esp_io_expander.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Create a TCA9554(A) IO expander object
|
||||
*
|
||||
* @param[in] i2c_bus I2C bus handle. Obtained from `i2c_new_master_bus()`
|
||||
* @param[in] dev_addr I2C device address of chip. Can be `ESP_IO_EXPANDER_I2C_TCA9554_ADDRESS_XXX` or `ESP_IO_EXPANDER_I2C_TCA9554A_ADDRESS_XXX`.
|
||||
* @param[out] handle_ret Handle to created IO expander object
|
||||
*
|
||||
* @return
|
||||
* - ESP_OK: Success, otherwise returns ESP_ERR_xxx
|
||||
*/
|
||||
esp_err_t esp_io_expander_new_i2c_tca9554(i2c_master_bus_handle_t i2c_bus, uint32_t dev_addr, esp_io_expander_handle_t *handle_ret);
|
||||
|
||||
/**
|
||||
* @brief I2C address of the TCA9554
|
||||
*
|
||||
* The 8-bit address format is as follows:
|
||||
*
|
||||
* (Slave Address)
|
||||
* ┌─────────────────┷─────────────────┐
|
||||
* ┌─────┐─────┐─────┐─────┐─────┐─────┐─────┐─────┐
|
||||
* | 0 | 1 | 0 | 0 | A2 | A1 | A0 | R/W |
|
||||
* └─────┘─────┘─────┘─────┘─────┘─────┘─────┘─────┘
|
||||
* └────────┯────────┘ └─────┯──────┘
|
||||
* (Fixed) (Hareware Selectable)
|
||||
*
|
||||
* And the 7-bit slave address is the most important data for users.
|
||||
* For example, if a chip's A0,A1,A2 are connected to GND, it's 7-bit slave address is 0100000b(0x20).
|
||||
* Then users can use `ESP_IO_EXPANDER_I2C_TCA9554_ADDRESS_000` to init it.
|
||||
*/
|
||||
#define ESP_IO_EXPANDER_I2C_TCA9554_ADDRESS_000 (0x20)
|
||||
#define ESP_IO_EXPANDER_I2C_TCA9554_ADDRESS_001 (0x21)
|
||||
#define ESP_IO_EXPANDER_I2C_TCA9554_ADDRESS_010 (0x22)
|
||||
#define ESP_IO_EXPANDER_I2C_TCA9554_ADDRESS_011 (0x23)
|
||||
#define ESP_IO_EXPANDER_I2C_TCA9554_ADDRESS_100 (0x24)
|
||||
#define ESP_IO_EXPANDER_I2C_TCA9554_ADDRESS_101 (0x25)
|
||||
#define ESP_IO_EXPANDER_I2C_TCA9554_ADDRESS_110 (0x26)
|
||||
#define ESP_IO_EXPANDER_I2C_TCA9554_ADDRESS_111 (0x27)
|
||||
|
||||
|
||||
/**
|
||||
* @brief I2C address of the TCA9554A
|
||||
*
|
||||
* The 8-bit address format is as follows:
|
||||
*
|
||||
* (Slave Address)
|
||||
* ┌─────────────────┷─────────────────┐
|
||||
* ┌─────┐─────┐─────┐─────┐─────┐─────┐─────┐─────┐
|
||||
* | 0 | 1 | 1 | 1 | A2 | A1 | A0 | R/W |
|
||||
* └─────┘─────┘─────┘─────┘─────┘─────┘─────┘─────┘
|
||||
* └────────┯────────┘ └─────┯──────┘
|
||||
* (Fixed) (Hareware Selectable)
|
||||
*
|
||||
* And the 7-bit slave address is the most important data for users.
|
||||
* For example, if a chip's A0,A1,A2 are connected to GND, it's 7-bit slave address is 0111000b(0x38).
|
||||
* Then users can use `ESP_IO_EXPANDER_I2C_TCA9554A_ADDRESS_000` to init it.
|
||||
*/
|
||||
#define ESP_IO_EXPANDER_I2C_TCA9554A_ADDRESS_000 (0x38)
|
||||
#define ESP_IO_EXPANDER_I2C_TCA9554A_ADDRESS_001 (0x39)
|
||||
#define ESP_IO_EXPANDER_I2C_TCA9554A_ADDRESS_010 (0x3A)
|
||||
#define ESP_IO_EXPANDER_I2C_TCA9554A_ADDRESS_011 (0x3B)
|
||||
#define ESP_IO_EXPANDER_I2C_TCA9554A_ADDRESS_100 (0x3C)
|
||||
#define ESP_IO_EXPANDER_I2C_TCA9554A_ADDRESS_101 (0x3D)
|
||||
#define ESP_IO_EXPANDER_I2C_TCA9554A_ADDRESS_110 (0x3E)
|
||||
#define ESP_IO_EXPANDER_I2C_TCA9554A_ADDRESS_111 (0x3F)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user