i have a project that im working on that requires 5bit bi-directional databus (parallel) and a 8 bit address bus.. to make matters worse I need to generate a strobe to say "data valid" when you read or write, and of course a r/w( w = LOW) line..
I think that I can use a few pins to do data out via a 74ls595 shift register for my address bus.. byte = deviceID(5bits) + channel (3bits)
Im having a lot of problems with the parallel bus stuff. any help please.. thanks
Cris
Proposed Structure(s)
reserved Rx Digital Pin 0 - PD0
reserved Tx Digital Pin 1 - PD1
and then use 5 digital pins for my databus they are called A - E
A to Ardunio Digital Pin 2 - PD2
B to Ardunio Digital Pin 3 - PD3
C to Ardunio Digital Pin 4 - PD4
D to Ardunio Digital Pin 5 - PD5
E to Ardunio Digital Pin 6 - PD6
RW to Ardunio Digital Pin 7 - PD7
ST to Ardunio Digital Pin 8 - PB0
spare 1 Digital Pin 9
spare 2 Digital Pin 10
// Address Bus
Data (pin 14) to Ardunio Digital Pin 12 - PB5
Clock (pin 11) to Ardunio Digital Pin 13 - PB4
Latch (pin 12) to Ardunio Digital Pin 11 - PB3
WRITE The arduino writes to the custom hardware
write cycle:
- address bus selected via a comparator on the hardware
- R/W(low)
- STROBE(low)
- then the data is put on the bus
- then STROBE(high).
shift out address via pins 11 - 13
output 5bits word via pins 2 - 6
output W (low) via pin 7
output ST (low) via pin 8
Read: The ardunio READS from custom hardware
- address bus selected via a comparator on the hardware
- R/W(high)
- STROBE(low)
- then the data is put on the bus
- then STROBE(high).
shift out the address via pins 11 - 13
output 5bits word via pins 2 - 6
output W (high) via pin 7
output ST (low) via pin 8