1.1 --- a/README.txt Sat Aug 29 18:00:34 2015 +0200
1.2 +++ b/README.txt Tue Sep 27 00:36:33 2016 +0200
1.3 @@ -51,6 +51,23 @@
1.4
1.5 sudo make upload
1.6
1.7 +Configuring the Software
1.8 +------------------------
1.9 +
1.10 +By default, the software is configured for a circuit using 74HC273 flip-flop
1.11 +integrated circuits. In the Makefile, the CIRCUIT variable is set as follows:
1.12 +
1.13 +CIRCUIT = 74HC273
1.14 +
1.15 +To change this to support 74HC595 shift register integrated circuits, the
1.16 +variable is set as follows:
1.17 +
1.18 +CIRCUIT = 74HC595
1.19 +
1.20 +Clean the generated files and run make again after reconfiguring:
1.21 +
1.22 +make clean && make
1.23 +
1.24 Testing the Program
1.25 -------------------
1.26
1.27 @@ -270,12 +287,17 @@
1.28
1.29 Arduino can employ at most 14 digital pins (plus 5 switchable analogue pins),
1.30 whereas the Am29F010B requires 17 address pins, 8 data pins, plus 3 control
1.31 -pins to be utilised.
1.32 +pins to be utilised. (Note that digital pin 13 also drives an LED and pins 0
1.33 +and 1 are unavailable if the serial interface is being used.)
1.34 +
1.35 +Using 74HC273 Flip-Flops
1.36 +------------------------
1.37
1.38 One solution is to map the 3 control pins directly to the Arduino, then to
1.39 -channel address and data via 8 common pins to latches, and then employ two
1.40 -remaining pins to control the latches. When neither latch is selected, the
1.41 -data pins will be used to read or write data from the flash memory.
1.42 +channel addresses and data via 8 common pins, with addresses being stored in
1.43 +latches or flip-flops, and then to employ two remaining pins to control the
1.44 +latches. When neither latch is selected, the data pins will be used to read or
1.45 +write data from the flash memory.
1.46
1.47 In this scheme, A16 must be directly controlled by an additional pin, separate
1.48 from the latch-based mechanism. As a result, only 14 pins are needed on the
1.49 @@ -358,6 +380,68 @@
1.50 Q[7...0] = 74HC273 #0 Q[7...0]
1.51 OE# = 1
1.52
1.53 +Using 74HC595 Shift Registers
1.54 +-----------------------------
1.55 +
1.56 +Another solution is to map the 3 control pins directly to the Arduino, then to
1.57 +channel addresses via a single pin to a pair of shift registers, and then
1.58 +employ two remaining pins to control the shift registers. Eight separate data
1.59 +pins will be used to read or write data from the flash memory.
1.60 +
1.61 +In this scheme, A16 must be directly controlled by an additional pin, separate
1.62 +from the shift-register-based mechanism. As a result, only 15 pins are needed
1.63 +on the Arduino.
1.64 +
1.65 +74HC595 Pinout
1.66 +--------------
1.67 +
1.68 +QB 1 \/ 16 VCC
1.69 +QC 2 15 QA
1.70 +QD 3 14 SI
1.71 +QE 4 13 G#
1.72 +QF 5 12 RCK
1.73 +QG 6 11 SCK
1.74 +QH 7 10 SCLR#
1.75 +GND 8 9 QH'
1.76 +
1.77 +Arduino 74HC595#1 74HC595#2 Am29F010
1.78 +------- --------- --------- --------
1.79 +A5 CE#
1.80 +A4 OE#
1.81 +A3 WE#
1.82 +2 SCK SCK
1.83 +3 RCK RCK
1.84 +4 DQ3
1.85 +5 DQ2
1.86 +6 DQ1
1.87 +7 DQ0
1.88 +8 DQ4
1.89 +9 DQ5
1.90 +10 DQ6
1.91 +11 DQ7
1.92 +12 SI
1.93 + QA A0
1.94 + QB A1
1.95 + QC A2
1.96 + QD A3
1.97 + QE A4
1.98 + QF A5
1.99 + QG A6
1.100 + QH A7
1.101 + QA A8
1.102 + QB A9
1.103 + QC A10
1.104 + QD A11
1.105 + QE A12
1.106 + QF A13
1.107 + QG A14
1.108 + QH A15
1.109 +A2 A16
1.110 +5V SCLR# SCLR#
1.111 +5V VCC VCC VCC
1.112 +GND G# G#
1.113 +GND GND GND VSS
1.114 +
1.115 Pins
1.116 ====
1.117