1.1 --- a/README.txt Sun Aug 09 01:10:40 2015 +0200
1.2 +++ b/README.txt Sun Aug 09 19:08:15 2015 +0200
1.3 @@ -42,8 +42,13 @@
1.4
1.5 Issuing read commands permits the testing of addresses in the device:
1.6
1.7 -R0000 (reads from the first location, 0x0000, residing in sector 0)
1.8 -R7fff (reads from the final location, 0x7fff, residing in sector 3)
1.9 + location sector
1.10 +R0000 0x0000 0 (the first location in the device)
1.11 +R00000 0x0000 0 (all 17 address bits indicated)
1.12 +R7fff 0x7fff 1 (the final location in sector 1)
1.13 +R07fff 0x7fff 1 (all 17 address bits indicated)
1.14 +R10000 0x10000 4 (the first location in sector 4)
1.15 +R1ffff 0x1ffff 7 (the final location in the device)
1.16
1.17 Uploading and Testing Images
1.18 ----------------------------
1.19 @@ -78,11 +83,12 @@
1.20 -----------------
1.21
1.22 Each sector is 16 kilobytes long, which corresponds to a 14-bit address range
1.23 -(0x0000 to 0x3FFF). The Arduino interface described below supports 16-bit
1.24 -addressing (A0...A15), permitting access to four sectors (at 0x0000, 0x4000,
1.25 -0x8000 and 0xC000), leaving A16 grounded and thus not accessing the upper four
1.26 -sectors in the device. However, A16 could be connected to VCC to access the
1.27 -upper four sectors.
1.28 +(0x0000 to 0x3FFF). The Arduino interface described below supports 17-bit
1.29 +addressing (A0...A16), permitting access to eight sectors (at 0x0000, 0x4000,
1.30 +0x8000, 0xC000, 0x10000, 0x14000, 0x18000 and 0x1C000). The simple mapping from
1.31 +a ROM cartridge to the device leaves A16 grounded and thus unable to access the
1.32 +upper four sectors in the device. However, A16 could be connected to VCC to
1.33 +access the upper four sectors.
1.34
1.35 Device Compatibility
1.36 ====================
1.37 @@ -209,18 +215,18 @@
1.38 Arduino Interfacing
1.39 ===================
1.40
1.41 -Arduino can employ at most 14 digital pins, whereas the Am29F010B requires 17
1.42 -address pins, 8 data pins, plus 3 control pins to be utilised.
1.43 +Arduino can employ at most 14 digital pins (plus 5 switchable analogue pins),
1.44 +whereas the Am29F010B requires 17 address pins, 8 data pins, plus 3 control
1.45 +pins to be utilised.
1.46
1.47 One solution is to map the 3 control pins directly to the Arduino, then to
1.48 -channel address and data via 8 common pins to latches, and then employ the
1.49 -remaining pins to control the latches.
1.50 +channel address and data via 8 common pins to latches, and then employ two
1.51 +remaining pins to control the latches. When neither latch is selected, the
1.52 +data pins will be used to read or write data from the flash memory.
1.53
1.54 -Two pins can be used to select the latches, and when neither latch is
1.55 -selected, the data pins will be used to read or write data from the flash
1.56 -memory.
1.57 -
1.58 -As a result, only 13 pins are needed on the Arduino.
1.59 +In this scheme, A16 must be directly controlled by an additional pin, separate
1.60 +from the latch-based mechanism. As a result, only 14 pins are needed on the
1.61 +Arduino.
1.62
1.63 74HC273 Pinout
1.64 --------------
1.65 @@ -267,7 +273,7 @@
1.66 Q5 A13
1.67 Q6 A14
1.68 Q7 A15
1.69 -GND A16 (not used)
1.70 +A2 A16
1.71 5V MR# MR#
1.72 5V VCC VCC VCC
1.73 GND GND GND VSS
1.74 @@ -279,6 +285,7 @@
1.75 74HC273 #1 D[7...0] = A[7...0]
1.76 74HC273 #1 CP = 0; 74HC273 #2 CP = 1
1.77 74HC273 #2 D[7...0] = A[15...8]
1.78 +Am29F010 A16 = A[16]
1.79
1.80 Write Data
1.81 ----------