Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[SOLVED] Difference Between : ISP and IAP

Status
Not open for further replies.

Jigar 4 Electronics

Full Member level 5
Joined
Apr 28, 2011
Messages
312
Helped
40
Reputation
82
Reaction score
38
Trophy points
1,318
Location
Hamilton, ON, Canada
Activity points
3,368
Hello Everyone,

Can anyone give me some examples which can clear me with the difference between ISP & IAP.
I've read datasheets and some threads and blogs and now I know something about it (about IAP).
But need an example to compare both which I didn't find anywhere.

In short and brief I know the following things about the difference of both:


In system programming (ISP) involves programming the firmware into the microprocessors after the hardware has already been assembled. By using FLASH microprocessors, the operation can be repeated as often as required for updating the code

In-Application Programming (IAP) means that the application itself can be re-program parts of the on-chip Flash ROM

But I need a specific practical example to know how can I go for IAP (Step by Step).
I've used ISP a lot, but has never tried IAP.
I am using p89v51rd2 uC but you can give example regarding to anyone.

Thanks for your time.
 

Our industry uses the term In-System Programming (ISP) in a general sense. ISP is applicable to programmable logic, as well as programmable Non-Volatile Memory (NVM). However, an additional term will be used very often In-Application Programming (IAP). There are subtle yet significant differences between ISP and IAP when microcontrollers are involved.
ISP of memory means that the MCU is off-line and not involved while memory is being programmed.
For IAP, the MCU participates in programming the memory, which is important for systems that must be online while updating firmware. Often, ISP is well suited for manufacturing, while IAP is appropriate for field updates.
Keep in mind that IAP can only program the memory sections of the controller and not the configuration and programmable logic portions.
With ISP, the entire controller can be erased or programmed.
 
Last edited:
@ ckshivram sir,

Thank you so much for your answer.

I've one more que. regarding to IAP.
What circuitry changes will be there while using IAP compare to the ISP ? (for Ex. in p89v51rd2 ?)

And can we say that IAP is better when we are solving any error on our code ? Or for projects on which we've to go for trial and error method while coding ? Because in IAP only, we can have our controller online during the loading procedure of hex file in to the memory.

If I am wrong with this assumption then please correct me sir.
 

IAP is used for debugging while aplication is running. changing the values in memory location directly instead of flashing and doing trial and error. It will erase only block of memory or memoriy location. but IAP and ISP has nothing to do with code error. if error is there you cannot flash image or do debugging. IAP is just used to correct the logic of code while running the application instead of reflashing the program whenever changes are made in program after compiling. so compiling and flashing program to memory can be avoided and more time can be saved.

Philips has given very good explanation of this in his data sheet.. read and come back if you have any doubt.
 
I got it sir.

And I've read the datasheet of p89v51rd2 to understand it again & I am clear with that now.

But an only last doubt is still there, while I was referring the datasheet of p89v51rd2, I've get how I can enable the IAP method.

After that In Section 7.2.7 (table 11 : IAP function calls)
It is stated that :

The programming functions are selected by setting up the microcontroller’s registers before making a call to PGM_MTP at 1FF0H.

Here the microcontroller's registers which have been used in Table 11 are R1, ACC, DPL & DPH.

Suppose the user had used both the DPTR registers provided in p89v51rd2 in his code, then while erasing/writing the specific sector of memory under IAP Method what will be the scenario ?? As DPH & DPL are needed by controller & At the same time a particular o/p which is already active is due to DPTR registers (used by the user in his code), then how the controller will edit the memory without disturbing the current situation of all other parts of memory ???

I don't know how much my que. is valid, but I am asking it because I wanna know that how a controller get updated using a reg. which is already busy ?

Thanks a lot for all your help sir.
 


Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top