How to control WS2812B LEDs on nrf54 via SPI?

Hi, 

I'm using nrf Connect SDK 3.1.0 and want to control three WS2812B LEDs with the LED strip driver. Therefore, I created the devicetree entry similar to the sample:

&spi00 {
	status = "okay";
	compatible = "nordic,nrf-spim";
	pinctrl-0 = <&spi00_default>;
	pinctrl-1 = <&spi00_sleep>;
	pinctrl-names = "default", "sleep";
	led_strip: ws2812@0 {
		compatible = "worldsemi,ws2812-spi";
		/* SPI */
		reg = <0>;
		spi-max-frequency = <4000000>;

		/* WS2812 */
		chain-length = <3>;
		color-mapping = <LED_COLOR_ID_GREEN
						LED_COLOR_ID_RED
						LED_COLOR_ID_BLUE>;
		// jedes Bit entspricht bei 4Mhz Übertragungsgeschwindigkeit einer Zeitspanne von 250ns 
		// Laut Datenblatt wird eine "0" durch min. 400ns an und 850ns aus dargestellt
		// Eine "1" wird durch min. 800ns an und 450ns aus dargestellt
		spi-zero-frame = <0x40>;
		spi-one-frame = <0x70>;
	};
};

The MOSI pin is defined here:

spi00_default: spi00_default {
        group1 {
                psels = <NRF_PSEL_DISCONNECTED(SPIM_MISO)>,
					<NRF_PSEL(SPIM_MOSI, 2, 4)>,
					<NRF_PSEL_DISCONNECTED(SPIM_SCK)>;
        };
	};

    spi00_sleep: spi00_sleep {
        group1 {
                psels = <NRF_PSEL_DISCONNECTED(SPIM_SCK)>,
					<NRF_PSEL(SPIM_MOSI, 2, 4)>,
					<NRF_PSEL_DISCONNECTED(SPIM_MISO)>;
                        low-power-enable;
        };
	};

When using led_strip_update_rgb(led_strip, pixels, STRIP_NUM_PIXELS); the LEDs doesn't light up. I already checked the output pin with an oscilloscope and there's no output data on that pin. 

Can anyone help me with this issue? 

Best regards,

Christian

Parents Reply Children
No Data
Related