Multiplexing code help

Hi there,

I need a bit of help/advice. I have a circuit that uses 2 BU2090 12 bit serial-> parallel multiplexer ICs. One of them is being used to drive 2 x 7 segment LED and the other one is driving separate LEDs.

The 2 issues I have are :

  1. 2 of the bits from the second BU2090 are used to control 2 segments on one of the 7 segment LEDs (not my circuit idea)

  2. Both the BU2090 are 12 bit registers.

Can anyone suggest the best way to approach this? I've managed to code for a single BU2090 by using 16-bit int and then just using a shift to ignore the last 4 bits before sending 12 bits to the BU2090, and that works ok. But I know I'm going to need to eventually send two 12 bit words to each ICs concurrently to get everything working the way its supposed to. I suspect getting the code for the 2 x 7 segment LEDs to work correctly with those separate bits from the 2nd BU2090 will be a challenge.

Any help/advice/reading material/links would be most appreciated.

Send 3 bytes out to the 2 registers, each will use the 12 bits needed.

Use an unsigned long int (32-bit) to prepare the data using shifting & masking. Then send 12 bits out to each chip.

These chips are a PITA: no select pin, so data and clock lines cannot be shared, and no serial data out pin, so chips cannot be chained.

I guess the clock line can be shared, with a dedicated data line for each chip, but that does require a more complex process of shifting data out simultaneously and in parallel to multiple chips, as Damo76 has already realised.