Has same purpose like parallel port programmer. You have to use it to get PIC bootloader before you use USB HID programmer or you may use it to put any other FW into your PIC. Programmer uses In-Circuit Serial Programming (ICSP) interface described in PIC18F2455 / 2550 / 4455 / 4550 Data sheet.
Serial port is not used in standard communication mode (where RxD, TxD are used for regular data transfers). Programmer uses control pins of serial interface to send data into / read data from PIC. Unfortunately this programmer does not work through USB to serial conversion cables (like Prolific USB-to-Serial). I assume it is because of specific RS232 implementation on “irregular” use of COM port. I did not found programming SW working with such a conversion cable.
Here are briefly summarized positives and negatives of Simple serial port programmer (JDM programmer):
|+||free||HW & bootloader & programming SW are available for free|
|+||easy||1) plug to COM port
2) power on
3) run FW update from PC
|+||cheap||just few components needed|
|uses standard Windows serial port driver or drivers shipped with PC / NB chipset|
|serial port programmer needs external power supply +5V to operate|
|-||slow||more slower than USB programmer|
|-||no COM ports
on new PCs
|actual PCs and NBs does not have COM ports, due to RS232 obsolescence;
but you may try to use for your new PC/NB without COM port:
- for PCs: serial (and parallel) port PCI or PCI express cards
- for NBs: PCMCIA card or ExpressCard to RS232
USB to COM converters seem to not work.
Scheme is inspired on article Super Simple PIC Programmer. But it does not worked for me, because there is one missing wire. This is my working scheme:
Figure 1: PIC18F2550 serial programmer scheme
Scheme contains just 3 resistors. This serial programmer needs external power +5V.
But it is easy to overcome this problem by getting needed power from USB port (as shown on bottom right corner of scheme}. See USB pinout on USB programmer web page. There are few additional components used (two capacitors C1 and C2), but nothing critical will happen if you omit them both.
If there is not +5V source from USB available, you can use DC power adapters. Typical adjustable DC adapter nor have +5V output, nor has stabilized output. That means you should use some more components to get stabilized DC +5V from power adapter:
Figure 2: DC power stabilizer +5V
To simplify scheme you can omit R1 and LED1 which role is to signalize that +5V is available on output. C3 is not critical, too. But I do not recommend removing of capacitors C1 and C2.
And this is how it looks on my experiment solderless breadboard:
Red framed part is external power supply stabilizer from Figure 2.
Here is COM pin out you may find useful:
Figure 4: COM port (serial port) pinout
I have decided for PICpgm. It is really mature and universal programming SW (I have also used in parallel PIC programmer).
And it is for free, too.
No additional drivers are needed to run programming SW.
All needed you could find packed in 1 archive at the bottom of this article.
Let’s look how to use it:
Figure 5: PICpgm - Hardware - Hardware Selection/Configuration
Figure 6: PICpgm - Programmer Selection/Configuration
The only difference should be in Port configuration - mine serial port is named COM1. Here chose serial port name your serial port has. You are limited to choose COM1 to COM4. If your serial port number has higher number you have to change it in your windows device manager in your serial port device driver.
Figure 7: PICpgm - PIC detected
Be patient, it takes some time till PicPgm reads information after you click OK in previous step.
Figure 8: PICpgm - Program PIC
Now rest of the work does PICpgm automatically.
Figure 9: PICpgm - PIC erasing start
Figure 10: PICpgm - PIC erasing finished
Figure 11: PICpgm - PIC FLASH programming progress
Figure 12: PICpgm - PIC FLASH content verifying progress
Figure 13: PICpgm - PIC EEPROM data memory programming progress
Figure 14: PICpgm - PIC EEPROM data memory verifying progress
Figure 15: PICpgm - PIC configuration memory verifying progress
That is just few bytes to program, so this step goes fast.
Figure 16: PICpgm - PIC verification errors
Even verification fails, programming was successful, as is also written on PICpgm web pages: If you do not need RB5 as I/O pin and RB5 is held on GND level you can ignore this verify error. It will not cause any problems.
Figure 17: PICpgm - Verify Error: Cfg Mem 0x000006: PIC=0x0085 Buf=0x0081
Figure 18: PICpgm - PIC LVP change to Enabled
You have to go to Config Bits tab of PICpgm and change the configuration of LVP bit manually from Disabled to Enabled,
when there is Disabled value.
You have to do this every time you load HEX file into PICpgm.
After this change you will see this "Success dialog" except that one on Figure 16:
Figure 19: PICpgm - PIC programming finished successfully
This "Success dialog" will automatically disappear after few seconds.
Just for comparison with Log containing errors on Figure 30 here is Log without any error:
Figure 20: PICpgm - Log without error
Do not forget that changing LVP to Enabled will block RB5/VPP pin of PIC18F2550 as clearly described on PICpgm pages:
The bit for which the verification fails here is the "LVP" configuration bit:
LVP: Low-Voltage Programming Enable bit:
1 = Low-Voltage Programming enabled, RB5 is the PGM pin
0 = Low-Voltage Programming disabled, RB5 is an I/O pin
Archive COM programmer package.zip contains:
You can start with programming USB HID bootloader into PIC - see section USB bootloader.
This will allow me to bring more information and projects for you.
© 2013, Radoslav Kastiel