Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
05/31/06 21:07
Modified:
  05/31/06 21:12

Read: times


 
#117438 - DS89C4x0 IAP/ISP explained
Responding to: ???'s previous message
Erik Malund said:
Okay so is there a difference between IAP and ISP? I also assumed they were the same
What I understand is that ISP is something that can be done with no software effort on your side, IAP requires some.

Erik

More specifically, ISP (in-system programming) is a feature implemented by a hardcoded bootloader present in the '420/'430/'440/'450 ROM. The chip's documentation indicates what hardware stimuli must be present to get the device to boot into this special ROM, the existence of which is otherwise effectively invisible* to you. When the device is running in ROM bootloader mode, your own code is not running. Interaction with the ROM-based bootloader is done over the first serial port of the device, at any of a number of baudrates that it supports; the API for interaction with the loader is also documented. You may choose to simply use Dallas' own tool (MTK) to interact with the ROM loader, a 3rd party tool such as mine (which complies with this API), or write an API-compliant tool of your own design if none of the other options suit your needs.

In the case of IAP, (in-application programming), your own embedded code, while running, has the ability to modify the contents of the '430/'440/'450's internal flash; this feature is not supported on the '420. IAP is done independently of the hardcoded ROM bootloader. All you do to write to the internal flash is follow the chip's documented procedure for writing the flash. What interface the code/data you write to flash comes from is up to you; any interface you have available is fine, but especially in the case of code, you must make sure that the integrity of the transmission is guaranteed. This of most significance in the presence of an unreliable link (think: radio interface without error correction). Additionally, the upstream source of the data, and how it is communicated (all the way down to physical layer), is up to you.

It is also worth noting that there is a history of issues related to ISP/IAP in early revisions of these devices; for more information about that, start here.

The long and short of this is that unless you have requirements calling for the support of IAP, the easiest path from an empty DS89C4x0 to one with your code on it in a prototyping environment is your lab bench parallel device programmer or ISP using a pre-existing tool.

--Sasha Jevtic

*effectively invisible is not to imply that undocumented hooks into this code do not exist. However, I have not seen suggestion of any such hooks in the publicly available documentation. Kevin Self might know otherwise, though.

List of 67 messages in thread
TopicAuthorDate
DS89C420 internal SRAM Access question            01/01/70 00:00      
   Timed access            01/01/70 00:00      
      Re: Timed access            01/01/70 00:00      
         Lacking ?            01/01/70 00:00      
            Re: Lacking            01/01/70 00:00      
   dunno            01/01/70 00:00      
      Re: dunno            01/01/70 00:00      
         lots of features to track            01/01/70 00:00      
   Example Code            01/01/70 00:00      
      Dallas SRAM Access            01/01/70 00:00      
   Update / Further Puzzle            01/01/70 00:00      
      False Alarm            01/01/70 00:00      
         A bug, maybe?            01/01/70 00:00      
            Isn't that CPU EOL (or not for new des?)            01/01/70 00:00      
               Yes, it's been replaced but he has it.            01/01/70 00:00      
                  Not Quite EOL but thats next ...            01/01/70 00:00      
                     Could be a disappointment            01/01/70 00:00      
                  how are you going to know if the problem            01/01/70 00:00      
                  Damned with faint praise!            01/01/70 00:00      
                     Clearly it's not for production            01/01/70 00:00      
                        Is there a difference between IAP & ISP?            01/01/70 00:00      
                           what I understand is            01/01/70 00:00      
                              DS89C4x0 IAP/ISP explained            01/01/70 00:00      
                           Final Update            01/01/70 00:00      
                              Try this            01/01/70 00:00      
                                 Re: Try this            01/01/70 00:00      
                                    It may be time for a different specimen            01/01/70 00:00      
                                       Re: new specimen            01/01/70 00:00      
                                          huh?            01/01/70 00:00      
                                             not enough benefit in replacing            01/01/70 00:00      
                                          I've been at this a LONG time ...            01/01/70 00:00      
                                    what does it return            01/01/70 00:00      
                                       returns 0x00            01/01/70 00:00      
                                          probably, but why?            01/01/70 00:00      
                                          I doubt you have to connect 'em            01/01/70 00:00      
                                              do not know what ISTR is            01/01/70 00:00      
                                                what it means            01/01/70 00:00      
                                                me either            01/01/70 00:00      
                                                   before you "move on"            01/01/70 00:00      
                                          oscillscope             01/01/70 00:00      
                                             it's not clear how a 'scope will help            01/01/70 00:00      
                                                Well a 'scope would ...            01/01/70 00:00      
                                                   exactly ... so why not have another look            01/01/70 00:00      
                                                      code?            01/01/70 00:00      
                                                         What about SFR definitions?            01/01/70 00:00      
                                                            SFR Def            01/01/70 00:00      
                                                            SFR was defined            01/01/70 00:00      
                                                               bad idea            01/01/70 00:00      
                                                                  Yep, it leads to confusion!            01/01/70 00:00      
                                    but...            01/01/70 00:00      
                                       confusion            01/01/70 00:00      
                                          That was what I wondered, too.            01/01/70 00:00      
                                             So ... What about it?            01/01/70 00:00      
                                             Clear a few things up            01/01/70 00:00      
                        wrong way around            01/01/70 00:00      
                     Most the time..            01/01/70 00:00      
                        That's undoubtedly the case.            01/01/70 00:00      
   Matthew, I am curious about something            01/01/70 00:00      
      Answer as best I can            01/01/70 00:00      
         It's still not clear ...            01/01/70 00:00      
            hmmm try some more            01/01/70 00:00      
               I don't think I'd try that ...            01/01/70 00:00      
                  Re:            01/01/70 00:00      
                     It's not rude ...            01/01/70 00:00      
                        Now ... here's what I did ...            01/01/70 00:00      
               test.asm once more            01/01/70 00:00      
                  Some more questions            01/01/70 00:00      

Back to Subject List