'In Curcuit Debugging (ICD) with 16F87X'
I was wondering if anyone had some details on the ICD capabilities of the
new 16F87X family. Can't seem to find much on the microchip web site. Will
this feature eventually make emulators redundant?
Probably not. What this is is a serial connection from the 877 to the PC
via an RS232 serial link. There is a small
amount of code that is downloaded to the 877 from the PC
whenever the ICD session is begun. I believe it reserves the
top 256 bytes of the program memory store. Anyway, this code
in conjunction with the PC allows the registers and I/O's to
be examined and changed. And it will execute your code in
real time. You are limited to one breakpoint at a time, but
you can reset the breakpoint as many times as you want to.
This is basically a poor mans ICE. Also, you can emulate
most other 28 and 40 pin parts as long as you use only the
hardware that the part you are emulating is equipped with.
I was told you couldn't emulate the 18 pin parts, but I
don't know why not. As long as you keep in mind what you
are doing. The serial link takes pins RB6 and RB7 I believe.
They did this to maintain compability with the ICSP process.
At the seminars, they run $120.00. I think they are a little
more when purchased from Microchip directly. I bought one,
but it won't be delivered until about may 5, 1999. Apparently,
it's taken them longer than expected to ramp up production
to sufficient quantities to cover everyone. I can't wait
till I get mine. Hope this helps.
>I was wondering if anyone had some details on the ICD capabilities of the
>new 16F87X family. Can't seem to find much on the microchip web site. Will
>this feature eventually make emulators redundant?
|On Wed, 28 Apr 1999, Hamish Seaton wrote:
> I was wondering if anyone had some details on the ICD capabilities of
> the new 16F87X family. Can't seem to find much on the microchip web
> site. Will this feature eventually make emulators redundant?
No. The ICD will not replace the functionality of an emulator.
The ICD is a nice product, and is no doubt a valuable debugging tool when
it comes to debugging 16f87x code - but is still not as good as an
The ICD's first shortcoming is the fact that it is significantly slower
than an emulator. While it is true that the ICD executes code at real
time, it takes longer to download the registers and selected ram
components to the PC debugging program (mplab) at the breakpoint or
between single-stepping. This is simply a limitation of the serial
transmission speed. If you are debugging some code and only care to see a
few registers, then it is very fast. However, if you want to watch all of
your available file registers change as you single-step through your code,
then it is very slow. Basically, the more variables you want to watch,
the slower the ICD runs.
The second shortcoming if the ICD is the fact that program execution
'skids' past the selected breakpoint by one instruction. This is an
effect of the instruction fetching that the ICD does while it is executing
the previous instruction (which may be the breakpoint!). This is not a
bad drawback, simply place your breakpoint ust before the desired
On the bright side, Microchip plans to include the ICD protocol in future
flash parts. I would assume that the ICD unit would support these
More... (looser matching)
- Last day of these posts
- In 1999
, 2000 only
- New search...