mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-30 22:53:59 +00:00 
			
		
		
		
	Expand uart invert feature to ESP8266 (#1727)
This commit is contained in:
		| @@ -14,6 +14,7 @@ from esphome.const import ( | |||||||
|     CONF_UART_ID, |     CONF_UART_ID, | ||||||
|     CONF_DATA, |     CONF_DATA, | ||||||
|     CONF_RX_BUFFER_SIZE, |     CONF_RX_BUFFER_SIZE, | ||||||
|  |     CONF_INVERTED, | ||||||
|     CONF_INVERT, |     CONF_INVERT, | ||||||
|     CONF_TRIGGER_ID, |     CONF_TRIGGER_ID, | ||||||
|     CONF_SEQUENCE, |     CONF_SEQUENCE, | ||||||
| @@ -67,6 +68,19 @@ def validate_rx_pin(value): | |||||||
|     return value |     return value | ||||||
|  |  | ||||||
|  |  | ||||||
|  | def validate_invert_esp32(config): | ||||||
|  |     if ( | ||||||
|  |         CORE.is_esp32 | ||||||
|  |         and CONF_TX_PIN in config | ||||||
|  |         and CONF_RX_PIN in config | ||||||
|  |         and config[CONF_TX_PIN][CONF_INVERTED] != config[CONF_RX_PIN][CONF_INVERTED] | ||||||
|  |     ): | ||||||
|  |         raise cv.Invalid( | ||||||
|  |             "Different invert values for TX and RX pin are not (yet) supported for ESP32." | ||||||
|  |         ) | ||||||
|  |     return config | ||||||
|  |  | ||||||
|  |  | ||||||
| def _uart_declare_type(value): | def _uart_declare_type(value): | ||||||
|     if CORE.is_esp8266: |     if CORE.is_esp8266: | ||||||
|         return cv.declare_id(ESP8266UartComponent)(value) |         return cv.declare_id(ESP8266UartComponent)(value) | ||||||
| @@ -162,6 +176,7 @@ CONFIG_SCHEMA = cv.All( | |||||||
|         } |         } | ||||||
|     ).extend(cv.COMPONENT_SCHEMA), |     ).extend(cv.COMPONENT_SCHEMA), | ||||||
|     cv.has_at_least_one_key(CONF_TX_PIN, CONF_RX_PIN), |     cv.has_at_least_one_key(CONF_TX_PIN, CONF_RX_PIN), | ||||||
|  |     validate_invert_esp32, | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -45,6 +45,11 @@ uint32_t ESP8266UartComponent::get_config() { | |||||||
|   else |   else | ||||||
|     config |= UART_NB_STOP_BIT_2; |     config |= UART_NB_STOP_BIT_2; | ||||||
|  |  | ||||||
|  |   if (this->tx_pin_ != nullptr && this->tx_pin_->is_inverted()) | ||||||
|  |     config |= BIT(22); | ||||||
|  |   if (this->rx_pin_ != nullptr && this->rx_pin_->is_inverted()) | ||||||
|  |     config |= BIT(19); | ||||||
|  |  | ||||||
|   return config; |   return config; | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -227,7 +227,9 @@ spi: | |||||||
|  |  | ||||||
| uart: | uart: | ||||||
|   - id: uart1 |   - id: uart1 | ||||||
|     tx_pin: GPIO1 |     tx_pin: | ||||||
|  |       number: GPIO1 | ||||||
|  |       inverted: yes | ||||||
|     rx_pin: GPIO3 |     rx_pin: GPIO3 | ||||||
|     baud_rate: 115200 |     baud_rate: 115200 | ||||||
|   - id: uart2 |   - id: uart2 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user