Jeff701
Newbie level 3
- Joined
- Apr 15, 2010
- Messages
- 4
- Helped
- 0
- Reputation
- 0
- Reaction score
- 0
- Trophy points
- 1,281
- Activity points
- 1,364
The question: How many SPI data inputs can I drive from a single shift register's serial data output pin? I figure that they're likely to be high-impedance inputs, so the loading should be minimal. But the data output pin is not meant to source much power either. I didn't see anything in this datasheet concerning this sort of hookup. The only spec I see is that the serial-out pin can source 1mA.
(I didn't connect the rest of the control lines on this, partly for clarity.)
The background:
I've got a few different designs of large 7-segment display that need to be updated, and they've got varying numbers of LEDs in each segment.
I'm using ST Micro's STP08CP05 drivers, specifically the thermally-enhanced TSSOP device. It's a serial-in/parallel-out shift register, but it has constant-current devices integrated into the outputs. It works similarly to a standard 74595 shift register: Clock, data, latch, output-enable...it's a nice little device. Easily-set constant current output, and elevated operating temperatures it can dissipate up to 1.25W.
In the past, in order to accommodate larger numbers of LEDs in each segment, we've chained these devices in series to give both the required number of outputs and adequate thermal dissipation. One device's serial output was tied to the next one's serial input to form a chain of devices.
Problem is, the code that had to get loaded onto the PIC chip varied from one design to the next, since the number of bytes it had to send out would vary. (To display the digit "2" for example: The first shift register would have to turn on 4 outputs, the second would turn on 5, and the third would turn on 2 outputs. This had to be loaded up as a character map.)
I want to be able to unify the programming so that all displays, regardless of the number of LEDs in each segment, can use the same code.
This means that I need to mirror the same data across multiple devices.
If I do that, I can use OUT0 in each device to power some of the LEDs in Segment A.
OUT1 in each device will power some of the LEDs in Segment B, and so on. The PIC chip can run the same code, regardless of if I have 4 LEDs in a segment, or 24, and I don't have to worry about blowing past the thermal limits of the device.
(I didn't connect the rest of the control lines on this, partly for clarity.)
The background:
I've got a few different designs of large 7-segment display that need to be updated, and they've got varying numbers of LEDs in each segment.
I'm using ST Micro's STP08CP05 drivers, specifically the thermally-enhanced TSSOP device. It's a serial-in/parallel-out shift register, but it has constant-current devices integrated into the outputs. It works similarly to a standard 74595 shift register: Clock, data, latch, output-enable...it's a nice little device. Easily-set constant current output, and elevated operating temperatures it can dissipate up to 1.25W.
In the past, in order to accommodate larger numbers of LEDs in each segment, we've chained these devices in series to give both the required number of outputs and adequate thermal dissipation. One device's serial output was tied to the next one's serial input to form a chain of devices.
Problem is, the code that had to get loaded onto the PIC chip varied from one design to the next, since the number of bytes it had to send out would vary. (To display the digit "2" for example: The first shift register would have to turn on 4 outputs, the second would turn on 5, and the third would turn on 2 outputs. This had to be loaded up as a character map.)
I want to be able to unify the programming so that all displays, regardless of the number of LEDs in each segment, can use the same code.
This means that I need to mirror the same data across multiple devices.
If I do that, I can use OUT0 in each device to power some of the LEDs in Segment A.
OUT1 in each device will power some of the LEDs in Segment B, and so on. The PIC chip can run the same code, regardless of if I have 4 LEDs in a segment, or 24, and I don't have to worry about blowing past the thermal limits of the device.