Re: why we can't program PIC uC using ftdi rs232-usb converters ?
What I am saying is there are two problems, one is the availability of stable voltages at the levels needed to program the PIC, the other is the format of the data used for serial communication is (quite rightly) different to that needed by a PIC. The normal way around the voltage problems is to use an external source of power, either from an independant PSU or from the USB socket directly and convert/stabilize it with suitable circuits. For normal serial communications, the voltages at the RS232 interface will typically be around +10V/-10V but with only 1 or 2mA available before the voltage starts to drop. That is perfectly adequate for data communication but not enough to program a PIC.
The programming format is different from one PIC to another, they are programmed serially (except the very old types) but using various different bit stream lengths and requiring a clock signal to load the bits in sequence. All the serial formats are available as "programming specifications" on Microchip's web site. A USB derived RS232 port can only handle bit streams of 7, 8 or 9 bits and normally only in asynchronous mode (no clock available), they also have a fixed start and stop bit format which does not match that needed by a PIC. In contrast, a direct PC RS232 port is driven from a UART to produce the serial data but the handshaking signals are produced by a parallel port. It means that under software control, the bits of a directly driven port can be controlled individually and this is how simple serial port programmers produce the signals they need.
All commercially available USB PIC programming units use an on-board microcontroller. The Pickit2 for example uses an 18F2550 and most of the "Kxxx" ones use a 16F628. These contain the code to receive the data in standard serial format from the PC and convert it to the format needed by the PIC being programmed. Often (Pickit is an exception because it uses USB directly) they utilize a USB to serial converter such as the FTDI range but it is only there to let the PC and on-board processor talk to each other it does not connect directly to the PIC being programmed.
Brian.