[sn74hc595 ] SPI config (#3341)

This commit is contained in:
Angel Nunez Mencias 2023-11-07 10:15:17 +01:00 committed by GitHub
parent 980ca127eb
commit 4821e6b71f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 48 additions and 2 deletions

View File

@ -6,9 +6,10 @@ SN74HC595 I/O Expander (shift register)
The SN74HC595 component allows you to use SN74HC595 shift registers as I/O expanders The SN74HC595 component allows you to use SN74HC595 shift registers as I/O expanders
(`datasheet <http://www.ti.com/lit/ds/symlink/sn74hc595.pdf>`__, (`datasheet <http://www.ti.com/lit/ds/symlink/sn74hc595.pdf>`__,
`SparkFun`_) in ESPHome. It uses 3 wires (optionally 4) for communication. `SparkFun`_) in ESPHome. It uses 3 wires (optionally 4) for communication. Optionally, it can be added
to a SPI bus to allow sharing pins with other components.
Once configured, you can use any of the 8 pins for your projects. Up-to 256 shift registers can be daisy-chained Once configured, you can use any of the 8 pins for your projects. Up to 256 shift registers can be daisy-chained
to provide more pins, without using more GPIO pins on the controller. to provide more pins, without using more GPIO pins on the controller.
Use of the OE pin is optional. If used, the pin should be pulled up externally. Use of the OE pin is optional. If used, the pin should be pulled up externally.
@ -21,6 +22,11 @@ Use of the OE pin is optional. If used, the pin should be pulled up externally.
.. _SparkFun: https://www.sparkfun.com/products/13699 .. _SparkFun: https://www.sparkfun.com/products/13699
The component can be configured using :ref:`GPIO pins <config-pin_schema>` or the :ref:`SPI Bus <spi>`.
Over GPIO
---------
.. code-block:: yaml .. code-block:: yaml
# Example configuration entry # Example configuration entry
@ -53,6 +59,46 @@ Configuration variables:
- **sr_count** (*Optional*, int): Number of daisy-chained shift registers, up-to 256. Defaults to ``1``. - **sr_count** (*Optional*, int): Number of daisy-chained shift registers, up-to 256. Defaults to ``1``.
Pin configuration variables:
****************************
- **sn74hc595** (**Required**, :ref:`config-id`): The id of the SN74HC595 component the pin belongs to.
- **number** (**Required**, int): The pin number.
- **inverted** (*Optional*, boolean): If all written values should be treated as inverted.
Defaults to ``false``.
Over SPI
--------
.. code-block:: yaml
# Example configuration entry
spi:
sn74hc595:
- id: 'sn74hc595_hub'
latch_pin: D7
oe_pin: D6
sr_count: 2
# Individual outputs
switch:
- platform: gpio
name: "SN74HC595 Pin #0"
pin:
sn74hc595: sn74hc595_hub
# Use pin number 0
number: 0
inverted: false
Configuration variables:
************************
- **id** (**Required**, :ref:`config-id`): The id to use for this SN74HC595 component.
- **latch_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): Pin connected to SN74HC595 RCLK (ST_CP) pin
- **oe_pin** (*Optional*, :ref:`Pin Schema <config-pin_schema>`): Pin connected to SN74HC595 OE pin
- **sr_count** (*Optional*, int): Number of daisy-chained shift registers, up to 256. Defaults to ``1``.
Pin configuration variables: Pin configuration variables:
**************************** ****************************