Searching \ for ' [PIC] Programming 16F877' 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: 'Programming 16F877'.

No exact or substring matches. trying for part
PICList Thread
'[PICLIST] [PIC] Programming 16F877'
2001\02\01@010507 by Jeethu Rao

flavicon
face
Hi Guys,

Can someone tell me where the EEPROM data Location is in the Memory Map of a 16f877 ?

The data-sheet does'nt mention this nor does the Microchip ICSP guide. The only thing I could notice in the ICSP guide was that it says in a 16f84, the data eeprom is at the location 0x2100 .

Is this location the same for 16f877 ?

Jeethu Rao

--
http://www.piclist.com hint: PICList Posts must start with ONE topic:
[PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads


2001\02\01@064556 by Byron A Jeff

face picon face
>
> Hi Guys,
>
> Can someone tell me where the EEPROM data Location is in the Memory Map =
> of a 16f877 ?
>
> The data-sheet does'nt mention this nor does the Microchip ICSP guide. =
> The only thing I could notice in the ICSP guide was that it says in a =
> 16f84, the data eeprom is at the location 0x2100 .

That's not how the data EEPROM works. It's described in chapter 4 of the data
sheet. The data eeprom has an address and data registers along with control
bits. Data EEPROM writes and reads are done be setting the address register,
and then twiddling the appropriate control bits.

When programming using a programmer there's a Program/Read data memory command.
However I do admit that it's unclear as to how to advance the part to program
or read subsequent addresses. My guess is that the Increment Address will
increment the data memory address after a data memory load/read command.
Can anyone comment on this?

The 0x2100 is simply a mapping for the data of the data EEPROM in the hex
object file so that assemblers can specify the EEPROM data to be loaded
when the program is loaded.

>
> Is this location the same for 16f877 ?

It's the same logical address for all PIC parts with EEPROM.

BAJ

--
http://www.piclist.com hint: PICList Posts must start with ONE topic:
[PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads


2001\02\01@164816 by Tony Nixon

flavicon
picon face
Byron A Jeff wrote:
{Quote hidden}

To program the data EEPROM, the EEPROM data address defaults to 00h on
chip reset as well as the ROM address.

There is no need to set any address unles you want to move to a
different one by using the increment address command.

Just use the Load/Read for data memory commands instead of the Load/Read
for program memory.


--
Best regards

Tony

mICro's
http://www.picnpoke.com
spam_OUTsalesTakeThisOuTspampicnpoke.com

--
http://www.piclist.com hint: PICList Posts must start with ONE topic:
[PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads


2001\02\01@171133 by Byron A Jeff

face picon face
>
> Byron A Jeff wrote:
> >
> > >
> > > Hi Guys,
> > >
> > > Can someone tell me where the EEPROM data Location is in the Memory Map =
> > > of a 16f877 ?
> > >
>
> To program the data EEPROM, the EEPROM data address defaults to 00h on
> chip reset as well as the ROM address.
>
> There is no need to set any address unles you want to move to a
> different one by using the increment address command.

This is the confusion I want to clear up. I'm presuming that there are two
different counters for the program and data memories. However there's only
one increment command.

So I'm presuming that the Increment Address will increment whatever counter
was applied during the last read/load/program command right?

>
> Just use the Load/Read for data memory commands instead of the Load/Read
> for program memory.

My only question applied to increment address.

BAJ

--
http://www.piclist.com hint: PICList Posts must start with ONE topic:
[PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads


2001\02\01@173407 by Tony Nixon

flavicon
picon face
Byron A Jeff wrote:
{Quote hidden}

I honestly have no idea, but I imagine the PC is used for both. You
would get a wrap around if the data EEPROM memory limits are exceeded,
the same for ROM.

Only when you jump to the config words will things change.

I only program/read ROM or EEPROM, not swap randomly between them,
although if you knew the data in each menory block at a given address,
just do a read ROM and a read EEPROM and verify the data. Inc the
address, do another read ROM and EEPROM and see if the data matches
again for both. I imagine they would.


--
Best regards

Tony

mICro's
http://www.picnpoke.com
.....salesKILLspamspam@spam@picnpoke.com

--
http://www.piclist.com hint: PICList Posts must start with ONE topic:
[PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads


2001\02\01@195626 by Byron A Jeff

face picon face
{Quote hidden}

Got it. There's only a single PC and the lower 8 bits of the address is used
to address the data EEPROM.

>
> Only when you jump to the config words will things change.
>
> I only program/read ROM or EEPROM, not swap randomly between them,
> although if you knew the data in each menory block at a given address,
> just do a read ROM and a read EEPROM and verify the data. Inc the
> address, do another read ROM and EEPROM and see if the data matches
> again for both. I imagine they would.

But that way really doesn't make sense. Now let me guess the magic incantation:

You must reset the part after programming the config word and programming the
data EEPROM.

That way the PC is reset to 0 and can be used to address the data EEPROM.

Got it.

One last thing Tony, do you have any publicly available source code that will
program one 16F87X part with another? About 5 weeks ago I started work on a
cloner for Wouter's Wloader. However I'm been stuck because my code doesn't
cause the target PIC to output its contents when a read location command
is issued.

I have no problem posting my code, but it's kind of dirty because I integrated
routines for driving an HP LED display I built. Take a look here:

http://www.d3j.com/clone.html

I'm especially interested in the initprog, bulkerase, cmdout, dataout, and
datain routines because they are associated with the programming process.

I'll do my best to answer quick questions, but if it's something more indepth
it may take awhile before I get back to it.

Thanks,

BAJ

--
http://www.piclist.com hint: PICList Posts must start with ONE topic:
[PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads


2001\02\01@204916 by Tony Nixon

flavicon
picon face
> > I honestly have no idea, but I imagine the PC is used for both. You
> > would get a wrap around if the data EEPROM memory limits are exceeded,
> > the same for ROM.
>
> Got it. There's only a single PC and the lower 8 bits of the address is used
> to address the data EEPROM.

Not necessarily the lower 8 bits.

The 16F84 for example will wrap around after 6 bits because only 64
eeprom registers are available.

> > I only program/read ROM or EEPROM, not swap randomly between them,
> > although if you knew the data in each menory block at a given address,
> > just do a read ROM and a read EEPROM and verify the data. Inc the
> > address, do another read ROM and EEPROM and see if the data matches
> > again for both. I imagine they would.
> But that way really doesn't make sense. Now let me guess the magic incantation:

That was only an example to test that a single address counter is being
used for both ROM and EEPROM addresses during programming/reading.

> One last thing Tony, do you have any publicly available source code that will
> program one 16F87X part with another? About 5 weeks ago I started work on a
> cloner for Wouter's Wloader. However I'm been stuck because my code doesn't
> cause the target PIC to output its contents when a read location command
> is issued.

Not yet. But when the Pocket programmer is finished, the source code
will be available and with 18Cxxx programmer code as well.

> I have no problem posting my code, but it's kind of dirty because I integrated
> routines for driving an HP LED display I built. Take a look here:
>
> http://www.d3j.com/clone.html
>
> I'm especially interested in the initprog, bulkerase, cmdout, dataout, and
> datain routines because they are associated with the programming process.

I had a brief look, and can't offer much help right now as I'm pressed
for time. Programmer code can get a bit complex to debug especially when
mixed with an unfamiliar operating system. Wait till you see the
Pocket's innards ;-)

--
Best regards

Tony

mICro's
http://www.picnpoke.com
salesspamKILLspampicnpoke.com

--
http://www.piclist.com hint: PICList Posts must start with ONE topic:
[PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads


2001\02\02@083750 by Wynn Rostek

flavicon
face
 When you want to program the EEPROM at the same time as the FLASH:

ORG      0x4200

Wynn Rostek

--
http://www.piclist.com hint: The list server can filter out subtopics
(like ads or off topics) for you. See http://www.piclist.com/#topics


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