STP24DP05 IC queries
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2025-03-13 4:47 AM
Best SPI Routing Method for Double-Sided 16×128 LED Matrix Using STP24DP05
Project Overview
I am designing a double-sided 16×128 RGB LED matrix display using STP24DP05 LED drivers. The LED drivers are controlled using a single SPI bus from the MCU. Since the display consists of both a front and back panel, each panel consist of 16 STP24DP05 LED driver. I am considering two different approaches for routing the SPI and error signals and would like recommendations on the best solution.
Approach 1: Split SPI and Error Signals Using Buffers
In this approach, I use buffer ICs (74LV244) to split the SPI bus and drive both the front and back panels independently. Additionally, the error signal (ERR) from the STP24DP05 drivers is also split and handled separately for each panel. Each panel consist with 16 LED driver.
- SPI Control: The SCK, MOSI, MOSI and CS signals are buffered separately for the front and back panels.
- MCU Control: The MCU enables/disables the SPI buffers using GPIOs, ensuring that data is sent to only one panel at a time.
- Error Signal (ERR) Handling: The ERR signals from both panels are separately buffered and fed to the MCU, allowing independent error detection for each panel.
Please find attached block level representation for clear understanding.
Approach 2: Daisy-Chaining SPI and Error Signals Through Both Panels
In this approach, the SPI signals pass through all STP24DP05 drivers sequentially, first through the front panel, then continuing to the back panel, before looping back to the MCU for MISO feedback and error signal detection.
- Single Continuous Daisy Chain: The entire set of drivers is treated as one long chain for SPI and error signals. Total 32 LED drivers including front and back panel.
- MISO Handling: The last STP24DP05 in the chain directly connects its SOUT to MCU MISO.
- Error Signal (ERR) Handling: The ERR signal is daisy-chained from all drivers and sent to the MCU as a single error feedback line.
- All Signals from MCU cards goes to LED driver connector on LED panel PCB and these signals are connected to buffer and to LED driver IC.
Questions :
- Which approach is better for a large LED matrix display using STP24DP05?
- Does STP24DP05 support long SPI and error signal daisy chains reliably, or would signal integrity degrade over a large number of drivers?
- Is splitting SPI and error signals using buffers (74HC245) a recommended approach for large LED displays?
- Would reducing SPI clock speed help improve reliability in either approach?
- For error signal (ERR) handling, is it better to use separate error lines per panel or a single daisy-chained error line?
I would appreciate any guidance or recommendations based on experience with large SPI daisy chains or similar designs using STP24DP05.
Solved! Go to Solution.
- Labels:
-
Other hardware
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2025-03-14 7:13 AM - edited 2025-03-14 7:17 AM
Hi Peter,
Thanks, for your response.
LED Connection and Panel Configuration
In my design, I am using the STP24DP05 LED driver to control RGB LEDs. Each output of the STP24DP05 is connected to the cathodes of 8 RGB LEDs (R1, G1, B1), while the anodes of these LEDs are controlled via 8 MOSFETs. The gate of each MOSFET is driven by a 3:8 decoder/demultiplexer, ensuring that only one row is active at a time.
Thus, with a single STP24DP05, I can control:
- 8 outputs × 8 RGB LEDs per output = 64 RGB LEDs
The full panel consists of 16 rows, where each multiplexer output controls 2 rows. The scanning mode is determined as:
Total rows÷Simultaneously active rows=16/2=8\text{Total rows} \div \text{Simultaneously active rows} = 16/2 = 8Total rows÷Simultaneously active rows=16/2=8
This results in a 1/8 scanning mode.
LED Panel Arrangement
Each panel consists of:
- 2 (panels) × 16 × 64 LEDs = 16 × 128 LEDs on the front side
- The same configuration is used on the back panel
For a 16 × 64 LED panel, I use:
- 16 STP24DP05 drivers
- Each STP24DP05 controls 8 outputs × 8 LEDs per output = 512 RGB LEDs
- Two such panels result in 1024 RGB LEDs on the front side
Since the back panel has the same configuration, the total number of STP24DP05 drivers required for the entire display (front + back) is 32.
Note : As we are controlling LED anode switching using mux, at time only two rows will be on(one mux output is connected to two line).
Now can please relate my query above and share your feedback.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2025-03-14 6:11 AM
Welcome @clintt, to the community!
I'm not quite sure how you want to control 16x128 RGB LEDs with 2x16 STP24DP05? Is that 16x128 RGB for each front and back panel or for both together?
One STP24DP05 can drive up to 24 (individual) LEDs, i.e. 8 RGB LEDs. However, 16x128 = 2048 RGB LEDs are 6144 individual LEDs, for which you would need 256 STP?
Regards
/Peter
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2025-03-14 7:13 AM - edited 2025-03-14 7:17 AM
Hi Peter,
Thanks, for your response.
LED Connection and Panel Configuration
In my design, I am using the STP24DP05 LED driver to control RGB LEDs. Each output of the STP24DP05 is connected to the cathodes of 8 RGB LEDs (R1, G1, B1), while the anodes of these LEDs are controlled via 8 MOSFETs. The gate of each MOSFET is driven by a 3:8 decoder/demultiplexer, ensuring that only one row is active at a time.
Thus, with a single STP24DP05, I can control:
- 8 outputs × 8 RGB LEDs per output = 64 RGB LEDs
The full panel consists of 16 rows, where each multiplexer output controls 2 rows. The scanning mode is determined as:
Total rows÷Simultaneously active rows=16/2=8\text{Total rows} \div \text{Simultaneously active rows} = 16/2 = 8Total rows÷Simultaneously active rows=16/2=8
This results in a 1/8 scanning mode.
LED Panel Arrangement
Each panel consists of:
- 2 (panels) × 16 × 64 LEDs = 16 × 128 LEDs on the front side
- The same configuration is used on the back panel
For a 16 × 64 LED panel, I use:
- 16 STP24DP05 drivers
- Each STP24DP05 controls 8 outputs × 8 LEDs per output = 512 RGB LEDs
- Two such panels result in 1024 RGB LEDs on the front side
Since the back panel has the same configuration, the total number of STP24DP05 drivers required for the entire display (front + back) is 32.
Note : As we are controlling LED anode switching using mux, at time only two rows will be on(one mux output is connected to two line).
Now can please relate my query above and share your feedback.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2025-03-20 4:24 AM
Hi Peter,
Can you please share your responses.
Regards,
Clint
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2025-03-21 3:34 AM
If you set the thread to ‘Done’ with ‘Accept as Solution’, it is actually considered finished. However, you can easily set it to ‘Still Open’ with 'Not the Solution', in which case it may be looked at again.
Please note that the average LED current and therefore the average LED brightness decreases accordingly when multiplexing, in your case 1/8 (12.5%). As the STP24DP05 can drive max. 80mA per LED, this corresponds to a brightness of the LEDs that they would achieve with 10mA DC.
To your approaches:
- Approach 1: what you call splitting is multiplexing of SPI and ERR, which is no better in terms of timing than Approach 2. It would be better to consider this with two separate SPI, because each multiplexing increases the timing constraints.
- Approach 2: in this case, all 32 drivers are fully cascaded.
Depending on the desired refresh rate and approach, this results in a corresponding clock frequency, which can no longer reach the maximum value of 25MHz as the number of cascaded parts increases (see data sheet, table 6, footnote 1). I have not yet had such a case, but I can imagine that for 60fps or more you would be better off with two separate SPI/ERR than with your two approaches.
Regards
/Peter
