Reply by James254 May 4, 20042004-05-04
Hi Jim and Thad,

Thanks for the clear suggestions. I've got no problems doing this; I
understand what you are trying to get me to do. I would have never thought
of doing it that way and it's something I won't forget.

Once again thanks for your help.
James

-- 
Please Note - E-mail address corrupt. Please change "no" to "i"

"Jim Granville" <no.spam@designtools.co.nz> wrote in message
news:VGylc.1626$s3.147557@news02.tsnz.net...
> Stef wrote: > > In comp.arch.embedded, > > James254 <james254@nohug.com.au> wrote: > > > >>Hi Jim, > >> > >>Should have been more elaborate :) > >>
<SNIP!>
> Use almost any assembler, and the ORG and DB commands therein > eg > ORG 1234H > DB 55H > ORG 4321H > DB 0AAH > > should ( after linking ) create a .HEX file with just those two bytes > 55H and 0AAH > You can also use an editor/Hex Calc, but for 100+ values, I'd favour > an assembler - simple, generic ones like AS do not need the link step. > > http://john.ccac.rwth-aachen.de:8000/as/ > > -jg >
--- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.672 / Virus Database: 434 - Release Date: 28/04/2004
Reply by Thad Smith May 3, 20042004-05-03
James254 wrote:

> I think I can get the EEPROM address locations (I already know the data > values) from the factory, but I'm not sure how I would go about writing the > .hex file. If you can suggest a user friendly windows program that would do > the job I would appreciate it!
If I were doing it, I would probably use an absolute assembler for some 8-bit micro -- it doesn't matter which one. Use ORG (starting addr) and DB <value> to define the values you want. Have the assembler generate a Intel or Motorola hex file. Thad
Reply by Jim Granville May 3, 20042004-05-03
Stef wrote:
> In comp.arch.embedded, > James254 <james254@nohug.com.au> wrote: > >>Hi Jim, >> >>Should have been more elaborate :) >> >>I think I can get the EEPROM address locations (I already know the data >>values) from the factory, but I'm not sure how I would go about writing the >>.hex file. If you can suggest a user friendly windows program that would do >>the job I would appreciate it! >> > > You did not specify a format, but from your extension it looks like you > want Intel hex. > > Intel hex: > http://www.google.com/search?q=intel+hex+format > > Motorola-S: > http://www.google.com/search?q=motorola+s+format > > You can write these file with any simple editor (like notepad) and a > calculator. But maybe someone here can point you to a more user friendly > editor for these files.
Use almost any assembler, and the ORG and DB commands therein eg ORG 1234H DB 55H ORG 4321H DB 0AAH should ( after linking ) create a .HEX file with just those two bytes 55H and 0AAH You can also use an editor/Hex Calc, but for 100+ values, I'd favour an assembler - simple, generic ones like AS do not need the link step. http://john.ccac.rwth-aachen.de:8000/as/ -jg
Reply by Stef May 3, 20042004-05-03
In comp.arch.embedded,
James254 <james254@nohug.com.au> wrote:
>Hi Jim, > >Should have been more elaborate :) > >I think I can get the EEPROM address locations (I already know the data >values) from the factory, but I'm not sure how I would go about writing the >.hex file. If you can suggest a user friendly windows program that would do >the job I would appreciate it! >
You did not specify a format, but from your extension it looks like you want Intel hex. Intel hex: http://www.google.com/search?q=intel+hex+format Motorola-S: http://www.google.com/search?q=motorola+s+format You can write these file with any simple editor (like notepad) and a calculator. But maybe someone here can point you to a more user friendly editor for these files. -- Stef (remove caps, dashes and .invalid from e-mail address to reply) The Golden Rule of Arts and Sciences: He who has the gold makes the rules.
Reply by James254 May 3, 20042004-05-03
Hi Jim,

Should have been more elaborate :)

I think I can get the EEPROM address locations (I already know the data
values) from the factory, but I'm not sure how I would go about writing the
.hex file. If you can suggest a user friendly windows program that would do
the job I would appreciate it!

Thanks in advance,
James
-- 
Please Note - E-mail address corrupt. Please change "no" to "i"
"Jim Granville" <no.spam@designtools.co.nz> wrote in message
news:msqlc.1539$s3.138046@news02.tsnz.net...
> James254 wrote: > > Hi Jim, CodeSprite & Mickey, > > > > Thanks for taking the time to reply. > >
<SNIP other stuff>
> > Is it possible to write a .hex file to change 116 non-sequential
locations?
> > yes. >
--- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.672 / Virus Database: 434 - Release Date: 28/04/2004
Reply by Jim Granville May 3, 20042004-05-03
James254 wrote:
> Hi Jim, CodeSprite & Mickey, > > Thanks for taking the time to reply. > > I should have made myself a little clearer in the original message. I only > provide the support for the product (I don't have access to the code for the > microcontroller, therefore there is no possibility of using the RS232 > connector to change the EEPROM data. The factory will not release the > information it's a secret!). > > So the options left open to me are to make a device that programs the EEPROM > when it's removed from the product. I think that I could do that using a PIC > microcontroller but it'll take me some time as I've never written I2C code > for this microcontroller. > > I think Jim's idea about asking the factory write a .hex file that changes > just the 116 locations is the best idea. > > Is it possible to write a .hex file to change 116 non-sequential locations?
yes.
Reply by James254 May 3, 20042004-05-03
Hi Jim, CodeSprite & Mickey,

Thanks for taking the time to reply.

I should have made myself a little clearer in the original message. I only
provide the support for the product (I don't have access to the code for the
microcontroller, therefore there is no possibility of using the RS232
connector to change the EEPROM data. The factory will not release the
information it's a secret!).

So the options left open to me are to make a device that programs the EEPROM
when it's removed from the product. I think that I could do that using a PIC
microcontroller but it'll take me some time as I've never written I2C code
for this microcontroller.

I think Jim's idea about asking the factory write a .hex file that changes
just the 116 locations is the best idea.

Is it possible to write a .hex file to change 116 non-sequential locations?

If so, I think that Ponyprog software and a "Easy I2C" programmer will do
the job. What do you think?

Thanks in advance,
James

PS. I'm open to suggestions if anyone has a better idea...

"James254" <james254@nohug.com.au> wrote in message
news:c71sme$hhp$2@lust.ihug.co.nz...
> Hi All, > > I support a product that's been manufactured with a bug in the flash
memory
> of the microcontroller. The factory has come up with a solution and the > design allows the update to be loaded via the products RS232 connector, so > this part is simple. > > When the update is done I need to go into the adjustment menu and manually > edit 116 different locations in the EEPROM according to a table provided
by
> the factory. Now there is a high chance for error as it's a mind numbingly > boring exercise to change the data, it's not as simple as changing a
setting
> from 0 to 1. > > My thought is to do the following > > 1. Remove the EEPROM from the product and install it in a programmer. > > 2. Download the contents of the EEPROM to a PC (Unfortunately every EEPROM > contains certain addresses that are specific to the product, such as A-D > gain and offset adjustments, Hour meter etc so we can't simply install > factory initial data) > > 3. Have the programmer software "OR" the downloaded data with a file that > changes only the 116 locations. > > 4. Upload the modified file to the EEPROM. > > 5. Install the EEPROM back in the product. > > Does anyone know of a programmer and software that will allow you to do > this? > > Thanks in advance! > James > -- > Please Note - E-mail address corrupt. Please change "no" to "i" >
--- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.672 / Virus Database: 434 - Release Date: 28/04/2004
Reply by Mickey May 3, 20042004-05-03
I would do one of the following things:

1. Enable device in which EEPROM is inside to program the EEPROM on
    PC request, and just those addresses you need

2. Make a device for programming EEPROMs from PC

Mickey

"James254" <james254@nohug.com.au> wrote in message
news:c71sme$hhp$2@lust.ihug.co.nz...
> Hi All, > > I support a product that's been manufactured with a bug in the flash
memory
> of the microcontroller. The factory has come up with a solution and the > design allows the update to be loaded via the products RS232 connector, so > this part is simple. > > When the update is done I need to go into the adjustment menu and manually > edit 116 different locations in the EEPROM according to a table provided
by
> the factory. Now there is a high chance for error as it's a mind numbingly > boring exercise to change the data, it's not as simple as changing a
setting
> from 0 to 1. > > My thought is to do the following > > 1. Remove the EEPROM from the product and install it in a programmer. > > 2. Download the contents of the EEPROM to a PC (Unfortunately every EEPROM > contains certain addresses that are specific to the product, such as A-D > gain and offset adjustments, Hour meter etc so we can't simply install > factory initial data) > > 3. Have the programmer software "OR" the downloaded data with a file that > changes only the 116 locations. > > 4. Upload the modified file to the EEPROM. > > 5. Install the EEPROM back in the product. > > Does anyone know of a programmer and software that will allow you to do > this? > > Thanks in advance! > James > -- > Please Note - E-mail address corrupt. Please change "no" to "i" > > > > --- > Outgoing mail is certified Virus Free. > Checked by AVG anti-virus system (http://www.grisoft.com). > Version: 6.0.672 / Virus Database: 434 - Release Date: 28/04/2004 > >
Reply by CodeSprite May 2, 20042004-05-02
"James254" <james254@nohug.com.au> wrote in
news:c71sme$hhp$2@lust.ihug.co.nz: 

> Hi All, > > I support a product that's been manufactured with a bug in the flash > memory of the microcontroller. The factory has come up with a solution > and the design allows the update to be loaded via the products RS232 > connector, so this part is simple. > > When the update is done I need to go into the adjustment menu and > manually edit 116 different locations in the EEPROM according to a > table provided by the factory. Now there is a high chance for error as > it's a mind numbingly boring exercise to change the data, it's not as > simple as changing a setting from 0 to 1.
Hi James, If you can download a program through the serial port, wouldn't it be more convenient to download a tiny program to change those 116 locations without removing the EEPROM from the product? I'm assuming the product has in- circuit programming capabilities (for storing its gain setting etc) so you could even call the existing function rather than writing another in the downloaded app, minimising the transfer time over RS232. Peter.
Reply by Jim Granville May 2, 20042004-05-02
James254 wrote:

> Hi All, > > I support a product that's been manufactured with a bug in the flash memory > of the microcontroller. The factory has come up with a solution and the > design allows the update to be loaded via the products RS232 connector, so > this part is simple. > > When the update is done I need to go into the adjustment menu and manually > edit 116 different locations in the EEPROM according to a table provided by > the factory. Now there is a high chance for error as it's a mind numbingly > boring exercise to change the data, it's not as simple as changing a setting > from 0 to 1. > > My thought is to do the following > > 1. Remove the EEPROM from the product and install it in a programmer. > > 2. Download the contents of the EEPROM to a PC (Unfortunately every EEPROM > contains certain addresses that are specific to the product, such as A-D > gain and offset adjustments, Hour meter etc so we can't simply install > factory initial data) > > 3. Have the programmer software "OR" the downloaded data with a file that > changes only the 116 locations. > > 4. Upload the modified file to the EEPROM. > > 5. Install the EEPROM back in the product. > > Does anyone know of a programmer and software that will allow you to do > this?
Most device programmers should do this. Assuming your 116 locations are fixed, you would be best to create a HEX file with _just_those_locations_. Ask the factory for this file, if you are unsure how to create one :) Then, your operation would be - Install Device - READ Device into programmer buffer - Load FixFile.HEX - this should REPLACE.Merge just the 116 values. [ I think that is what you want, rather than a Logical OR ? ] - PROGRAM the device. That preserves the original EE contents, but replaces your FixUp values. -jg