I'd like to share a practical application for the arbitrary waveform (ARB) function in the Agilent 33522B. First, some background on the application.
I'm working to design and build a controller for RGB LED strips, like the one shown in Figure 1. This particular product comes in reels, 4m long, 60 devices per meter. Each device contains a high intensity red, green and blue LED and a WS2811 controller chip. See Figure 2 for a close up of the device package.
Figure 1 Figure 2
The intensity of each LED within a device is controlled with an 8-bit value, 000000002 corresponds to zero intensity and 111111112 corresponds to maximum intensity. So, with 256 selectable intensities for red, green and blue in each device there are 256 x 256 x 256 = 16,777,216 possible illumination choices. Each device requires 24-bits (3 bytes) of control data. A single data line is daisy chained through the entire string. Each device strips off the first 24-bits it receives, then passes on the remaining bits to the following devices in the chain. Although ready made controllers are available, I see much better learning opportunity and fun in building my own.
To better understand the capabilities of the LED strings I need to drive data streams into the string, then observe and record how the string behaves. To do that, one needs a controller, but I'm designing the controller, so we have a chicken and egg dilemma here. This is where the Agilent ARB comes in to save the day. All I need to do is look up the timing specifications for the data bits, then use Agilent's BenchLink software to create whatever pattern I'm interested in investigating, then transfer the waveform file to the 33522B. The 33522B will then act as a proxy controller by selectively generating pulse streams that represent various illumination choices of interest.
With the Agilent 33522B acting as a custom data stream generator I can characterise string behaviour including timing tolerance values, current draw, voltage sag from end to end, and on and on.
So far I have generated several static illumination patterns, including minimum brightness red, green and blue, maximum brightness red, green and blue, white light and others. Photos of minimum brightness red, green and blue illuminations are shown in Figures 3, 4,and 5.
Figure 3 Figure 4 Figure 5
During my investigations I discovered a few interesting and important operational details about these strings that impact design of a controller. Exactly what I was hoping I'd find out by using the Agilent 33522B in ARB mode.
I'll go over the details of setting up the ARB to generate the data streams, give details on the pulse timing and reveal one interesting surprise about the behaviour of these devices in my next post.
Cheers all,
Mark
Top Comments