Searching \ for 'Second pass programming OTP's' in subject line. ()
Make payments with PayPal - it's fast, free and secure! Help us get a faster server
FAQ page: www.piclist.com/techref/microchip/devprogs.htm?key=programming
Search entire site for: 'Second pass programming OTP's'.

Truncated match.
PICList Thread
'Second pass programming OTP's'
1998\10\11@022027 by James Cameron

flavicon
face
How feasible is it to adjust code in an OTP chip?

For example, I've made a mistake on a 12C509 OTP, in that a BTFSS
should be a BTFSC instead.  Rather than chuck the chip, how do I just
fix that instruction?

The bit change is from a one to a zero.

0111bbbfffffff  BTFSS
0110bbbfffffff  BTFSC

Do just I code up an assembly file with an "ORG" at that point, with the
BTFSC instruction, and then attempt to program it?

I should I take the whole file, make the small change, and then assemble
and program it?

What do people do?

--
James Cameron                                    (spam_OUTcameronTakeThisOuTspamstl.dec.com)
Digital Equipment Corporation (Australia) Pty. Ltd. A.C.N. 000 446 800

1998\10\11@092911 by Octavio Nogueira

flavicon
face
{Quote hidden}

You can just make the change, assemble and program it provided that
you do not change anything else like include/exclude instructions.
ProPic 2 will program the chip without problem.

Octavio
=======================================================
Octavio Nogueira - nogueiraspamKILLspammandic.com.br ICQ# 19841898
>From the creator of ProPic,   ProPic 2  now much better
*        http://members.tripod.com/ProPic             *
* PIC Programmer for Windows with down to earth price *
=======================================================

1998\10\11@194851 by James Cameron

flavicon
face
Octavio Nogueira wrote:
> You can just make the change, assemble and program it provided that
> you do not change anything else like include/exclude instructions.

Thanks, Octavio.  It worked.  Saved myself the price of a large dose
of fried potato chips.

> ProPic 2 will program the chip without problem.

Erk, Windows.  ;-)  Sorry, I don't use that.  At the moment I'm using
P16PRO (for the 21 day evaluation period, of which I've used two days)
by booting MS-DOS off floppy.

Looks like I'm going to have to code my own PIC OTP EPROM programmer for
Linux.  Unless there are some nice working tested code snippets around.

Luckily I've got a copy of picprg for Linux-based burning of 16F84's,
but it doesn't yet do EPROMs.

--
James Cameron                                    (.....cameronKILLspamspam.....stl.dec.com)
Digital Equipment Corporation (Australia) Pty. Ltd. A.C.N. 000 446 800

1998\10\12@021040 by tjaart

flavicon
face
James Cameron wrote:

> How feasible is it to adjust code in an OTP chip?
>
> For example, I've made a mistake on a 12C509 OTP, in that a BTFSS
> should be a BTFSC instead.  Rather than chuck the chip, how do I just
> fix that instruction?
>
> The bit change is from a one to a zero.
>
> 0111bbbfffffff  BTFSS
> 0110bbbfffffff  BTFSC
>
> Do just I code up an assembly file with an "ORG" at that point, with the
> BTFSC instruction, and then attempt to program it?
>
> I should I take the whole file, make the small change, and then assemble
> and program it?
>
> What do people do?

Panic! ;)

Seriously, you can do it in one of two ways :
1) Write your major routines in sections. Have a look-up table with
  pointers to the addresses of these routines. In your look-up routine,
  you check for h0000's. If you get a h0000, you go to the next table
  entry. To make a change, you append the new routine to the end
  of your program. The current table entry is programmed to h0000,
  and the next one is programmed to contain the address of the new
  routine.
2) If you want to change a bit from '1' to '0', you can. You can't
  change a bit from '0' to '1' though.

--
Friendly Regards

Tjaart van der Walt
EraseMEtjaartspam_OUTspamTakeThisOuTwasp.co.za

|--------------------------------------------------|
|                WASP International                |
|R&D Engineer : GSM peripheral services development|
|--------------------------------------------------|
|SMS tjaartspamspam_OUTsms.wasp.co.za  (160 chars max)|
|     http://www.wasp.co.za/~tjaart/index.html     |
|Voice: +27-(0)11-622-8686  Fax: +27-(0)11-622-8973|
|          WGS-84 : 26¡10.52'S 28¡06.19'E          |
|--------------------------------------------------|

1998\10\19@112017 by John Payson

flavicon
face
part 0 1498 bytes
|For example, I've made a mistake on a 12C509 OTP, in that a BTFSS
|should be a BTFSC instead.  Rather than chuck the chip, how do I just
|fix that instruction?

|I should I take the whole file, make the small change, and then assemble
|and program it?

Your options depend upon the type of programmer you're using.  On
my favorite programmer, the one I did myself, chips are scanned at
low-VDD to ensure that there aren't any "zeroes" where "ones" are
required.  Locations which are not defined in the hex file may be
treated several ways:

[1] Require to be $3FFF; if not $3FFF abort.
[2] Ignore; if blank, leave that way.  Otherwise leave with old value.
[3] If blank, leave blank; otherwise force to $0000.
[4] Force to $0000.

Generally there are two ways by which a chip may be over-burned:
individual instructions may be patched, as in your example, or (if
there's room) a new copy of the code may be placed at another add-
ress.  Note that the programmer has no objection to being fed the
whole program (including those parts which are unchanged); for any
option other than #2 that is required if things are to work.

The ability to add code to parts without erasing them can be very
handy when using either OTP's or "scarce" window parts (to avoid
having to erase them very often).  Unfortunately, some programmers
like the BP like to program unused addresses with zeroes (BOO!) and
compiler support for "incremental burning" is AFAIK nonexistent.

More... (looser matching)
- Last day of these posts
- In 1998 , 1999 only
- Today
- New search...