>What exactly are the advantages and disadvantages of an in-circuit >emulator and in-circuit debugger? An in circuit debugger is functionality that is already in most of the available PIC chips. All the 18F and larger chips have it as standard. Most of the larger 16F series have it as standard, but some of the smaller chips (e.g. 16F627/628/648) have a special chip on a plug in header available for doing debugging, as the standard chips only have the programming capability. In all cases the debug capability is an inherent part of the chip, and apart from using some of the chip ram and program space, there is a special register that can be set to an address that you wish to break program execution at to investigate the state of the registers. An in circuit emulator is a much more complex device (and thereby much more expensive) with an expanded ability over the in circuit debugger. Typically it will consist of a special probe that goes in place of the processor chip, which contains a special chip where the debug facility has access to all the registers as well as the program counter. So now not only can execution be stopped when the program counter is at a certain address, as can be done with the in circuit debug capability of the PIC chips, but multiple breakpoint addresses can often be set up. Other capabilities can include logic in the emulator unit that requires breakpoint addresses to be passed in a certain sequence before actually stopping program execution (a useful capability when debugging certain types of loops). Also because the registers can be accessed while the program is executing it is possible to stop program execution when a register reaches a certain value (or is greater than, or less than), or even when an operation such as a write to a register occurs irrespective of value (useful for catching errant program execution or missed banking register settings). Note that chips like the PIC24 series can have some of these emulator facilities on top of the basic debug facility due to smart software tricks that can allow multiple software breakpoints in the code. >For what types of projects is an in-circuit emulator more appropriate, >and for what types of projects is an in-circuit debugger more appropriate? In general, it is the complexity of the debug task that makes an emulator more appropriate. The cost of a person spending time debugging using the in circuit debug capability of a PIC soon rises to a point where, for a commercial operation, a proper in circuit emulator tool is the fastest way to debug code. In circuit debugging is a cheap way of accessing the hardware for basic systems, which can be appropriate in situations where having the full blown emulator is not practical. >What other questions should I be asking? How much money am I prepared to spend? The in circuit debug capability is available extremely cheaply by use of a PicKit or ICD, while an emulator is going to cost probably ten to a hundred times as much. -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist