I am using NXP P89LPC954 microcontroller. I am having problem with In System programming(ISP). When i solder it on my board for the first time and try to burn hex file into it using phython chip prog, all the process i.e burning the hex file and verifying after burning, everything goes fine in the chip prog software. But the microcontroller does not behave as per the code.

When I burn the same hex file using "universal programmer"(De-soldered microcontroller inserted in the Device pins ) having parallel port, it works fine. Once the code is burnt using parallel port device, from next time onwards i'm able do the isp programming.

Actually i was told that we must dump any microcontroller for the first time using universal programmer only to make it compatible for isp. But what i feel is if that is the case then why not the manufacturer does that by default(As it is not user program dependent)

Is it required to program all microcontrollers for the first time using parallel port universal programmer only,to make it compatible for isp??

  • \$\begingroup\$ Wild guess: does your software per chance includes a bootloader which enables this ISP feature? \$\endgroup\$ Oct 15, 2015 at 14:22
  • \$\begingroup\$ Where is your question, if I may ask? We cannot answer any questions about why a manufacturer made a decision or in/excluded something in their design. You probably should check at the manufacturer if you really want an answer. \$\endgroup\$
    – Weaverworm
    Oct 15, 2015 at 14:23
  • \$\begingroup\$ Yes bootloader is given by manufacturer in the assembly format and i have included in my project also. \$\endgroup\$ Oct 15, 2015 at 14:44

1 Answer 1


ISP typically requires a bootloader, so when you flash the bootloader (together with your software) the first time, you have to do it via the parrallel port. From this moment, you can also use ISP since the bootloader is there to handle the necessary communication.

As to why the manufacturer didn't flash the bootloader at the fab, there may be multiple reasons. Maybe there are several bootloaders out there, and there is no reasonable default. Maybe it's an intellectual property question - the price of the bootloader may be included in the software package price, not in the microcontroller price. Maybe you have to specify that you need the bootloader flashed when you buy the part.

  • \$\begingroup\$ What you said is absolutely right. But manufacturer has mentioned in the ISP document that the firmware for ISP is loaded into the microcontroller as factory default. But still i'm facing the issue. \$\endgroup\$ Oct 15, 2015 at 17:06
  • \$\begingroup\$ Maybe a different bootloader is flashed at production time, or the same bootloader is configured differently, resulting in your programmer not being supported. \$\endgroup\$ Oct 16, 2015 at 7:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.