Description of assembly:
The system is a welcome voice, installed near a door, he delivers the visitor a welcome message.
The assembly is based on the use of a memory that will retain in digital form a sound of any kind (voice, music) a few seconds, and restore to each solicitation.
Assembly. In the center, the EPROM that contains the message.
The assembly consists of five main blocks functionally:
- The clock signal generator.
- The meter.
- Memory.
- The digital / analog converter (ADC).
- The amplifier low-frequency (LF).
The counter clocked by the clock cycles through the successive addresses of memory (about 11,000 addresses per second). The data in the output of the memory correspond to the amplitude of the recorded sound, moment by moment, these amplitudes, stored in digital form, are converted to an analog (voltage) by the NAC, this voltage is amplified (BF amp) and then processed and retrieved in the form of the audio speaker. We will analyze in detail the operation of the entire section in the [scheme].
The message is contained in an EPROM of 65,536 words of 8 bits. Besides the presence of fine tracks from between the pins of integrated circuits, the major difficulty of this achievement is being able to have available an EPROM programmer, to load the contents of memory and this system comes in the form of a housing with a support zero insertion force, which will be placed in program memory and is usually connected to the PC via a cable connected to the parallel port:
The programmer of EPROMs
Appropriate software to read or program the memory contents (after choosing the type of EPROM, the manufacturer and therefore the associated algorithm and programming voltages). An intermediate buffer zone associated with a hex editor, can edit any of the values before programming, making possible the direct use of the files 'sound' WAV, manually purging in bytes from start characterizing the format (see section [Messages] for details).
EPROM technology is unique in that once programmed, the memory can be erased by exposure to ultraviolet radiation for normal use, the window of silica must be masked by a label, it will be removed at the time the deletion. This involves the use of other specialized equipment, the EPROM eraser UV tube:
EPROM Eraser UV tube
The photo above shows an eraser kit for erasing EPROMs up to 11 concurrently, each memory, devoid of its protective label, is placed over an opening, the legs in the air, the window in silica exposed to UV radiation of the tube (about 15 min). Please note, UV products are extremely harmful to the eyes, you should keep watching them. The new trade EPROMs are sold blank, this device is only necessary if you want to change a message without buying an already programmed EPROM, or if you use EPROMs recovery, we often found on the used computer equipment, BIOS card 'mother', or any other microprocessor-based system, just check that it is for 27,512, it is a very economical solution, one can thus build up an entire message store.
The EPROMs usually contain computer code that is to say a series of basic instructions in binary in the language of the microprocessor which they accompany, and sometimes they can be tables of values: for example the frequencies channels in a radio transmitter, or the text to display if a dialogue is provided with the system user, we can say that we use these memories in a way a bit "hijacked". For information, note that an audio CD contains the equivalent of more than 10,000 EPROM type 27512 (650 MB against 64 kb).
Buying a EPROM programmer and eraser only possible to achieve this arrangement is not justified because they are fairly expensive equipment, here are some ways to program your memory:
- a good friend or neighbor a few instruments handyman ...
- a technical school, or an FCC science department with a 'Electronics' and Teachers' fun ...
- the merchant of your complacent favorite electronics store ...
- a club-mail ...
- Amateur radio in your area: a jump in radio club near where we should find a handyman equipped, with a little luck ...
- A small electronics repair, or small business sector (which we develop prototypes, which are made of maintenance, etc ...)
- Speaking to a store that supplies electronic components such delivery for a fee (see the most famous of which are in journals pub) ...
- Ultimately, addressing the author of this page, but having tried a little here and there before (o)) ...
In all cases, particularly when there is very well equipped and that we are forced to rely on the goodwill of people, it is best to stand with his 1m44 disk containing the file already retired and severed, in binary format. BIN with size of 65536 bytes and one (or two) 27C512, to minimize the operations and get to the point ...
We here in the next step of the implementation; the various functional blocks shown in the "description of the assembly" was followed by a set of electronic components performing these functions, we chose high-current components, readily available and reasonably priced, exclusive of any voluntary dedicated circuit (which would lose its pedagogical mount), if your retailer can not provide you with 30k resistors (possible because this value is not standardized in the series 'E12' The most common, but in the series 'E24'), then put two resistors in series 15k, rather than using an approximation:
- [15k] - [15k] - <=> - [30k] -
- [15k] - [15k] - <=> - [30k] -
Achievement of different parts of the assembly:
- The clock signal generator is a classic NE555, associated with few peripheral components usual, a setting has been provided (AJ1) to allow different sampling rates.
Recall that Fe = 1 / [0.7 x (2 R23 xAJ1 xR24 2) x C1]
where, for 47,000> AJ1> 0, the following range: 4386Hz <Fe <30702Hz.
(On our prototype of 4.2 to 27.3 kHz, the adjustment is being very easily in the ear).
The NE555 is extremely common, so we will not detail here the internal schema or astable operation, which could not be more conventional, and the interested visitor will find all sorts of descriptions on the Internet (see search engines) ... - The 17-bit binary counter consists of two 12-bit counters CD4040 cascade, the outputs Q5 to Q11 of the second 4040 (IC2) are not used, the first 16 outputs allow scrolling of 65,536 addresses (bytes) of memory ( 2 to the power 16 = 65 536), exit 17 (Q4 IC2) provides information for end of message: passing in a sense, it prohibits the fronts down to increment the clock input of IC1. The two diodes D2 and D3 and resistor R21 constitute a "OR Logical" cable, shown in the schematic diagram of the [Description].
- A few words on the button: it can be a sensor rather crude: two pins on the door frame, an aluminum foil glued to the door making contact when it is closed, at the opening, contact breaks, the counters may be incremented, the memory is enabled, the message is read. It is best to leave a blank of 0.2 s at the beginning of message to compensate for the absence of anti-bounce circuit and allow the visitor time to go, we must also ensure that the door will remain open for at least the length of the message.
- Memory: as noted earlier, this is a type 27C512 CMOS EPROM, 64 kB (512 kbps), the pattern reveals its 16-bit address and 8 data bits. The EPROM is still in "reading", the pin 22 (OE \: Output Enable) is forced to logic "0". The memory is set to high impedance as the pushbutton is pressed (Chip Select CS \ "1"). The choice of CMOS technology to maintain the overall consumption of the installation in a very reasonable limit (9V battery operation), approximately 30 mA or less depending on the volume control, against about 80 mA for NMOS 27512 ( depending on the model).
- The D / A converter: the output of the memory are modeled by voltage sources equal to Vcc or 0 depending on the state of the output under consideration, (Exit n, bn bit 0 or 1, the output voltage Vn = bn. VDC):
- Rs is calculated very easily by replacing the source by son: Rs = R. (5 / 3)
- The calculation of Vs is more complicated; proceed by superposition:
The value Vs overall assembly is equal to the sum of the respective influences of each source in isolation.
In short: Vs = Vs1 + Vs2 Vs0 + + + VS3 VS4 VS6 + + + VS5 VS7.
VS7 for example: value taken by vs by replacing all sources by son, except the source (b7.Vcc): VS7 = (b7.Vcc) x (1 / 3).
By doing the same with the other sources, we have:
VS6 = (1 / 2) x (b6.Vcc) / 3,
VS5 = (1 / 4) x (b5.Vcc) / 3,
VS4 = (1 / 8) x (b4.Vcc) / 3,
VS3 = (1 / 16) x (b3.Vcc) / 3,
Vs2 = (1 / 32) x (b2.Vcc) / 3,
Vs1 = (1 / 64) x (b1.Vcc) / 3,
Vs0 = (1 / 128) x (b0.Vcc) / 3.
Where: Vs = (1 / 3). Dc. (B7 + b6 / 2 + b5 / 4 + b 4 / 8 + b3/16 b2/32 + + + b1/64 b0/128)
Is: VS = 2 / 3 x x Vcc/256 (b0 2. B1 4. B2 8. B3 16. B4 32. B5 64. B6 128. B7)
For example, with the byte in HEX $ C8, which is '11001000 'in binary:
with b3 = b6 = b7 = '1 ', b4 = b5 = b2 = b1 = b0 = '0' and Vcc = 5 V,
Vs = (2 / 3). (5 / 256). (128 +64 +8) = 2.604 V - Vs Rs feeds through, the whole [C2, C3, AJ2]
- Rs and C2 form a low pass filter that removes high frequencies (near and beyond the sampling frequency).
- AJ2 C3 form a high pass filter whose role is essentially to remove the DC component in the DAC output (in the absence of sound, the output of the memory is stable at around $ 80, giving about: Vs = 1 , 67V).
- The calculation of the total Rs, C2, C3, AJ2 is not insurmountable, but still a bit tedious, so I do not go into here, the simulated bandwidth of the bandpass filter obtained preserves just near the frequencies of the voice (we are not in the field of hi-fi!).
- The amp LF and the speaker: we had a little amp BF cheap, with a minimum of peripheral components, which have proven: our choice was an LM386, the assembly diagram is taken from application note circuit, a small speaker low impedance recovery should very well (a few ohms, 1 Watt, and 5 to 8 cm in diameter, non-critical values!).
Note: the documentation in PDF format (in English) of different integrated circuits used in this installation are available on the Internet, and easy to find via your favorite search engines ...
in binary files. "BIN":
WAV_BIN.EXE
Version 1.2
+ Sources
(192 kb)
List of components:
- Capacitors (voltage of 12V or more):
- C1: 1 x 3.3 nF, mylar.
- C2, C5, C6: 3 x 10 nF, ceramic.
- C3: 1 x 220 nF, mylar.
- C4: 1 x 47 nF mylar.
- C7, C8, C9: 3 x 10 uF, 16V, tantalum.
- C10: 1 x 100 uF, 16V, radial, chemical (not too big!).
- C11: 1 x 10 uF, 16V, radial, chemical.
- Resistors (1 / 4 W, 5%):
- R1, R2, R3, R4, R5, R6, R7, R8, R9, R10: 10 x 30 k ohms (if possible, to 1%).
- R11, R12, R13, R14, R15, R16, R17, R18: 8 x 15 k ohms (if possible, to 1%).
- R19: 1 x 10 ohms.
- R20: 1 x 47 ohms.
- R21: 1 x 2.2 k ohms.
- R22, R23, R24: 3 x 4.7 k ohms.
- ICs / Semiconductors:
- IC1 IC2: 2 x CD 4040.
- IC3: 1 x NE 555.
- IC4: 1 x 386 LM.
- IC5: 1 x 27C512 (EPROM 64 KB, CMOS if possible).
- A 5V regulator type 7805.
- D1: 1N4001 or 1N4004 diode 1 or 1N4007.
- D2, D3: 1N4148 or 1N914 diodes 2.
- Misc:
- An 8 ohm speaker (say a few ohms, 1 Watt, and 5 to 8 cm in diameter, non-critical values!).
- B1, B2, B3, B4: 4 double terminals. B2, B3 and B4 will be nested to form a 6 terminal blocks, we can replace them with two terminal triple.
- AJ1, AJ2: 2 adjustable 47 k ohms, horizontal, small.
- To IC1 IC2: 2 Tulip supports 16-pin (optional).
- For IC3, IC4: 2 Tulip supports 8-pin (optional).
- For IC5: a support pin 28 tulip.
- For 7805: 1 + 1 nut screws (diameter 3 mm).
- A clip for 9V battery.
- 9V battery.
- A push button.
- A toggle switch (toggle).
- The three straps (in blue on the layout diagram) consist of a small piece of bare wire.
- Possibly: plate, drill bits, welding, revealing, ferric chloride, wire cables, housing, screws and nuts, etc..
Realization of the circuit:
If you own the software ARES Lite, click the left icon, and save the file 'Vocal28c.ZIP', then extract the archive file 'Vocal28c.LYT', and print directly from ARES.If this is not the case, load the file 'Typon.GIF' by clicking the right icon, then save it to disk. Then print from a software capable of printing an image according to the dimensions set by the user and can use Microsoft Photo Editor (included with the Pack Office), the older version of Paint Shop Pro 3.11 available the net, or any other utility, or possibly with Word, inserting the drawing of the circuit and by adjusting its dimensions (shortcut menu: 'Image Format'). Configure the printer in a high quality mode, to obtain a good contrast. To indicate the dimensions are as follows (scale 1): - in pixels: 2600 x 1400, resolution 600 DPI
- dimensions in inches: 4.33 x 2.33
- dimensions in cm: 11 x 5.9
It remains to achieve a good quality laser copy on a transparency. One may also give some special slides directly to the printer (laser or inkjet). An alternative is to make the paper transparent to UV, spray a product such as "Sheer" by KF, but some tracks are very fine, passing between the legs of integrated circuits, I do not recommend this method too this case. I advise instead to take two transparent and carefully assemble them against each other with the adhesive, making them coincide for an artwork at the very opaque black areas.
By providing a nice little room, a plate of 7 cm x 12 cm largely sufficient. Beware, the artwork is presented on the component side, that means his face is pressed against the inked copper. After passing by insolation and in the ferric chloride, the result of the draw is imperative to be spotless, brownouts or remaining copper between the tracks:
Finally, you may want to tin the board (cold or hot), then comes the stage of drilling, with bits of different diameters depending on the components: vein as, say typically 0.8 mm for resistance , capacitors, supports, D2 and D3, 1.2 mm or more terminals for the 7805, and D1 adjustable, and 3 mm for four or six screws, as well as the regulator.
Personalized voice messages:
To create the voice message, here are some tips:
The memory can contain 65,536 bytes ("samples"), then it is to find a good compromise between:
The memory can contain 65,536 bytes ("samples"), then it is to find a good compromise between:
- the sampling frequency Fe (the number of samples per second), which increases both the quality.
- the length of the message (which decreases especially since Fe is great).
- hardware capabilities of the card 'his', with my card:
- Fe = 11 025 Hz, duration = 5.94 seconds, the quality is quite acceptable and sufficient duration.
- Fe = 22 050 Hz, duration = 2.97 seconds, the quality is good, but the message is short.
- Fe = 44 100 Hz, duration = 1.48 seconds, the message is too short, and there, the amp BF, bandpass filter, and the resolution (8 bits) do not benefit from the improved quality: solution excluded automatically.
- Some cards offer the following values: 4000 Hz, 8000 Hz, 16000 Hz utilities can also convert WAV recorded messages via software, for example, 22,050 Hz, these other values (but not necessarily respect the Shannon theorem which distortions possible!): simply use the Sound Recorder Win95/98 (Sndrec32.exe), "Save As" ...
With these remarks, make your choice, for my part I choose the more likely a value of 11,025 Hz or 8000 Hz (telephone quality) if the message is long. AJ1 then set to the ear, depending on the frequency.
Regarding the registration:
Make the most of the software that came with your sound card: adjustment of different gains for the best possible dynamic, without saturation, but enough so that the meter indicates a variation in the almost entire range (not too much into the red !).
To record your voice (Mic), close enough to speak to the microphone, but without necessarily directing it towards your mouth to avoid breathing.
In the case of a different source, go through the entry 'Line In', by providing the correct cable:
- Video: the cable is highly standard (3.5 mm diameter stereo plug to two RCA plugs, sometimes called CINCH, I have assumed that the HI-FI better than I know this duo red and white).
- Radio, Walkman, tape: make a cable connecting the stereo plug input 'IN' to form a mono or stereo as the case always in diameter 3.5, set the best volume of the source.
Make the most of the software that came with your sound card: adjustment of different gains for the best possible dynamic, without saturation, but enough so that the meter indicates a variation in the almost entire range (not too much into the red !).
To record your voice (Mic), close enough to speak to the microphone, but without necessarily directing it towards your mouth to avoid breathing.
In the case of a different source, go through the entry 'Line In', by providing the correct cable:
- Video: the cable is highly standard (3.5 mm diameter stereo plug to two RCA plugs, sometimes called CINCH, I have assumed that the HI-FI better than I know this duo red and white).
- Radio, Walkman, tape: make a cable connecting the stereo plug input 'IN' to form a mono or stereo as the case always in diameter 3.5, set the best volume of the source.
Make as many tests as necessary, the result depends largely on the quality of the recordings!
In the end you get a WAV file in PCM, 8 bit, mono, sampled at the desired frequency, size does not exceed 65536 bytes, to waive various alternative formats WAV compressed, they are not compatible with the system.
In the end you get a WAV file in PCM, 8 bit, mono, sampled at the desired frequency, size does not exceed 65536 bytes, to waive various alternative formats WAV compressed, they are not compatible with the system.
Transformation of sound files. "WAV"
It would be theoretically possible to directly program the WAV file in the EPROM, but it has two problems:
- The bytes from the beginning used to define the WAV format , and have nothing to do with the samples.
- The end of bytes of memory (because the file does probably not stack 65536 bytes), which remain to FFh (EPROM area of remaining a virgin).
These bytes will result in cracking at the beginning and end of message: they must be replaced by value 80h bytes corresponding to a signal of zero (below 80h = negative signal, over 80h = positive signal ).
- The bytes from the beginning used to define the WAV format , and have nothing to do with the samples.
- The end of bytes of memory (because the file does probably not stack 65536 bytes), which remain to FFh (EPROM area of remaining a virgin).
These bytes will result in cracking at the beginning and end of message: they must be replaced by value 80h bytes corresponding to a signal of zero (below 80h = negative signal, over 80h = positive signal ).
1) The manual method:
If you do not have a hex editor, you can do this: Load with the EPROM programmer software, the WAV file in the buffer (buffer), and hold the end address, then edit the buffer :
- Go to the address 0000h, replace the values of the first byte corresponding to the header with the value 80h (structure of the header: see hypertext link located above).
- Then go to the end address (and even a little earlier, because some publishers WAV comments pollute the rest of their files) and fill up the address FFFFh with the value 80h.
The values of parasites start and end are easy to recognize: the presence of 00h and FFh, a succession of disparate values (B6h, 03h, A8h, etc.).
This requires that the software allows the modification of the buffer (this is usually the case), then the controls are fairly simple.
If you do not have a hex editor, you can do this: Load with the EPROM programmer software, the WAV file in the buffer (buffer), and hold the end address, then edit the buffer :
- Go to the address 0000h, replace the values of the first byte corresponding to the header with the value 80h (structure of the header: see hypertext link located above).
- Then go to the end address (and even a little earlier, because some publishers WAV comments pollute the rest of their files) and fill up the address FFFFh with the value 80h.
The values of parasites start and end are easy to recognize: the presence of 00h and FFh, a succession of disparate values (B6h, 03h, A8h, etc.).
This requires that the software allows the modification of the buffer (this is usually the case), then the controls are fairly simple.
2) The automatic method:
Here is a small utility that can convert WAV files of the format "PCM / 8 bits / unsigned" in binary format used with any BIN EPROM programming worthy of the name:
Here is a small utility that can convert WAV files of the format "PCM / 8 bits / unsigned" in binary format used with any BIN EPROM programming worthy of the name:
WAV_BIN.EXE
Version 1.2
+ Sources
(192 kb)
How to create 'express' a BIN file in Windows 98:
- Start Menu / Programs / Accessories / Entertainment: start "Volume Control". You can choose the playback device and adjusting sound levels, as the case may be chosen 'microphone' or 'Line In' or 'CD Player'. Simply check the box 'Mute' shall not be checked. Column 'Microphone' may contain a button [Vance] for selecting a preamp sound. In the [O ptions], click [P roperties], then "Adjust volume for" select "Registration" and in "Show the following volume controls" make sure that your 'pipe' input is well selected and close the dialog box by clicking [OK] different cursor displayed now correspond to the amount of the registration devices (not playing). Click the box marked "S elect" to select the desired device (eg, "Microphone"), and mount the slider high enough.
- Start Menu / Programs / Accessories / Entertainment: run "Recorder". In the [F ile], click [Properties], then in the dialog box, the [C onvertir now ...], select the F ormat 'PCM' Attri and b uts "xxxx Hz; 8 Bit, Mono ". I note 'xxxx' is the sampling frequency, the higher it is, the better the quality, but the shorter the message. The following table shows the length of the message in seconds, depending on the sampling frequency and type of memory, the assembly proposed uses a 27C512, see [developments] in the menu if you want to create variants with memories higher capacities, and for smaller memories, the assembly is usable as is, but the end of message information will no longer be sent to the diode D3 Q4 output of IC2, but by the output Q3 (27 256), Q2 ( 27,128) and Q1 (2764), Q4 remains then simply disconnected, and if this change is not made, the message will simply read 2, 4 or 8 times depending on the memory.
EPROM | Sampling frequency: | ||||
---|---|---|---|---|---|
8000 Hz | 11025 Hz | 12000 Hz | 16000 Hz | 22050 Hz | |
27C64 (8 KB) | 1.02 s | 0.743 s | 0.682 s | 0.512 s | 0.371 s |
27C128 (16 kb) | 2.04 s | 1.48 s | 1.36 s | 1.02 s | 0.743 s |
27C256 (32 kb) | 4.09 s | 2.97 s | 2.73 s | 2.04 s | 1.48 s |
27C512 (64 kb) | 8.19 s | 5.94 s | 5.46 s | 4.09 s | 2.97 s |
27C010 (128 kb) | 16.3 s | 11.8 s | 10.9 s | 8.19 s | 5.94 s |
27C020 (256 kb) | 32.7 s | 23.7 s | 21.8 s | 16.3 s | 11.8 s |
27C040 (512 kb) | 65.5 s | 47.5 s | 43.6 s | 32.7 s | 23.7 s |
27C080 (1024 kb) | 131 s | 95.1 s | 87.3 s | 65.5 s | 47.5 s |
- Thus in the example highlighted, with a 27C512 and Fe = 11025Hz, the message takes 5.94 seconds. In addition to 22,050 Hz, avoid, because the message is too short. I insist on the format: 8 bit, Mono! Confirm by clicking [OK], then again [OK] to exit the dialog box "Properties for Sound" and return to the Recorder.
- Back in the Recorder, click the red dot to start recording, and speak into the microphone if you have set as an input device. Keep in mind the length of the message, and press the black square (= Stop). At the end, save the WAV file (Menu [F ile], option S AVE). Listen to him, and repeat as necessary to have a good volume control, and a good time (a little less than the theoretical length of the message above). If you have a sound processing software, you can use it for simple editing, or to create the message, provided to recover the output file in PCM WAV uncompressed 8 bit unsigned. Close the tape and the program volume control.
- Launch the converter WAV / BIN provided above, click [O uvrir WAV] and select the WAV file just created: his name appears in the center bar in the blue area. Click [Convert], if all goes well, the program details the analysis in the text box (in white), and you can hear the results by clicking the green triangle. The program then created a file "EPROM.BIN" to program in the EPROM 27C512, and a sound file "EPROM.WAV" simulating the results from the BIN file in the same directory as the original WAV. Leave the default options set at the level of check boxes. Since version 1.1, can also generate files. "BIN" to the memoirs of larger sizes (select the model from the scroll box for this purpose).
You can now connect the controller and start programming the EPROM.
Board layout:
Welding components: start with 3 straps (made of a piece of bare wire), the diodes D2 and D3, resistors placed horizontally, D1, and the supports of the circuit, adjustable regulator and screws; continue with resistors mounted vertically, then the capacitors, then the terminal. Given its proximity to the terminal, choose a model for C10 small.
Insert the IC to their supports. The EPROM has been programmed in advance, for example with one of the files available under "Messages". Connect the speaker, the battery clip (the red wire is the "plus", the black the "minus"), the switch, the push button.
Make sure one last time that the usual precautions were taken:
- Polarized components have been welded in the right direction (diodes, capacitors 'chemical' and 'tantalum' controller).
- Integrated circuits have also been inserted in the right direction, without bent pins, no confusion between the NE555 and LM386.
- Component values have been met (including resistors 15 and 30 kb around the EPROM).
- All welds were made, none of "slime" on a nearby track or another welding.
- No micro-cuts to the slopes, or remaining copper shorting two tracks.
- Be checked with special tracks fine passing between two pins of integrated circuit (the CD4040, the EPROM)
Feed with a 9V battery, adjustable halfway, push button released (contact open) the message is skipped to the power-up or when releasing the plunger, turn down the volume by turning the cursor AJ2 in the clockwise a watch; increase the frequency by turning the scroll AJ1 also in line with clockwise and set it by ear so as to obtain an adequate level of his (you can also get fun effects in playing speed).
Remember to keep your ears and nerves in your life!
to a new installation:
27C512 memory used to store the message in 28-pin 8-bit EPROM that has the largest capacity (64 kb), but there are 8 bits memory capacity upper housing 32 pins, 27c010 (128 kb) 27c020 (256 kb) 27c040 (512 KB) and 27c080 (1 MB). If you can access a program that supports these models, it is possible to develop a new system running on the same principle as that described in these pages, but using the larger memory space. Let's look at the pinouts of EPROMs:
Figure 1 above reveals information that will make our job easier:
- The memories have 27c0x0 addressing inputs for additional access to larger memory space: for A16 27c010, A16 and A17 for the 27c020, A16, A17 and A18 for the 27c040, A16, A17, A18 and A19 for the 27c080.
- 27c080 only has four address inputs corresponding to the four extra pins of the circuit, the pins available on the other are intended to EPROM programming, 'PGM (P)' and 'Vpp' (or not connected in the case of the spindle 17 of the 27c010) mode 'reading' (our configuration to use) it is sufficient to establish their potential, but it does not annoy us because they do not require specific signals.
- Despite the difference in the number of legs of the circuit, the pin of the 27C512 is partly compatible with that of 27c0x0, with the exception of the Vcc pin (pin 28 of the 27C512) which is replaced by the line Address A17 ('Not Connected' for the 27c010), feeding the 27C0x0 being made on the spindle 32. Pins 3 to 29 27c0x0 come up and then place the pins 1 to 27 of the 27C512, but keep the same role.
Essentially retain the above that our "new EPROMs" have just over 1, 2, 3 or 4-pin Additional Address: A16, A17, A18 and A19. Par ailleurs, nous disposons aussi de sorties au niveau des compteurs CD4040, qui étaient jusque-là inutilisées : avec deux compteurs à 12 étages 'en cascade', on dispose de 24 lignes d'adresses (A0 à A23), nous utiliserons au moins les lignes A0 à A20. La dernière sortie du compteur utilisée doit fournir une information "Arrêt de défilement" (pour bloquer le signal d'horloge). La situation, à ce stade de notre réflexion, est résumée figure 2 :
Comme le laisse supposer la figure 2, il existe plusieurs possibilités de combinaisons selon le type de mémoire 27c0x0, et selon le résultat recherché : on peut vouloir privilégier la lecture d'un message plus long, le choix parmi plusieurs messages courts, ou encore une solution intermédiaire (quelques messages, un peu plus longs) ; ces différents cas de figures vont être détaillés dans ce qui suit.
C'est le cas le plus simple, qui est juste une extrapolation du montage original, avec plus de lignes d'adresses ; comme on le voit figure 3, les sorties supplémentaires des compteurs sont reliées directement aux entrées d'adresses correspondantes de l'EPROM, quel que soit le modèle de mémoire présent ; les éventuelles entrées PGM et Vpp seront ainsi maintenues au niveau logique "0". La seule différence sera alors le choix de la sortie du compteur indiquant la fin du message : sélecteur sur A pour une 27c010, sur B pour une 27c020, sur C pour une 27c040 et sur D pour une 27c080. Le 'sélecteur' peut être un commutateur, un 'micro-switch DIP', un cavalier sur un bout de barrette sécable, ou un simple strap dans une configuration figée. Si on laisse le sélecteur sur C avec une 27c020, le message sera lu deux fois ; si on le met sur A avec la même mémoire, il sera tronqué et seule la première moitié sera lue ; on en déduit assez facilement le comportement du système dans d'autres cas de figures. La durée du message enregistré dans une 27C080 est 16 fois plus longue qu'avec une 27c512 (8 fois avec une 27c040, 4 fois avec une 27c020, 2 fois avec une 27c010).
La figure 4 nous montre que l'on se retrouve exactement dans la configuration du montage d'origine (défilement des adresses A0 à A15, blocage par A16), la différence réside au niveau d'une roue codeuse qui permet d'envoyer un code binaire de quatre bits sur les nouvelles entrées d'adresses de l'EPROM. L'espace mémoire total se retrouve donc cisaillé en 16 tronçons contigus, chacun ayant la taille mémoire d'une 27c512. On peut ainsi sélectionner un message parmis 16 en affichant son numéro en Hexadécimal sur la roue codeuse (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E ou F), et en pointant ainsi le tronçon à balayer. En dehors de la 27c080, il y aura des adresses 'fantômes', c'est à dire plusieurs numéros déclenchant le même message.
Par exemple avec une 27C020 :
- 0, 4, 8 et C lancent le premier message.
- 1, 5, 9 et D lancent le deuxième message.
- 2, 6, A et E lancent le troisième message.
- 3, 7, B et F lancent le quatrième message.
Ceci est dû au fait que, avec la 27c020, les entrées A18 et A19 sont purement ignorées. De même, avec la 27c010, il n'y a que deux messages différents, correspondants soit aux numéros pairs, soit aux numéros impairs. Avec une 27c080, on aura le choix parmi 16 messages, 8 pour une 27c040, etc. (chaque message ayant la durée de ceux stockés dans une 27c512).
Par exemple avec une 27C020 :
- 0, 4, 8 et C lancent le premier message.
- 1, 5, 9 et D lancent le deuxième message.
- 2, 6, A et E lancent le troisième message.
- 3, 7, B et F lancent le quatrième message.
Ceci est dû au fait que, avec la 27c020, les entrées A18 et A19 sont purement ignorées. De même, avec la 27c010, il n'y a que deux messages différents, correspondants soit aux numéros pairs, soit aux numéros impairs. Avec une 27c080, on aura le choix parmi 16 messages, 8 pour une 27c040, etc. (chaque message ayant la durée de ceux stockés dans une 27c512).
Cela revient à utiliser certaines des entrées d'adresses supplémentaires (celles de poids binaires les plus faibles, A16, voire A17 et A18) pour rallonger la durée des messages (à la façon de la figure 3) ; les entrées de poids les plus élevés (A19, voire A18 et A17) permettent de sélectionner le message (dans l'esprit de la figure 4).
Le premier exemple est celui de la figure 5 : les adresses A0 à A16 définissent des messages d'une durée double par rapport à ceux de la 27c512. A17 assure l'arrêt de la lecture. La roue codeuse permet ensuite de choisir un de ces huit messages (en supposant une 27c080), les combinaisons '8' à 'F' de la roues donnant le même résultat que les combinaisons '0' à '7'. Avec une 27c010, la roue codeuse devient inutile et l'on se retrouve dans le cas de la figure 3.
Le second exemple, décrit figure 6, utilise deux entrées d'adresses supplementaires (A16, A17), d'où des messages d'une durée quatre fois plus importante qu'avec une 27c512. Avec une 27c020, il n'y a qu'un message stocké, et l'interrupteur est inutile. Avec une 27c040, il ya deux messages, l'interrupteur permettant le choix du message. L'utilisation d'une 27c080 n'a pas de sens car l'entrée A19 n'est pas connectée (en pratique, on la mettrait à la masse, car il faut tout de même fixer la broche à un potentiel).
Comme le précise le titre, il s'agit juste d'un prototype, il ne sera donc pas décrit dans le détail, seuls seront donnés quelques éléments pour vous guider si vous souhaitez mener à bien vos propres expérimentations. N'hésitez pas à partir du circuit imprimé conçu sous ARES, et à le transformer pour y intégrer les modifications.
Le schéma présenté figure 7 s'inspire de celui de la figure 3, le prototype retient donc l'option de ne lire qu'un seul message, mais le plus long possible (A16, A17, A18 et A19 commandées directement par les compteurs). Il est prévu pour pouvoir accueillir n'importe lequel des quatre types de mémoires 27c0x0, mais aussi une 27C512, qui occupera donc les 28 broches 3 à 30 du support 32 broches. Pour que cela soit possible, un cavalier est prévu sur la carte pour orienter vers la broche 30 du support :
- soit Vcc (l'alimentation +5v) dans le cas de la 27c512.
- soit l'entrée d'adresse A17 dans le cas d'une 27c0x0.
Il est également prévu un quadruple switch DIP qui permet le choix de la sortie du compteur envoyant le signal de fin de défilement. Un seul interrupteur est passant ('ON') à la fois ; si plusieurs le sont, c'est le premier qui est pris en compte, les quatre diodes permettant dans ce cas d'éviter un court-circuit entre les lignes d'adresses (A16, A17, A18 et A19). Selon le type de mémoire :
- soit Vcc (l'alimentation +5v) dans le cas de la 27c512.
- soit l'entrée d'adresse A17 dans le cas d'une 27c0x0.
Il est également prévu un quadruple switch DIP qui permet le choix de la sortie du compteur envoyant le signal de fin de défilement. Un seul interrupteur est passant ('ON') à la fois ; si plusieurs le sont, c'est le premier qui est pris en compte, les quatre diodes permettant dans ce cas d'éviter un court-circuit entre les lignes d'adresses (A16, A17, A18 et A19). Selon le type de mémoire :
- Avec une 27c512 : A est ON. B, C et D sont OFF.
- Avec une 27c010 : B est ON. A, C et D sont OFF.
- Avec une 27c020 : C est ON. A, B et D sont OFF.
- Avec une 27c040 : D est ON. A, B et C sont OFF.
- Avec une 27c080 : A, B, C et D sont tous OFF.
Si le switch est mal configuré, le message sera lu plusieurs fois, ou bien tronqué. La diode présente sur la sortie A20 du compteur met fin au message dans le cas d'une 27c080, elle ne gêne pas le fonctionnement des autres mémoires. Ne pas oublier de mettre le cavalier pour le choix 27c512 / 27c0x0 sur la bonne position (sinon le résultat peut être déroutant).
La photo ci-dessus montre le prototype une fois câblé, avec le cavalier juste à gauche du second CD4040, et le quadruple switch associé aux diodes un peu au-dessus. Le montage des diodes et du switch n'est pas très conventionnel, mais il facilite la réalisation du prototype. A l'heure qu'il est, celui-ci fonctionne correctement avec les 27C010, 27C020 et 27C040 (ou leurs équivalents 27c1001, 27c2001, 27c4001), mais je n'ai pas pu me procurer de 27C080 pour les essais ; si l'une d'entre-elles encombre vos tiroirs, envoyez-la moi...
No comments:
Post a Comment