Hi Siegfried, > That is another point to discuss. The data book says, MCLR must be at least > 0.85*Vdd ... Thanks for your critique of the circuit I posted. As I said in private e-mail to you, I should have read your demands more carefully - I assume that VDD is 5V. I agree that with a 10k pull-down I can't quite meet the 0.85*VDD spec of the 16C84 even with a 5V supply (I see the spec is a little different for other 16CXX chips). The solution is simply to increase the value of the pull-down (or even leave it out altogether I suppose, but my experience tells me it's a good thing). Having said all that, the circuit works just fine as it is with VDD = 5V. > THREE outputs with RS232??? > I only know of RTS and DTR. Or do you abuse the TxD line like the Erik- > Hermann-ultracheap-RS232-programmer? Sorry for the confusion, but the circuit is driven by a _parallel_ port. I derive the parallel signals from the RS232 port using a few CMOS chips; I call this interface a MIPI (for Machine Independent Parallel Interface). The MIPI is designed to work with any computer with an RS232 port. It is my answer to the problem of bootstrapping a PIC based universal PIC programmer without needing a PIC programmer in the first place. Perhaps you will forgive me if I use my reply to your question to see if I can explain the idea to any members of the PICLIST who are still reading (non hobbyists and owners of store bought programmers will have skipped to the next message before they reached here :-) I would contend that Robin Abbott's ETI design is a machine independent universal PIC programmer. Universal in the sense that it can be used to program all the PIC chips. Machine independent in the sense that it is connected to the host computer via the RS232 port and virtually every computer has an RS232 port. Provided you forgo a flashy graphical interface it should be possible to write host software that is highly portable between different platforms. The only gripe is the one expressed by Ray Bellis and others, that is, you need access to an existing PIC programmer to make Robin's design (or have to pay Robin to get your PIC programmed). My aim is to design a machine independent (i.e. RS232 hosted) universal PIC programmer without this chicken and egg problem. The programmer hardware will still use a PIC (one of the serial-programmable 16CXX chips) for simplicity. Then, if you have an IBM clone, there is no problem in bootstrapping the project by building a simple programmer and using the Silicon Studio software by Antti Lukats and his team. In fact, if you have an IBM clone this might be all you want anyway. So let's consider people without IBM clones but who do own computers with an RS232 port. That is, they could make use of the programmer if they could build it, but they can't build it because they have no means of burning the PIC used in the programmer (and they, like me, are too cheap to have someone else program the PIC :-) I guess some people could get Erik Hermann's RS232 based programmer going on their non-IBM machine. Here we stray into a grey area; Erik's programmer makes unconventional use of the RS232 signals and though it should work well with an IBM clone, it's not necessarily easy to fiddle with the modem lines on all computers. So, let's say the RS232 port has minimum functionality: GND, TXD and RXD (that's all that Robin's programmer needs by the way). With such a restriction we have no option but to throw some hardware at the problem. In fact the hardware is likely to be more complex than the programmer we want to build. It would seem like a waste to build a complicated bit of kit that was going to be redundant after it has been used just once. Well, I thought an RS232 hosted parallel port might be a nice toy to have: it could be used to hook up a simple PIC programmer to bootstrap the PIC based version, but it would still be useful for other projects. That was the birth of the MIPI. The MIPI consists of a few cheap CMOS chips and provides three parallel outputs and four parallel inputs; a very modest amount of I/O I know, but that's more than enough to bit-bang SPI/I2C protocols (albeit slowly) using the RS232 port of any computer. The outputs are available as both true and inverted logic signals (5V CMOS) and also in open drain form. It is these signals that should be used to drive the in-circuit programmer I described in the previous message. The MIPI can be built in two forms. For maximum machine independence the RS232 interface is built using a MAX232 and power is supplied externally. If DTR/RTS are available the MIPI can be powered from the RS232 port itself. I have a document (still unfinished because of pressure of work) which gives a full description of the MIPI design and implementation. If anybody really wants a copy just ask and I'll send you a draft (all the schematics are in ASCII so you don't need any special facilities to view them; it took me longer to draw these than to build the hardware!). If you can wait a bit, I should be able to complete the specification of the machine dependent library routines needed to make MIPI applications machine independent (I'm unhappy with the specification in the current draft and that's the reason the document is still unfinished). In any case you might be able to get a good idea of what's involved by looking at the block diagram I've included at the end of this message. Back to my reply to Siggi. Feel free to modify my software for your own programmer design, but you might be more interested in further modifying a version that was put together by Frederic Rible. It's called PP10.ZIP and it's on the Microchip BBS and also on the Silicon Studio FTP site. Or, as Don McKenzie has already said, just show Antti your design and he will have a PC driver ready quicker than you can blink! Sorry for the long waffle, but I hope some found it interesting enough to make it all the way to here. Cheers, David -- david.tait@man.ac.uk Machine Independent Parallel Interface ====================================== Copyright (C) 1995 David Tait +---------------------------+ | | +----------+ | +--------+ +--------+ TXD | RS232 | SIN | | MONO | /M2 | RESET | RST >-----| I/F |------+----| 1/2 |---------| 1/2 |-------+ | | | | 4098 | | 4013 | | RXD | MAX232 | SOUT | +--------+ +--------+ | <-----| OR |--+ | | | DISCRETE | | | +--------+ +-----------+ | +----------+ | | | MONO | /M1 | CLOCK GEN | | | +----| 1/2 |---+-----| |----+ DTR/RTS +----------+ | | | 4098 | | | 4027 | >-----| POWER | | | +--------+ | +-----------+ | 78L05 OR | | | | | | | >-----| DISCRETE | | | +-------------+ CLK2 | | |CLK0 VIN +----------+ | | | +------------------+ | | | | | | | +---------------|---+ | | VDD | | | | | CLK1 | | | +--> | | | | | | | | +-----------------+ +------------+ DIN0 >----| INPUT MUX | | DATA LATCH |---> DOUT0 DIN1 >----| | | 1-1/2 |---> DOUT1 DIN2 >----| 4512 | | 4013 |---> DOUT2 DIN3 >----| | +------------+ +-----------------+ Parts: 4098 (or 4528), 4027, 2 X 4013, 4512, 3 X VN10KM. (plus either: MAX232, 78L05; or 2 X BC547, BC550, TL071.)