How you directly access serially chained devices, like LEDS, shift registers, etc?


Closed Thread
Results 1 to 20 of 20

Hybrid View

  1. #1
    Join Date
    Feb 2013
    Posts
    1,078

    Default How you directly access serially chained devices, like LEDS, shift registers, etc?

    Hello.

    I connected 6 pieces of APA102C to 16F886 and they all work fine, control appears to be quite straightforward and simple:

    SHIFTOUT di, ci, 1, [%00000000,%00000000,%00000000,%00000000] - to initialize transfer and then
    SHIFTOUT di, ci, 1, [%11111111,B,G,R] - enables 1st led in a row at color defined with BGR values and common brightness register value.

    The issue I see, is that I want to illuminate say led #4, I have to keep in 6 variables values for all leds, and actually "redraw" the whole led string. Or another solution is, to have array with length of the led string attached, update data in it, and have one common "refresh" routine, which reads data in array and updates it all at once. But both this methods will be significantly slow, in case of say 150 or more leds, since shiftout is software routine, and when I tried to do scrolling marque with 4x MAX7219 8x8 led matrices, the slow redraw speed was quite noticeable.

    So are there any other, more efficient and faster ways, so say if I want to update led #240, in 256 led string, won't have to "redraw" the complete led string.

  2. #2
    Join Date
    Apr 2014
    Location
    OK
    Posts
    557


    Did you find this post helpful? Yes | No

    Default Re: How you directly access serially chained devices, like LEDS, shift registers, etc

    From what I've read, if you're running 256 LEDs, you get them where you want them now, but to change #240 requires shooting out 256 color commands. Is this your only option, or might there be another alternative to achieve your goals? You haven't really stated what you're building, just what your intended approach is. As far as the 256 Variables, if you're running into Memory shortages, you could try a newer PIC with more Memory.

  3. #3
    Join Date
    Feb 2013
    Posts
    1,078


    Did you find this post helpful? Yes | No

    Default Re: How you directly access serially chained devices, like LEDS, shift registers, etc

    Actually, I'm not doing anything so far, just in future, I want to make a small RGB display, 192 X 12 pixels, using these LEDs. My experience with 64x8 LED displays, based on 4 x MAX7219 was not so good, because this "serial" method of needing to update everything at each time, required complete re-send of data to display, which was quite lagging, and won't allow to do some cool animation or smooth scrolling.

  4. #4
    Join Date
    May 2013
    Location
    australia
    Posts
    2,379


    Did you find this post helpful? Yes | No

    Default Re: How you directly access serially chained devices, like LEDS, shift registers, etc

    18F46K40 can run at least 4 of these 16x32 [512led] modules, possibly 6
    @25 fps(as a back ground task)


    two colour



    full 24bit rgb on esp8266
    Last edited by richard; - 22nd January 2022 at 11:11.
    Warning I'm not a teacher

  5. #5
    Join Date
    Feb 2013
    Posts
    1,078


    Did you find this post helpful? Yes | No

    Default Re: How you directly access serially chained devices, like LEDS, shift registers, etc

    It is not about what can run what, it is about efficiency.
    As another solution, I think, led decoders like HT16K33+discrete RGB LED or similar can be used.
    With APA102C, 1 shiftout statement updates color of 1 pixel (3 leds )
    In case of HT16K33, 3 shiftout statement will update color of 8 pixels (24 leds), so resulting speed will be 8/3=2.6 times higher.
    So I'm seeking for solution in that way.
    Of course, there are specialized RGB display modules and controllers, but their issue is, that they either have gigantic brightness, or their pixel distance is very sparse. And I want to make compact display for indoor use - discrete RGB leds are available in 0805 package, and APA102C/WS2812 are available in 1206 package.

  6. #6
    Join Date
    May 2013
    Location
    australia
    Posts
    2,379


    Did you find this post helpful? Yes | No

    Default Re: How you directly access serially chained devices, like LEDS, shift registers, etc

    With APA102C, 1 shiftout statement updates color of 1 pixel (3 leds )
    In case of HT16K33, 3 shiftout statement will update color of 8 pixels (24 leds), so resulting speed will be 8/3=2.6 times higher.
    apa102 16million colours, 32 level global power control
    HT16K33 8 colours no power control

    dmd panels come in p2.5 p3 etc to p10 the number is the pixel grid spacing in mm
    dmd panels are just shift registers multiplexed in 4 row pair strings there is no controller as such

    if you want the complexity of colour and power level control on a per pixel basis you need to store and transfer
    the info to represent it, there is no simple
    Warning I'm not a teacher

  7. #7
    Join Date
    May 2013
    Location
    australia
    Posts
    2,379


    Did you find this post helpful? Yes | No

    Default Re: How you directly access serially chained devices, like LEDS, shift registers, etc

    is your google broken

    "site: picbasic.co.uk/forum/ spi"

    "site: picbasic.co.uk/forum/ mssp"
    Warning I'm not a teacher

Similar Threads

  1. LCD's with Shift Registers, and LCDOUT
    By Darrel Taylor in forum PBP Extensions
    Replies: 11
    Last Post: - 3rd April 2015, 15:34
  2. Smart Star (how to use shift registers)
    By mackrackit in forum Code Examples
    Replies: 3
    Last Post: - 30th November 2008, 21:06
  3. Use the PIC 16f877 or 877A instead of shift registers.
    By tsanders in forum mel PIC BASIC Pro
    Replies: 4
    Last Post: - 27th October 2006, 18:23
  4. Shift Registers
    By shahidali55 in forum General
    Replies: 2
    Last Post: - 7th September 2006, 21:07
  5. Shift Registers For LCD Display
    By jetpr in forum mel PIC BASIC Pro
    Replies: 6
    Last Post: - 7th July 2006, 16:03

Members who have read this thread : 3

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts