Thanks Grumpy Mike!
Your explanation and some careful re-reading of the 4794 docs really helped clear it up conceptually for me. What you call an output latch – which I am sure is the standard nomenclature – Philips Semiconductors calls a "parallel output (open drain)".
One of the things I didn't get was that there is no internal clock in the 4794, but the clock is provided by the Arduino.
- The Arduino sends a HIGH or LOW to the 4794 Data Pin
- The Arduino sends a short pulse of LOW, followed by a slightly longer HIGH, then another LOW to the 4794 Clock Pin - effectively 'ticking' the clock - which tells the 4794 to accept the data into its Shift Register.
- If the Shift Register gets more than 8 bits of data, it passes the last bit in its register out the Serial Output to the next 4794.
- The Arduino does this repeatedly until all the data is sent.
- When all the data is sent, the Arduino:
- Turns off the Output Enable
- Sets the Strobe pin to HIGH
- Ticks the clock one cycle
- Sets the Strobe pin back to LOW
- This pushes the 8 bits of data in the Shift Resgister to the Storage Register.
- Then you turn the Output Enable back on, and the LED's display the pattern set by the bits.
I did some extensive commenting to my Arduino Code and drew up a circuit diagram on my course web-site Khazar.com. Perhaps it will help others who find themselves as befuddled as I did...
James