Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 943
  • Last Modified:

ISP using the 89C51RE2 not the same as the 89C51RD2

Hello Experts.
I've been charged with the task of programming a 89C51RE2 via the bootloader ISP interface. I have done this already for the 89C51RD2 with no problems.
The RE2 does things differently, in a way I don't understand. I'd like a nudge in the right direction please. Google hasn't helped me at all.

For instance to read the FLASH memory from address 0x7E00 to 0x7E20 on the RD2 I'd use the following command:
":05000004FE00FE2000DB"

Open in new window

What would be the equivalent command for the RE2?

To write 0x01 to address 0x7E00 on the RD2 I'd use:
":017E00000180"

Open in new window

What would be the equivalent command for the RE2?

Many thanks
Andy
0
RocksOfSteel
Asked:
RocksOfSteel
  • 5
  • 3
1 Solution
 
CallandorCommented:
Are you asking for a utility, or a specific language?  According to this http://www.keil.com/support/docs/2292.htm, FLIP from Atmel http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3886 should let you program the RD2.  If you're asking for specific machine instructions, sorry, I don't know that answer.
0
 
RocksOfSteelAuthor Commented:
I'm not asking for a utility, I want do write my own.  And it's the RE2 solution I'm after, I can already do the RD2. The RE2 is 128k so the solution has something to do with selecting the right memory page to write to (or read from). But I can find no reference to how to do it.

0
 
CallandorCommented:
Take a look at this thread: http://www.keil.com/forum/16348/ - someone is asking how to program the 89C51RE2 using KEILuvision4.

A different approach might be to compile a program using a higher-level language (http://www.keil.com/support/man/docs/c51/c51_le_memtypes.htm) and look at the code it generates.

Programming in machine language is a lost art these days.
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
RocksOfSteelAuthor Commented:
Hi Callandor,

Programming in machine language is a lost art these days.
I think you've misunderstood what I'm trying to do. I don't want to write to flash via code in the µP. I want to write to FLASH memory externally using the built in Bootloader and ISP (In-system-programming) via RS232 from a PC.
As I said, I've cracked it using the RD2 but not the RE2 (128k version).

The command strings in my original question are sent to the µ over RS232 after the PSEN has been pulled low.
0
 
CallandorCommented:
Ok, then I am unable to provide any more info along those lines.  Hopefully, someone with the right knowledge will be able to pick this up.
0
 
RocksOfSteelAuthor Commented:
Thanks Callandor,
I have a solution, I'll update here on Monday.
0
 
RocksOfSteelAuthor Commented:
Ok,
It's straight forward really. You have to select the memory page first.

So to write to an address between 0 and 7FFF:
Using the RC2/RD2 you send the following sting (without spaces):
":05 0000 04 FE00 FE20 00 DB"
where:
05 is the number of data elements.
0000 is an offset and is always zero.
04 is the read command
FE00 is the start address
FE20 is the final address
00 is always zero
DB is the Checksum

The same command is true on the RE2 but before you send it you must select the page. In the above case the page is page 0.
":02 0000 04 00 00 FA"
Where:
02 is the number of data elements.
0000 is an offset and is always zero.
04 is the record type (Select memory)
FE00 is the start address
FE20 is the final address
00 is FLASH memory
00 is page 0 (01 would be page 1)
FA is the Checksum

Hope this helps anyone in the same predicament as I found myself in.
0
 
RocksOfSteelAuthor Commented:
I have excepted my own comment as the solution because I found the solution myself be snooping on the RS232 lines while Atmel's FLIP programmer did it's thing.
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

  • 5
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now