2017-10-20 03:28:25 +08:00
|
|
|
.. _led_lpd8806_sample:
|
|
|
|
|
|
|
|
LPD880x Sample Application
|
|
|
|
##########################
|
|
|
|
|
|
|
|
Overview
|
|
|
|
********
|
|
|
|
|
|
|
|
This sample application demonstrates basic usage of the lpd880x LED
|
|
|
|
strip driver, for controlling LED strips using LPD8803, LPD8806, and
|
|
|
|
compatible driver chips.
|
|
|
|
|
|
|
|
Requirements
|
|
|
|
************
|
|
|
|
|
|
|
|
.. _these strips from AdaFruit: https://www.adafruit.com/product/306
|
|
|
|
.. _74AHCT125: https://cdn-shop.adafruit.com/datasheets/74AHC125.pdf
|
|
|
|
|
|
|
|
- LED strip using LPD8806 or compatible, such as `these strips from AdaFruit`_.
|
|
|
|
|
|
|
|
- Zephyr board with SPI master driver. SPI communications must use 5V
|
2017-11-16 00:37:56 +08:00
|
|
|
signaling, which may require a level translator, such as the
|
2017-10-20 03:28:25 +08:00
|
|
|
`74AHCT125`_.
|
|
|
|
|
|
|
|
- 5V power supply.
|
|
|
|
|
|
|
|
Wiring
|
|
|
|
******
|
|
|
|
|
|
|
|
#. Ensure your Zephyr board, the 5V power supply, and the LED strip
|
|
|
|
share a common ground.
|
|
|
|
#. Connect the MOSI pin of your board's SPI master to the data input
|
|
|
|
pin of the first LPD8806 IC in the strip.
|
|
|
|
#. Connect the SCLK pin of your board's SPI master to the clock input
|
|
|
|
pin of the first LPD8806 IC in the strip.
|
|
|
|
#. Connect the 5V power supply pin to the 5V input of the LED strip.
|
|
|
|
|
|
|
|
Building and Running
|
|
|
|
********************
|
|
|
|
|
|
|
|
The sample application is located at ``samples/drivers/led_lpd8806/``
|
|
|
|
in the Zephyr source tree.
|
|
|
|
|
|
|
|
Before running the application, configure it as follows.
|
|
|
|
|
|
|
|
#. Configure your board's SPI master in a configuration file under
|
|
|
|
``boards/`` in the sample directory.
|
|
|
|
|
|
|
|
To provide additional configuration for some particular board,
|
|
|
|
create a ``boards/YOUR_BOARD_NAME.conf`` file in the application
|
|
|
|
directory. It will be merged into the application configuration.
|
|
|
|
|
|
|
|
In this file, you must ensure that the SPI peripheral you want to
|
|
|
|
use for this demo is enabled, and that its name is "lpd8806_spi".
|
|
|
|
See ``boards/96b_carbon.conf`` for an example, and refer to your
|
|
|
|
board's configuration options to set up your desired SPI master.
|
|
|
|
|
|
|
|
#. Set the number of LEDs in your strip in the application sources.
|
|
|
|
This is determined by the macro ``STRIP_NUM_LEDS`` in the file
|
|
|
|
``src/main.c``. The value in the file was chosen to work with one
|
|
|
|
meter of the AdaFruit strip.
|
|
|
|
|
|
|
|
Then build and flash the application:
|
|
|
|
|
2017-11-12 17:13:30 +08:00
|
|
|
.. zephyr-app-commands::
|
|
|
|
:zephyr-app: samples/drivers/led_lpd8806
|
|
|
|
:board: <board>
|
|
|
|
:goals: flash
|
|
|
|
:compact:
|
2017-10-20 03:28:25 +08:00
|
|
|
|
|
|
|
Refer to your :ref:`board's documentation <boards>` for alternative
|
|
|
|
flash instructions if your board doesn't support the ``flash`` target.
|
|
|
|
|
|
|
|
When you connect to your board's serial console, you should see the
|
|
|
|
following output:
|
|
|
|
|
|
|
|
.. code-block:: none
|
|
|
|
|
|
|
|
***** BOOTING ZEPHYR OS v1.9.99 *****
|
|
|
|
[general] [INF] main: Found SPI device lpd8806_spi
|
|
|
|
[general] [INF] main: Found LED strip device lpd880x_strip
|
|
|
|
[general] [INF] main: Displaying pattern on strip
|
|
|
|
|
|
|
|
References
|
|
|
|
**********
|
|
|
|
|
|
|
|
- `LPD8806 datasheet <https://cdn-shop.adafruit.com/datasheets/lpd8806+english.pdf>`_
|
|
|
|
- `RGB LED strips: an overview <http://nut-bolt.nl/2012/rgb-led-strips/>`_
|
|
|
|
- `74AHCT125 datasheet <https://cdn-shop.adafruit.com/datasheets/74AHC125.pdf>`_
|