??? 04/23/05 13:31 Read: times |
#92233 - I agree - Just Bit Bang it. Responding to: ???'s previous message |
There are no 8051's that I know of that have a "wait state capability" This is why there is no WAIT/ or READY/ line on this type of processor.
The scheme to gate the processor clock is a VERY bad idea. There are far too many things that could go wrong with the communications with the remote chip and end up making the processor clock being OFF. There are also many issues related to what happens if you cut off the clock at the wrong moment and feed a very narrow pulse to the processor which would be out of specification. I would follow Neil's suggestion and hang the peripheral onto a string of port pins and write a software routine to modulate the port pins into the necessary waveforms to make the I/O cycles to the peripheral work. Doing this the wait condition simply becomes a polling of an input pin. (This is exactly the scheme used by 100's of 8051 users to connect HD44780 type LCD modules to their microcontrollers). A huge advantage of this scheme is that the software can very easily deal with peripheral wait timeout issues and take direct action to reset the peripheral. Do note that there are some 8051 variants that have an external bus interface that are programmable to support extended timing for slower peripherals. (The SiLabs C8051F020 and the Dallas 80C320 come to mind). Sometimes it is advantageous to use the native bus mode to a peripheral. It is not uncommon that these same parts can work with extended timing so as to permit it to be possible to ignore the READY/BUSY signal from the peripheral. A detailed read of the data sheet for the peripheral can give you the information to decide if this is feasible with your peripheral device. Michael Karas |
Topic | Author | Date |
Mot Type I'face, /DTA delay help - 89C52 | 01/01/70 00:00 | |
Just use the ports | 01/01/70 00:00 | |
Not enough IO ports! Must Multiplex | 01/01/70 00:00 | |
I agree - Just Bit Bang it. | 01/01/70 00:00 | |
Eh?! | 01/01/70 00:00 | |
You can do both | 01/01/70 00:00 | |
Thanks, will 'bit bash'![]() | 01/01/70 00:00 |