Hi,
I would class myself as a novice and still learning, but need a little help with this if its possible, I have searched for some time and although there is plenty of Arduino and other controller articles out there, unfortunately none of them help me.
I have some SK6812RGBW which is a smart LED / Neopixle, looking at the data sheet I have been trying to bit-bang the sequence required to get them to illuminate, just so I can get an understanding of the protocol and sequence to make them work,
looking in Picaxe Manual 2, from what I have read it appears that it is unable to do the speeds I require. The LEDs work by receiving 32bits of data per led from the MCU, the bits have a period of 1.25uS(+/-600nS) which comprises of the following:-
0code = time high 0.3uS followed by time low 0.9uS
1code = time high 0.6uS followed by time low 0.6uS
R7 R6 R5 R4 R3 R2 R1 R0 G7 G6 G5 G4 G3 G2 G1 G0 B7 B6 B5 B4 B3 B2 B1 B0 W7 W6 W5 W4 W3 W2 W1 W0
SK6812RGBW Datasheet link
I have tried running the 14M2 at 32Mhz and utilising "pause", "pauseus" "PWM" and "HPWM".
I have managed to get some to illuminate with the HPWM and the following simple code, this code sends multiple 1code bits to the led.
I got the PWM code with Picaxe pwmout wizard, Clock 32Mhz, PWM freq 800kHz with a 50% duty cycle, this achieves the 1code structure.
(Just to expleain, I have 5 of these connected together, with the above code it illuminates RGBW at full intensity on the 1st LED and what looks like RGB at full intensity on the 2nd LED, the remaining are not illuminated. Deleting the "hpwm off" will illuminate all LEDs at full intensity after a reset command)
I am wondering and would like to know, is it possible to send out a single period from the HPWM? if so then I'm sure I could control the led by sending out 32 individual HPWM periods.
Or is there a better way to achieve my goal with another command?
I hope I have been concise enough and understandable.
Thank you for any advice given.
Regards, Mark.
I would class myself as a novice and still learning, but need a little help with this if its possible, I have searched for some time and although there is plenty of Arduino and other controller articles out there, unfortunately none of them help me.
I have some SK6812RGBW which is a smart LED / Neopixle, looking at the data sheet I have been trying to bit-bang the sequence required to get them to illuminate, just so I can get an understanding of the protocol and sequence to make them work,
looking in Picaxe Manual 2, from what I have read it appears that it is unable to do the speeds I require. The LEDs work by receiving 32bits of data per led from the MCU, the bits have a period of 1.25uS(+/-600nS) which comprises of the following:-
0code = time high 0.3uS followed by time low 0.9uS
1code = time high 0.6uS followed by time low 0.6uS
R7 R6 R5 R4 R3 R2 R1 R0 G7 G6 G5 G4 G3 G2 G1 G0 B7 B6 B5 B4 B3 B2 B1 B0 W7 W6 W5 W4 W3 W2 W1 W0
SK6812RGBW Datasheet link
I have tried running the 14M2 at 32Mhz and utilising "pause", "pauseus" "PWM" and "HPWM".
I have managed to get some to illuminate with the HPWM and the following simple code, this code sends multiple 1code bits to the led.
I got the PWM code with Picaxe pwmout wizard, Clock 32Mhz, PWM freq 800kHz with a 50% duty cycle, this achieves the 1code structure.
Code:
setfreq m32
init:
hpwm 0,0,%0001,9,20
hpwm off
goto init
(Just to expleain, I have 5 of these connected together, with the above code it illuminates RGBW at full intensity on the 1st LED and what looks like RGB at full intensity on the 2nd LED, the remaining are not illuminated. Deleting the "hpwm off" will illuminate all LEDs at full intensity after a reset command)
I am wondering and would like to know, is it possible to send out a single period from the HPWM? if so then I'm sure I could control the led by sending out 32 individual HPWM periods.
Or is there a better way to achieve my goal with another command?
I hope I have been concise enough and understandable.
Thank you for any advice given.
Regards, Mark.