Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
06/21/06 21:00
Read: times


 
Msg Score: +1
 +1 Good Answer/Helpful
#118805 - I'd suggest you read the datasheet
Responding to: ???'s previous message
These parts are shift registers with, in one case, an input register, and in the other, an output register. Carefully study the datasheets and you'll see that they're intended to work together, if so desired.

How you clock the shift registers will determine how you should clock the parallel registers. If you want to transfer bytes, then you have to provide eight shift clocks per byte, and one register clock per byte. However, just dividing the shift clock by eight won't totally fill the bill. The PISO register must be loaded by clocking the input register at least one half-cycle before its contents must be loaded into the shift register. Then, at the precise moment when the shift register is in the state in which its last bit is at the final stage of the shift register, you must drive the shift-register-load clock high just before the shift clock occurs, but not so close to it that it fails to propagate the data from the input register. This is very tricky. For that reason, I recommend that you divide the shift clock, either in firmware or with a counter, and drive the shift-register-load clock with its carry-out ANDed with the positive phase of the shift clock. This will, unfortunately truncate the last bit. For that reason, I recommend you place a 74HC74 clocked with the SRCLK in series with your output data stream from the '597 so that all your bits will be of the correct length. This will generate a bit-time of latency but will alleviate the foreshortening of your data.

This process is not so much of a problem in the '595, since it acquires the data syncrhonously with the SRCLK, allowing you to sample the data on the edge opposite the one on which the '595 shifts the data.

The '595 is a serial-input, parallel-output device used for assembling bytes from a synchronous serial data stream and its driver clock. The '597 is a parallel-input, serial output device for disassembling bytes into a synchronous serial bit stream. Naturally, the shift clock must, in each case, be exactly synchronized with the rate at which the serialized data is being clocked at the receiver or transmitter, depending on whether it's the SIPO, or the PISO register.

I would not recommend connecting the parallel load pin of the the '597 to the ALE, since (a) the ALE occurs on each external bus cycle, and, (b) it's unlikely you'll be wanting to reload the shift register on every ALE. I could be wrong, of course, since I don't know exactly what you're doing.

A little more info would be helpful.

RE


List of 34 messages in thread
TopicAuthorDate
74hc595/597 connection with c51            01/01/70 00:00      
   Any available port pin            01/01/70 00:00      
   I'd suggest you read the datasheet            01/01/70 00:00      
      little more info as u require richard            01/01/70 00:00      
         start it simple and stupd            01/01/70 00:00      
   bit-bang            01/01/70 00:00      
      problem is ...            01/01/70 00:00      
         talking about standard '51...            01/01/70 00:00      
            That's why I want to "fix" it ...            01/01/70 00:00      
         there is'nt so why do you proselytize f            01/01/70 00:00      
            PC's are async, Mode-0 is not            01/01/70 00:00      
               I know that, but 99.17% of all '51 UART            01/01/70 00:00      
                  Do you know what UART means?            01/01/70 00:00      
                     A resounding NO. I use synchrono            01/01/70 00:00      
                        SPI??? Is that in the "bible"            01/01/70 00:00      
                           no, it is not - but it is a very well de            01/01/70 00:00      
                              You're well into nonsense, now, Erik            01/01/70 00:00      
                              you just ignore the real reason            01/01/70 00:00      
                                 This may be a valid topic, but not here.            01/01/70 00:00      
                                    Whenever you use shift registers for I/O            01/01/70 00:00      
                                       Doesn't SPI have a bunch of "features?"            01/01/70 00:00      
                                          yes, we ARE mixing, both threads touch s            01/01/70 00:00      
                                             I don't want to confuse the O/P ...            01/01/70 00:00      
                                                that would be wrong            01/01/70 00:00      
                                                   I think we've lost the O/P            01/01/70 00:00      
                           this may be the answer to your 'prayers'            01/01/70 00:00      
                              Thanks, but which prayers are those?            01/01/70 00:00      
                                 those for a fast synchronous communicati            01/01/70 00:00      
                                    I don't want to use a commercial chip            01/01/70 00:00      
                                       why not            01/01/70 00:00      
                                          If I want to use SPI, I'll build it in            01/01/70 00:00      
                  Do you know what UART means?            01/01/70 00:00      
                     ^%$#@! I didi it again!            01/01/70 00:00      
   Depends on your needs...            01/01/70 00:00      

Back to Subject List