Schematic attached. I think it is possible to use just resistors for inputs to the 8 bit bus, so this saves a chip and this also saved some space, so I added the prop plug so you can use either the max232 or the prop plug.
I think a standard parallel plug could be useful - there are all sorts of boards that use the PC parallel port, especially real world relay and controller boards, so I think this is a standard worth using.
Linear regulators just throw away energy as heat. Eg run a 5V regulator from 12V and it would be less than 41% efficient (5/12). Switching regulators convert higher volts into lower volts and can be over 90% efficient. Run a 3.3V regulator from 12V and it is 3.3/12 = 27.5% efficient. You are throwing away nearly three quarters of the energy. Yikes, no wonder it gets hot!
About the keyboard, I have the PS/2 connector (see picture below) but I will solder the connector on the main propeller board. It would be a waste to solder it on a small temporary board just to try. So the nest step is really to finish the schematic of the main board and mostly to draw the layout. I will submit these to you when done. Thus the main board should include the 2 voltage regulators, the Prop, the EEPROM, the RS232 system for programming and communicating, the SD Card socket, the VGA, the keyboard and the mouse connectors, and a connector (still to be defined) for all the not used pins + GND + 5V + 3.3V. This last connector could give access to the daughter boards, the first of which would probably be the 74-138 with all the dependent chips.
Do you think it sounds OK so far ?
By the way, I think it is important to notice that the keyboard and mouse connectors you use in your schematic are male, instead of female in the demo board. See picture below.
Your plan sounds very good. I remember getting very excited when I first connected a keyboard and got it to work.
The PS2 connector in the schematic might not be the correct one, but it is the plug that produces the correct pads on the board and with the wires connected in the right way, so I had to use that one.
How many wires connect to the daughter board with the 138?
About the regulators, I would prefer to avoid a Heat sink, so I will use a switching regulator for the 5V. I am still hesitating between LM2575 (1A) and LM2576 (3A). They are at the same price on eBay. Do you have any advice ?
Another question about the inductor. There are 2 types: a toroid coil with copper wire or a small component looking like a resistor. I suppose the difference is the quantity of current passing through but I can find both types at 1A (the price is different). Which type can I take.
For the 3.3V regulator, I think I can use the low drop 800mA behind the 5V one: 3.3/5 = 66% efficiency, probably not to far from the switching efficiency. And if the consumption is 200 mA, the waste would be 1.7V * 0.2A = 0.34W (Probably no need of heat sink).
The connection to the daughter board should have 4 wires for the 138 + the 8 data wires for the 374 ICs + GND/5V/3.3V. It makes a total of at least 15 wires. Thus a 16 way IDC connector should suffice.
It probably does not matter whether you use a 3A or 1A regulator. The keyboard is probably the biggest unknown, but most new ones are only a few tens of milliamps. Max would be 200mA, so probably the 1A regulator. The diode is 1A as well, so if you go over 1A it means a different diode and inductor.
The inductor simply has to be sized for the most current you expect to use. 1A should be ok. I've used 330uH and 470uH inductors - which ever you can get. The regulator gets slightly warm (about 40C) and a 1A inductor does not get warm, so that is well within specification.
The small inductors that look like resistors are too small to handle the current - they are designed for radio transmitters/receivers (though I have seen them used in solar lights where the switching regulator only needs to supply 10mA).
Inductors can be hard to find - you need the right value in uH as well as the right current rating. Though it does not matter if they are toroid or bobbin or other types.
The schematic of the new V2.0 board is ready.
Certainly, it is not original. Most of it comes from the demo board and from the DracBlade ! I didn't even find several connectors like the PS/2, VGA, SD Card... But at the same time it is my first serious work with Eagle and I am not too much unsatisfied.
There are probably errors and missing pieces, which I hope will be corrected before etching. But I have some time ahead since the layout is to be done. And this will probably be another story !
Feel free to comment, criticize, ruin or wreck this schematic :jumpin:
I use the same three transistor arangement as you have, for the rs232 interface. Dr_A, and Pullmoll I think, have a PNP transistor on the reset side. It was something about which edge of the DTR pulse that the Prop reset from.
Also there should be some 10K pull ups on the KBD and mouse lines, after the 100 Ohms going to the 3.3Volts rail (as in the DemoBoard).
Dr_A, and Pullmoll I think, have a PNP transistor on the reset side. It was something about which edge of the DTR pulse that the Prop reset from.
You are right. I didn't notice that difference. BC557 is a PNP with its base pulled up to 3.3V by the 10K resistor. When DTR becomes negative, the transistor gives a negative signal on the emitter. On the other hand, I don't see any pull up resistor on the reset line of the Dr_Acula's schematic.
We use 2N3904 for the Reset line. This gives a negative pulse on the Reset when DTR becomes positive. I don't know if one method is better than the other.
there should be some 10K pull ups on the KBD and mouse lines, after the 100 Ohms going to the 3.3Volts rail (as in the DemoBoard).
And the same for the EEPROM SCL, SDA lines
That's right, I forgot these pull ups. (According to the DemoBoard schematic, The EEPROM has only one pull up on the SDA line, not on the SCL).
The schematic below is corrected. I have also replaced the LM2575 switching regulator by the LM2576, which is rated at 3A. At the same time, I had to adapt the inductor, the diode and the capacitors.
Re I didn't even find several connectors like the PS/2, VGA, SD Card...
VGA - look in con-subd and look for HF15H (HF15) with a package HDF15H
PS2 - look in the mini_din library. I have attached this and you will need to add it to the library directory. And then open and close lots of menus associated with the library as I've not worked out to do that (I open and close and add and do about 10 things and eventually it works. I think you might have to shut down eagle and restart it as well. I have never worked out how to add libraries - sorry).
SD card. This is in the Sparkfun library. I have added that as well.
Yes, on the eeprom you do not need a pullup on the SCL line. Only the SDA line.
I like your idea of adding a jumper on the reset line for external resets. That would fix an annoying problem where the propeller resets when I power up my PC. I am going to add a jumper like that onto my board. Thanks for the suggestion!
Re PNP vs NPN on the reset, I don't think it matters, but I recall it did mean that BST might not work in the future if Brad ever changed a timing variable. But I think in the end he found a timing variable that worked.
Re regulators, on my latest board I had some spare room so I put in pads for 7805 and LM1117 regs as well as the switchers.
Thank you very much for the Eagle libraries. I had no problem to install and use the libraries. This is how to:
unzip the file into the Eagle Lib directory (usually C:\Program Files\Eagle\lbr)
Open Eagle and, in the Control Panel, you will see your new library if you double-click on Library (see picture 1)
Unlike the other libraries, it hasn't got a green point next to it. So, right-click on the library name and click to "use" (see picture 2). Your library becomes available in the schematic and board panels.
About the jumper on the Reset line, it was the Idea of Toby in the post #52 :
If you are in the jumper adding mood, I would add one to the reset line too. This could be useful if you have serial comms causing unwanted resets to the prop
I wonder if it wouldn't be better to have a push button or a switch instead of a jumper. In that case you would have to push the button in order to program the Prop and leave it open for all the other circumstances. Jumpers are a bit fragile if you have to manipulate it too often.
The schematic and the layout of the new board (V2.1) have been updated. I had to learn to modify some Eagle devices (such as the combined keyboard and mouse connector) to fit to what I can buy.
Once the schematic was finished, I was not able to manage the layout produced by Eagle because of so many routes crossing each other : a terrible mess, even worse than my hair when I wake up! So I started building the layout manually, piece by piece.
The 3.3V regulator and the SD Card socket are surface mounts so I had to transform them to though holes (see pictures). (First time I must solder SMDs).
Before etching, I still have to wait until I receive all the components. Those coming from Hong-Kong may take 2 to 3 weeks.
The combo one is better though because it has the right colours so you don't mix up the mouse and keyboard.
@Toby, are you using the 547 or 557 reset circuit?
I get resets when the PC restarts, but that is as expected.
My problem is the opposite - many resets do not properly reset the code. Indeed, sometimes the code even keeps running when I power down for a few seconds then power up. I think this might be a propeller problem - possibly it needs a longer reset, or maybe something more definitive, eg a reset button that disconnects the power and at the same time shorts the 3V supply?
Yes, they have quite a lot of components and they are not expensive, but because of the shipping costs (5 US$) it is often possible to find cheaper on eBay.
For example, you can see in the attached file (Shopping.pdf) what I bought lately on ebay with the picture, the item name, the price + shipping + date and the web address of the seller.
The other file (PS2 x2.zip) is the Eagle library for the double PS2 connector. Thus you have to unzip it, copy it in the Eagle\lbr directory, open Eagle, list all the libraries, right-click on the PS2 x2 and click "use". Then it is available in the schematic and layout.
I have always used the three transistor original, ie with NPN reset. I get resets when I switch on/off my 'scope, but only if the computer is connected to the serial interface. I can not remember if I tried it with the reset link removed though. If I get a chance (if, Ha!) I will get to play with the prop, after the weekend.
Meanwhile I am waiting for all the parts, I can start designing the schematic and the layout of the memory board.
Well, in fact, you have already done the schematic but I don't understand everything.
The 3 first 74HCT374 produce the 19 addresses for the memory. The pin 9 of the third one (IC14) has a LEd called "SD Card". Is it just to verify something or does it have a special function ?
The next chip (IC15) drives a LCD display. What sort of display is it. Something like 2x16 characters ? What do you use it for ? What does it offer more than the VGA ?
The next one (IC16) send the data to the parallel port. It could be a good idea to communicate by this way with the external world. But beneath the IC16, I don't understand why you send the same data to the parallel port.
Then IC16 and the last one collaborate together for analogue IN/OUT.
At the moment, I have plenty of 74-138 (ten) but only five 74-374. As the 138 is able tu drive six 374, I will put six sockets and leave one empty for the moment.
Is it useful to put a capacitor on the power lines near each chip ?
Another question: I don't find the AS6C4008 memory on ebay. But I do find a BS62LV4006PIP55, which is also a 512K low power CMOS SRAM (see datasheet). Do you think it could replace yours ?
I finished the schematic and the layout of the memory module. It was not as easy as I thought. Not the schematic which comes from the DracBlade V8-3. But I wanted a layout consistent with the schematic.
First of all, unless I don't have the right method, it is almost impossible to draw the schematic before going to the layout because of the entanglement of so many routes. So I founded easier to draw 2 or 3 routes in the schematic then go in the layout and make the corresponding tracks before going back to the schematic for the next 2 or 3 connections.
Nevertheless, I still had to restart from the beginning 3 to 4 times because it is really messy to move an already connected component to the other side of the board.
Furthermore, the memory needs only the 3 first 74-374 for the addresses. Five pins of the third one and the 3 next chips can be used for peripherals. As I haven't defined these peripherals yet, I decided to put only three 374 on this memory module and to send the 8 data and the spare signals of the 138 (decoder) to a connector for the next board (I/O Module).
This is the first time I draw a layout with busses. It is perfect for a multiple layers board but with a single layer, it is impossible to avoid numerous straps.
To keep the consistency between the schematic and the layout I had to change the wiring of the 2 x 8 connector.
So here are the schematics and layouts of both the Basic Prop Module and the Memory module. If someone is interested, I can send him the Eagle files.
To Dr_Acula : perhaps you overlooked my preceding post ?
To Dr_Acula : perhaps you overlooked my preceding post ?
Yes sorry, I did miss your post.
has a LEd called "SD Card".
Yes this is for testing and so you don't have to install it. We found the most useful thing for this led is to turn it on when accessing the sd card. It is like the hard drive light on a PC.
The LCD is any parallel (16 pin) LCD display - 8x2 or 16x2 or 20x2 or 20x4. They all work with slight changes to software. I use these displays for boards that are outside, or for portable boards, or for programs where you only want to input simple values. You don't need the LCD display if you are using a VGA or TV. Or you could use these as general purpose 5V outputs.
The parallel output is not tested yet - my boards have not arrived. Hopefully next week. The standard PC parallel port has inputs and outputs - eg there is a pin for the printer to tell the PC that it has run out of paper. You can use those pins for other things - eg a laplink cable.
Is it useful to put a capacitor on the power lines near each chip ? Yes. I use them for every chip because all the computer boards I have pulled apart do this. They prevent glitches on the power supply lines due to fast switching.
BS62LV4006PIP55 - yes that looks the same specification. If it works, that would be useful as it is another source for the chip. Where did you find it?
The memory circuits can be built up in stages, from just two latches (and the 74hc138 decoder), this gives the 64KB required for the CP/M or other 8 bit emulations. Just set the extra, unused, address pins high or low tempararily and it should fire up. Add in the extra address latch if/when required, the LCD is cute and may be useful for you requirements, but is not vital. Nor are the latches after this, they are just spare decoder outputs being put to some use.
Dr_A has made this very tolerant about bits missing. My "Baby" one runs a minimal 64KB, the memory is on the other side of the latches and the Prop is on the other side of the decoder and EEPROM. It thinks it is a Nascom, I know I am happy (first computer owned syndrome).
And Yes I did get the end pins wrong on the '374s. These were done on another day and I forgot to reverse them (I usually do single sided boards like you, but this double sided attempt went preaty well. The registration errors from side to side was only about 20 mils at worst).
About the SD LED, wouldn't it possible to put the LED on one of the SD pins (IN or OUT) ? Would it inhibit the normal functioning of the card ?
About the memory chip, you found the same advertising as me. The pinouts and the truth tables are identical, so they should be interchangeable.
It is a pity that well known electronic merchants often have exagerated shipping fees or refuse to sell anything below a certain amount.
Besides that, I must take into account the fact that quite often the Belgian customs charge me an import tax of 10 euros (more than 14 AUD) on parcels from USA. In fact, it is not a real tax. It is more demonic than that. It is an amount I can choose to pay for not opening a regular import file which would cost me 50 euros plus the real import tax on what I bought. Hopefully, I have never been taxed on stuff coming from Hong-Kong. I don't know why but that's the reason why I try to buy as much as possible in China.
______________________________________________________________
Hello Toby,
The memory circuits can be built up in stages, from just two latches (and the 74hc138 decoder), this gives the 64KB required for the CP/M or other 8 bit emulations.
Yes but once the board has been built, it is easier to use whatever amount of memory you need from 512K than to add new chips. Also the price of 512K is cheaper than 64K, compared to the size of memory.
I have never dared trying to etch a double sided board. Sometimes I print the upper side on a paper that I glue on the board before drilling. Although the paper is cut at the same size as the board, I generally have an error between the holes and the drawing. Of course I would be more precise for a double sided board but if you have 16 mil tracks running between regular chip pads, even a small error of 20 mil could ruin the board.
In fact, my memory board is almost a double sided board but the tracks of the upper side are straps made of wires !
Wire links are self aligning, and I usually get them to a pitch of 50 mils without problems. Vias that are just pads with a wire soldered through have to be left at 60 mils to allow for some error.
I printed the two sides with some datum points outside of the actual PCB area and with dress making pins lined up the two "pictures" and made them into a pouch. This was then ironed onto the double siderd PCB. I think that this was the point that the error was put on, I think that the paper changes dimensions slightly when it gets hot. Even though the paper is kept in a normal room there is always an amount of steam released when ironing the toner across. This may have distorted the pouch slightly. I plan to try to print and drill some datum holes then iron on the second side using these holes a literal alignment points, It will require careful protection of the already ironed on side though.
The SD's /CS pin could be used as a drive active light. I think a transistor buffer may be needed as the 'HC138 is not really a driver chip, a couple of mAs should be available for a high eficiency LED.
One more thought.
You do not have to slavishly have address and data pins in the order that are on the data sheets. I always use the pins in the order that allows for the easiest layout. All address pins are equall and all date pins are equall too (on these memory chips)
Toby, I don't quite understand what you are saying:
You do not have to slavishly have address and data pins in the order that are on the data sheets. I always use the pins in the order that allows for the easiest layout. All address pins are equall and all date pins are equall too (on these memory chips)
For example A0 is the lowest significant bit and A19 is the Highest bit of the address. You are not allowed to swap these pins, otherwise the address you send to the memory will be wrong. So probably you mean something else that I've not understood. Could you explain please.
For example A0 is the lowest significant bit and A19 is the Highest bit of the address. You are not allowed to swap these pins, otherwise the address you send to the memory will be wrong. So probably you mean something else that I've not understood. Could you explain please.
I think Toby is right. You can mix up A0 to A19 in any order you like. Also you can mix up D0 to D7 in any order as well. The data will be stored all over the chip, but it is a random access memory and the speed is the same for reading anywhere in the memory. Say you swap A0 and A19. When you do a write, the data will be stored in a completely different part of memory. But when you do a read, it will read back from the same place.
I think Toby is right. You can mix up A0 to A19 in any order you like. Also you can mix up D0 to D7 in any order as well. The data will be stored all over the chip, but it is a random access memory and the speed is the same for reading anywhere in the memory. Say you swap A0 and A19. When you do a write, the data will be stored in a completely different part of memory. But when you do a read, it will read back from the same place.
Thanks to you Toby, Dr_Acula and Sapieha, I fly one floor higher. I realize that when the micro-controller asks the memory to store a byte at a certain address, it can be another byte which is stored at another address, depending of the circuit, but as the way back is the same, everything is in order when one wants to read the byte. Fantastic ! Really thanks to all of you !
I will revise the layout. But I don't know what to do with the consistency between schematic and layout.
Comments
I think a standard parallel plug could be useful - there are all sorts of boards that use the PC parallel port, especially real world relay and controller boards, so I think this is a standard worth using.
Linear regulators just throw away energy as heat. Eg run a 5V regulator from 12V and it would be less than 41% efficient (5/12). Switching regulators convert higher volts into lower volts and can be over 90% efficient. Run a 3.3V regulator from 12V and it is 3.3/12 = 27.5% efficient. You are throwing away nearly three quarters of the energy. Yikes, no wonder it gets hot!
Jean-Marie, how are you going with the keyboard?
About the keyboard, I have the PS/2 connector (see picture below) but I will solder the connector on the main propeller board. It would be a waste to solder it on a small temporary board just to try. So the nest step is really to finish the schematic of the main board and mostly to draw the layout. I will submit these to you when done. Thus the main board should include the 2 voltage regulators, the Prop, the EEPROM, the RS232 system for programming and communicating, the SD Card socket, the VGA, the keyboard and the mouse connectors, and a connector (still to be defined) for all the not used pins + GND + 5V + 3.3V. This last connector could give access to the daughter boards, the first of which would probably be the 74-138 with all the dependent chips.
Do you think it sounds OK so far ?
The PS2 connector in the schematic might not be the correct one, but it is the plug that produces the correct pads on the board and with the wires connected in the right way, so I had to use that one.
How many wires connect to the daughter board with the 138?
About the regulators, I would prefer to avoid a Heat sink, so I will use a switching regulator for the 5V. I am still hesitating between LM2575 (1A) and LM2576 (3A). They are at the same price on eBay. Do you have any advice ?
Another question about the inductor. There are 2 types: a toroid coil with copper wire or a small component looking like a resistor. I suppose the difference is the quantity of current passing through but I can find both types at 1A (the price is different). Which type can I take.
For the 3.3V regulator, I think I can use the low drop 800mA behind the 5V one: 3.3/5 = 66% efficiency, probably not to far from the switching efficiency. And if the consumption is 200 mA, the waste would be 1.7V * 0.2A = 0.34W (Probably no need of heat sink).
The connection to the daughter board should have 4 wires for the 138 + the 8 data wires for the 374 ICs + GND/5V/3.3V. It makes a total of at least 15 wires. Thus a 16 way IDC connector should suffice.
The inductor simply has to be sized for the most current you expect to use. 1A should be ok. I've used 330uH and 470uH inductors - which ever you can get. The regulator gets slightly warm (about 40C) and a 1A inductor does not get warm, so that is well within specification.
The small inductors that look like resistors are too small to handle the current - they are designed for radio transmitters/receivers (though I have seen them used in solar lights where the switching regulator only needs to supply 10mA).
Inductors can be hard to find - you need the right value in uH as well as the right current rating. Though it does not matter if they are toroid or bobbin or other types.
The schematic of the new V2.0 board is ready.
Certainly, it is not original. Most of it comes from the demo board and from the DracBlade ! I didn't even find several connectors like the PS/2, VGA, SD Card... But at the same time it is my first serious work with Eagle and I am not too much unsatisfied.
There are probably errors and missing pieces, which I hope will be corrected before etching. But I have some time ahead since the layout is to be done. And this will probably be another story !
Feel free to comment, criticize, ruin or wreck this schematic :jumpin:
Also there should be some 10K pull ups on the KBD and mouse lines, after the 100 Ohms going to the 3.3Volts rail (as in the DemoBoard).
And the same for the EEPROM SCL, SDA lines
You are right. I didn't notice that difference. BC557 is a PNP with its base pulled up to 3.3V by the 10K resistor. When DTR becomes negative, the transistor gives a negative signal on the emitter. On the other hand, I don't see any pull up resistor on the reset line of the Dr_Acula's schematic.
We use 2N3904 for the Reset line. This gives a negative pulse on the Reset when DTR becomes positive. I don't know if one method is better than the other.
That's right, I forgot these pull ups. (According to the DemoBoard schematic, The EEPROM has only one pull up on the SDA line, not on the SCL).
The schematic below is corrected. I have also replaced the LM2575 switching regulator by the LM2576, which is rated at 3A. At the same time, I had to adapt the inductor, the diode and the capacitors.
Re I didn't even find several connectors like the PS/2, VGA, SD Card...
VGA - look in con-subd and look for HF15H (HF15) with a package HDF15H
PS2 - look in the mini_din library. I have attached this and you will need to add it to the library directory. And then open and close lots of menus associated with the library as I've not worked out to do that (I open and close and add and do about 10 things and eventually it works. I think you might have to shut down eagle and restart it as well. I have never worked out how to add libraries - sorry).
SD card. This is in the Sparkfun library. I have added that as well.
Yes, on the eeprom you do not need a pullup on the SCL line. Only the SDA line.
I like your idea of adding a jumper on the reset line for external resets. That would fix an annoying problem where the propeller resets when I power up my PC. I am going to add a jumper like that onto my board. Thanks for the suggestion!
Re PNP vs NPN on the reset, I don't think it matters, but I recall it did mean that BST might not work in the future if Brad ever changed a timing variable. But I think in the end he found a timing variable that worked.
Re regulators, on my latest board I had some spare room so I put in pads for 7805 and LM1117 regs as well as the switchers.
Thank you very much for the Eagle libraries. I had no problem to install and use the libraries. This is how to:
- unzip the file into the Eagle Lib directory (usually C:\Program Files\Eagle\lbr)
- Open Eagle and, in the Control Panel, you will see your new library if you double-click on Library (see picture 1)
- Unlike the other libraries, it hasn't got a green point next to it. So, right-click on the library name and click to "use" (see picture 2). Your library becomes available in the schematic and board panels.
About the jumper on the Reset line, it was the Idea of Toby in the post #52 : I wonder if it wouldn't be better to have a push button or a switch instead of a jumper. In that case you would have to push the button in order to program the Prop and leave it open for all the other circumstances. Jumpers are a bit fragile if you have to manipulate it too often.The schematic and the layout of the new board (V2.1) have been updated. I had to learn to modify some Eagle devices (such as the combined keyboard and mouse connector) to fit to what I can buy.
Once the schematic was finished, I was not able to manage the layout produced by Eagle because of so many routes crossing each other : a terrible mess, even worse than my hair when I wake up! So I started building the layout manually, piece by piece.
The 3.3V regulator and the SD Card socket are surface mounts so I had to transform them to though holes (see pictures). (First time I must solder SMDs).
Before etching, I still have to wait until I receive all the components. Those coming from Hong-Kong may take 2 to 3 weeks.
Dr_A
I still get some spurious resets on the Props even when the reset is isolated, my 'scope does it too.
So you have created an Eagle mouse/keyboard object? Very nice!
I suppose now would (not) be a good time to post a link to where I get my PS2 sockets http://www.futurlec.com/DIN-S-VHS.shtml
The combo one is better though because it has the right colours so you don't mix up the mouse and keyboard.
@Toby, are you using the 547 or 557 reset circuit?
I get resets when the PC restarts, but that is as expected.
My problem is the opposite - many resets do not properly reset the code. Indeed, sometimes the code even keeps running when I power down for a few seconds then power up. I think this might be a propeller problem - possibly it needs a longer reset, or maybe something more definitive, eg a reset button that disconnects the power and at the same time shorts the 3V supply?
Yes, they have quite a lot of components and they are not expensive, but because of the shipping costs (5 US$) it is often possible to find cheaper on eBay.
For example, you can see in the attached file (Shopping.pdf) what I bought lately on ebay with the picture, the item name, the price + shipping + date and the web address of the seller.
The other file (PS2 x2.zip) is the Eagle library for the double PS2 connector. Thus you have to unzip it, copy it in the Eagle\lbr directory, open Eagle, list all the libraries, right-click on the PS2 x2 and click "use". Then it is available in the schematic and layout.
Good to see your shopping list - lots of attractive prices there.
What is next - a memory board?
I have always used the three transistor original, ie with NPN reset. I get resets when I switch on/off my 'scope, but only if the computer is connected to the serial interface. I can not remember if I tried it with the reset link removed though. If I get a chance (if, Ha!) I will get to play with the prop, after the weekend.
Meanwhile I am waiting for all the parts, I can start designing the schematic and the layout of the memory board.
Well, in fact, you have already done the schematic but I don't understand everything.
The 3 first 74HCT374 produce the 19 addresses for the memory. The pin 9 of the third one (IC14) has a LEd called "SD Card". Is it just to verify something or does it have a special function ?
The next chip (IC15) drives a LCD display. What sort of display is it. Something like 2x16 characters ? What do you use it for ? What does it offer more than the VGA ?
The next one (IC16) send the data to the parallel port. It could be a good idea to communicate by this way with the external world. But beneath the IC16, I don't understand why you send the same data to the parallel port.
Then IC16 and the last one collaborate together for analogue IN/OUT.
At the moment, I have plenty of 74-138 (ten) but only five 74-374. As the 138 is able tu drive six 374, I will put six sockets and leave one empty for the moment.
Is it useful to put a capacitor on the power lines near each chip ?
Another question: I don't find the AS6C4008 memory on ebay. But I do find a BS62LV4006PIP55, which is also a 512K low power CMOS SRAM (see datasheet). Do you think it could replace yours ?
I finished the schematic and the layout of the memory module. It was not as easy as I thought. Not the schematic which comes from the DracBlade V8-3. But I wanted a layout consistent with the schematic.
First of all, unless I don't have the right method, it is almost impossible to draw the schematic before going to the layout because of the entanglement of so many routes. So I founded easier to draw 2 or 3 routes in the schematic then go in the layout and make the corresponding tracks before going back to the schematic for the next 2 or 3 connections.
Nevertheless, I still had to restart from the beginning 3 to 4 times because it is really messy to move an already connected component to the other side of the board.
Furthermore, the memory needs only the 3 first 74-374 for the addresses. Five pins of the third one and the 3 next chips can be used for peripherals. As I haven't defined these peripherals yet, I decided to put only three 374 on this memory module and to send the 8 data and the spare signals of the 138 (decoder) to a connector for the next board (I/O Module).
This is the first time I draw a layout with busses. It is perfect for a multiple layers board but with a single layer, it is impossible to avoid numerous straps.
To keep the consistency between the schematic and the layout I had to change the wiring of the 2 x 8 connector.
So here are the schematics and layouts of both the Basic Prop Module and the Memory module. If someone is interested, I can send him the Eagle files.
To Dr_Acula : perhaps you overlooked my preceding post ?
Yes sorry, I did miss your post.
has a LEd called "SD Card".
Yes this is for testing and so you don't have to install it. We found the most useful thing for this led is to turn it on when accessing the sd card. It is like the hard drive light on a PC.
The LCD is any parallel (16 pin) LCD display - 8x2 or 16x2 or 20x2 or 20x4. They all work with slight changes to software. I use these displays for boards that are outside, or for portable boards, or for programs where you only want to input simple values. You don't need the LCD display if you are using a VGA or TV. Or you could use these as general purpose 5V outputs.
The parallel output is not tested yet - my boards have not arrived. Hopefully next week. The standard PC parallel port has inputs and outputs - eg there is a pin for the printer to tell the PC that it has run out of paper. You can use those pins for other things - eg a laplink cable.
Is it useful to put a capacitor on the power lines near each chip ? Yes. I use them for every chip because all the computer boards I have pulled apart do this. They prevent glitches on the power supply lines due to fast switching.
BS62LV4006PIP55 - yes that looks the same specification. If it works, that would be useful as it is another source for the chip. Where did you find it?
addit - found on ebay http://cgi.ebay.com.au/BS62LV4006PIP55-Low-Power-CMOS-SRAM-IC-/270624226028?pt=LH_DefaultDomain_0&hash=item3f0275faec $10 and $5 shipping - for small numbers that will be cheaper than future electronics who are $3.25 but with a minimum of about $30 shipping.
Sorry but I have been busy as of late too.
The memory circuits can be built up in stages, from just two latches (and the 74hc138 decoder), this gives the 64KB required for the CP/M or other 8 bit emulations. Just set the extra, unused, address pins high or low tempararily and it should fire up. Add in the extra address latch if/when required, the LCD is cute and may be useful for you requirements, but is not vital. Nor are the latches after this, they are just spare decoder outputs being put to some use.
Dr_A has made this very tolerant about bits missing. My "Baby" one runs a minimal 64KB, the memory is on the other side of the latches and the Prop is on the other side of the decoder and EEPROM. It thinks it is a Nascom, I know I am happy (first computer owned syndrome).
And Yes I did get the end pins wrong on the '374s. These were done on another day and I forgot to reverse them (I usually do single sided boards like you, but this double sided attempt went preaty well. The registration errors from side to side was only about 20 mils at worst).
About the SD LED, wouldn't it possible to put the LED on one of the SD pins (IN or OUT) ? Would it inhibit the normal functioning of the card ?
About the memory chip, you found the same advertising as me. The pinouts and the truth tables are identical, so they should be interchangeable.
It is a pity that well known electronic merchants often have exagerated shipping fees or refuse to sell anything below a certain amount.
Besides that, I must take into account the fact that quite often the Belgian customs charge me an import tax of 10 euros (more than 14 AUD) on parcels from USA. In fact, it is not a real tax. It is more demonic than that. It is an amount I can choose to pay for not opening a regular import file which would cost me 50 euros plus the real import tax on what I bought. Hopefully, I have never been taxed on stuff coming from Hong-Kong. I don't know why but that's the reason why I try to buy as much as possible in China.
______________________________________________________________
Hello Toby,
Yes but once the board has been built, it is easier to use whatever amount of memory you need from 512K than to add new chips. Also the price of 512K is cheaper than 64K, compared to the size of memory.
I have never dared trying to etch a double sided board. Sometimes I print the upper side on a paper that I glue on the board before drilling. Although the paper is cut at the same size as the board, I generally have an error between the holes and the drawing. Of course I would be more precise for a double sided board but if you have 16 mil tracks running between regular chip pads, even a small error of 20 mil could ruin the board.
In fact, my memory board is almost a double sided board but the tracks of the upper side are straps made of wires !
I printed the two sides with some datum points outside of the actual PCB area and with dress making pins lined up the two "pictures" and made them into a pouch. This was then ironed onto the double siderd PCB. I think that this was the point that the error was put on, I think that the paper changes dimensions slightly when it gets hot. Even though the paper is kept in a normal room there is always an amount of steam released when ironing the toner across. This may have distorted the pouch slightly. I plan to try to print and drill some datum holes then iron on the second side using these holes a literal alignment points, It will require careful protection of the already ironed on side though.
The SD's /CS pin could be used as a drive active light. I think a transistor buffer may be needed as the 'HC138 is not really a driver chip, a couple of mAs should be available for a high eficiency LED.
One more thought.
You do not have to slavishly have address and data pins in the order that are on the data sheets. I always use the pins in the order that allows for the easiest layout. All address pins are equall and all date pins are equall too (on these memory chips)
I think Toby is right. You can mix up A0 to A19 in any order you like. Also you can mix up D0 to D7 in any order as well. The data will be stored all over the chip, but it is a random access memory and the speed is the same for reading anywhere in the memory. Say you swap A0 and A19. When you do a write, the data will be stored in a completely different part of memory. But when you do a read, it will read back from the same place.
It might make your layout easier.
As You are correct on it ---> It is not preferred.
As If You will use EEproms/Flash that You will program on standard programmer (Simply impossible).
It is good as long That serve only RAM's.
Thanks to you Toby, Dr_Acula and Sapieha, I fly one floor higher. I realize that when the micro-controller asks the memory to store a byte at a certain address, it can be another byte which is stored at another address, depending of the circuit, but as the way back is the same, everything is in order when one wants to read the byte. Fantastic ! Really thanks to all of you !
I will revise the layout. But I don't know what to do with the consistency between schematic and layout.