What drive/buffer can be used for controlling 100 DP1903 by a MCU

Go To Last Post
25 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

1. Have to drive DP1903, 100 lights, each of 100leds , in sync as they glow

So that all looks same.

 

2. I tried making different MCU for each individual DP1903 leight(100 led in each). But after sometime they all go bit out of sync. Even if all MCU power is turn on at same time. The difference is low, but noticeable.

 

3. One solution I think if, I drive all DP1903 lights with single MCU. I think what will happen is all will be in sync as they glow, as driving MCU is only one.

is ther any buffer/drive available by which it can be done.

 

4. Any other solution

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Have one mcu as the master and the others slave to the master sync. Only needs one port bit on each mcu. The master sets the sync bit high at the beggining of a frame. The slave ones wait for the sync to go high before sending a frame. You should be able to maintain sync within microseconds indefinitely.

 

You can use one mcu - especially if it has specific hardware to assist - the Beaglebone Black is popular for many strings of WS2813 for this very reason. Or the popular method would be to use a fpga. I'm pretty sure this has been done many times before. Something like an Ultra96 would piss it in methinks.

 

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The MCU is limited, but what about this reference?

 

https://www.ejberg.dk/portfolio/...

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Haven't we been through this before:

 

https://www.avrfreaks.net/forum/understanding-dp1903-timing-ws2811-variant

 

Also note that there are (now) "intelligent" LEDs available with true SPI control - so no more need to mess about with bit-bashing special timing-critical interfaces:

 

https://www.avrfreaks.net/commen...

 

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

One hundred "lights" where each "light" is a string of 100 LEDs is a lot of lights.

 

Kartman's idea of making one master MCU that provides a 'tick' signal to all the rest of the MCUs is an excellent idea, but I think you will still need a buffer on that 'tick' signal, because fan-out to 100 MCUs is going to be too many for anything resembling signal integrity.

 

Something like a 74ALS240 is an excellent buffer chip (if you're using a 5Vdc rail) https://www.jameco.com/z/74LS240-Major-Brands-OCTAL-BUFFER-LINE-DRIVER-DIP-20_47141.html

but that only gets you eight outputs per chip.  Using four chips and four MCU output pins (hook all the inputs of one chip to one MCU pin) and they can probably drive four 'slave' MCUs per output, getting you well over 100 outputs.  You will want to test this on a bench before going wild making a PCB.

 

If you wanted to drive the "lights" directly with buffer chips, I'd be tempted to use something more like a ULN2003a https://www.jameco.com/z/ULN2003AN-National-Semiconductor-Transistor-Darlington-NPN-50-Volt-0-5-Amp-16-Pin-Plastic-DIP-Tube_1147178.html

 

which drive a lot harder (500mA!) for the final output 'to the lights' stages.  They only get you seven outputs per chip, and can be a little trickier to use (they can (and do!) go BANG sometimes).

 

Finally, and this might be the cheapest, is use individual MOSFETs for each light.  This takes more design.

 

Have fun, and fiat lux!*

 

S.

 

PS - I have no particular affiliation with Jameco, but they're typically cheerful to deal with as far as electronic bits vendors go.  The same or v. similar chips should be available from dozens of different places.  S.

 

* Latin for 'let there be light'.  S.

 

Edited to add PPS - you will need a LOT of decoupling capacitors on this board, lots of little ones (0.1uF everywhere, as close to the chips as you can get them, at least two per buffer chip and four more for the MCU, because there will be HUGE power loading spikes when 100 signals change state at once.  Throw around quite a few bigger ones, too, say 22uF (and you want tantalum ones here), every couple of inches (3cm or so), and make sure the power and ground, if not planes of their own (the best way) are very well-gridded with thick traces interconnecting everywhere.  Watch your power rails with a fast oscilloscope and when in doubt add more of the teeny little caps.  They're cheap.  S.

Last Edited: Tue. Sep 11, 2018 - 07:33 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

One hundred "lights" where each "light" is a string of 100 LEDs is a lot of lights.

There are 14,000 on the top "chandelier" and 800 on the street control panel here. wink

 

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I would rather attempt something great and fail, than attempt nothing and succeed - Fortune Cookie

 

"The critical shortage here is not stuff, but time." - Johan Ekdahl

 

"Step N is required before you can do step N+1!" - ka7ehk

 

"If you want a career with a known path - become an undertaker. Dead people don't sue!" - Kartman

"Why is there a "Highway to Hell" and only a "Stairway to Heaven"? A prediction of the expected traffic load?"  - Lee "theusch"

 

Speak sweetly. It makes your words easier to digest when at a later date you have to eat them ;-)  - Source Unknown

Please Read: Code-of-Conduct

Atmel Studio6.2/AS7, DipTrace, Quartus, MPLAB, RSLogix user

Last Edited: Tue. Sep 11, 2018 - 10:08 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

...as he usually does....

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

If the unnamed MCU has an unused TWI, one of the MCU's could act as master and

send an UPDATE command to the general call address.  Upon seeing the command,

each MCU would update their LED string, release the clock line, and then wait for a

new command.  The master would issue a new UPDATE command once the clock

goes high again.  Just need to add two pull-up resistors.

 

--Mike

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Vindhyachal Takniki wrote:
2. I tried making different MCU for each individual DP1903 leight(100 led in each). But after sometime they all go bit out of sync. Even if all MCU power is turn on at same time. The difference is low, but noticeable.

 

If you forgot to include any SYNC connections, then yes, entirely expected.

 

If you want to save cables/terminations and avoid data lines between the 100 strings, you can always get a little smarter around the supply handling of each module.

ie most primitive, but now-new-hardware, is to remove power and restart and design firmware to make that invisible.

Hopefully the time to drift, is longer than any repeat-time you might have stored in a sequence engine

A little smarter is to allow power supply bumps to sync advance-to-next , would use a width modulated pulse - SENT (Single Edge Nibble Transmission is one example 

This needs you have some means to measure Vcc at each module.

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I think I havent put my query right.

 

Suppose there are 100 individual DP1903. I have to drive them in parallel with a single MCU, so that when data reaches to 100 parallel DP1903, it is sync.

 

What buffer I have to place beteen one MCU out  &  each input of 100 parallel DP1903

Last Edited: Wed. Sep 12, 2018 - 05:52 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

They will all sync when you send the reset pulse at the end of an update. No need for extra hardware.

"Experience is what enables you to recognise a mistake the second time you make it."

"Good judgement comes from experience.  Experience comes from bad judgement."

"Wisdom is always wont to arrive late, and to be a little approximate on first possession."

"When you hear hoofbeats, think horses, not unicorns."

"Fast.  Cheap.  Good.  Pick two."

"We see a lot of arses on handlebars around here." - [J Ekdahl]

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Vindhyachal Takniki wrote:

I think I havent put my query right.

 

Correct

 

Vindhyachal Takniki wrote:

Suppose there are 100 individual DP1903. I have to drive them in parallel with a single MCU, so that when data reaches to 100 parallel DP1903, it is sync.

 

What buffer I have to place beteen one MCU out  &  each input of 100 parallel DP1903

 

You may have wire-load drive issues, and maybe receive issues,  but you are not going to have 'sync' issues that make data not in sync.

What cables and lengths are involved ? - a Multimeter should report the cable capacitance & even loop resistance.

 

If you want CHIP numbers,

bus candidates like LINbus would be chips like TLE7257 etc

CAN would be chips like IFX1050 etc 

Rx485 would be SP485 etc 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I have to drive them in parallel with a single MCU,

WHY? It seems to be like the WS2811 and they are designed to be connected in series so that you are driving just one at the beginning of the string and then each LED buffers the next.

And where are you going to get those things from? They don't seem to be available anywhere and even the datasheet has disappeared from the internet.

 

By the way is this linked to this one from LAST YEAR? https://www.avrfreaks.net/forum/...

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

Last Edited: Wed. Sep 12, 2018 - 06:24 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

This article[1] talks about SK9822 clones of APA102 LED's:

 

https://cpldcpu.wordpress.com/2016/12/13/sk9822-a-clone-of-the-apa102/

 

Actually, the way the update is implemented in the SK9822 makes more

sense than in the APA102, because it allows to update all LEDs at once

instead of the staggered update of the APA102.

 

The SK9822 LED's might be more suited to your project due to this feature.  Also

the update signal is SPI which is easier to deal with than the WS2812 timing.

 

--Mike

 

[1] via El Tangas - comment #25 in the topic linked in #4 above

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

@js,  100 parallel DP1903.  (Each parallel, DP1903 have 100 leds in series, I have omited this, as it was causing confusion here)

 

There are big event places, where led strings are connected, all should give same led glow & sequence.

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I don't know about DP1903, but apparently they are similar to WS2811.  The latter chip takes 30 us to receive a data packet.  100 in series will take 3 ms.  Do you REALLY need better than 3 ms synchronization from head to tail on each strip?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

As I mentioned above WHERE are you going to buy them from? They don't seem to be available anymore.

 

So find out how many "TTL/CMOS loads" each LED takes and buffer the signal with something like a 74HC365 or 74HC367, they can drive "15 LSTTL Loads" but as most likely the LEDs input is CMOS it will drive a lot more.

 

You will have to keep in mind the capacitance presented to each buffer, maybe look at the output with a scope.
 

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

There's two possible designs here.  One MCU that runs everything (and thus stays in sync) or 100 MCUs each of which run one strip but get out of sync.

 

For 100 MCUs you make one make a 'master sync' signal that triggers all the rest of them.  That sync signal will need buffers!  You need four 74ALS240.  74ALS241, 74ALS244, and 74ALS245 will work too.  You can also use HCT (but not HC!) versions of the buffer chips.  These chips will not solve the sync problem on their own!  They still need one MCU to create a 'master timing tick' that triggers them all.

 

I don't think an 74HCT245 is going to be happy about driving lots of strings by itself.

 

For driving lots of strings off of one MCU you need things like the ULN2003.  Test one and find out how many strings it can drive, then you'll know how many of them you need.  You can connect all seven inputs to one MCU pin (but NOT all 100 inputs!  You need at least five, ten would be better, MCU pins.)

 

There's some chip numbers.  Jameco has most of them, Digikey has more.

 

Or build a tree.  One MCU pin drives the eight inputs of a 74HCT245, and those eight outputs each drive seven inputs to eight different ULN2003 chips and each ULN2003 output drives two LED strings.  Voilà, 112 output strings from one MCU pin.  Test it first. 

 

Have fun.  S.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ULN2003

I don't think that the ULN2003 will be able to drive the DP1903 because it's an open collector chip.

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Yep.  Needs pullups.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Vindhyachal Takniki wrote:
I tried making different MCU for each individual DP1903 leight

 

When you say "individual DP1903", do you mean a strip with 100 RGB LEDs and 100 controllers in series chain? So you have 100 strips and 100x100 = 10 000 controllers in total?

 

edit: I guess the question is if each of the 10 000 LEDs is supposed to be addressable individually.

Last Edited: Wed. Sep 12, 2018 - 10:12 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

js wrote:

ULN2003

I don't think that the ULN2003 will be able to drive the DP1903 because it's an open collector chip.

+1 (even with pull-ups; it needs push-pull drivers)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

    How far apart are the inputs for these 100 strips of 100 LEDS each ?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

If you want high-power push-pulls you can get everything from a 75153 to an LMD1820.  S.