Solved

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

Posted on 2011-02-22
8
862 Views
Last Modified: 2013-12-10
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
Comment
Question by:RocksOfSteel
  • 5
  • 3
8 Comments
 
LVL 69

Expert Comment

by:Callandor
Comment Utility
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
 

Author Comment

by:RocksOfSteel
Comment Utility
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
 
LVL 69

Expert Comment

by:Callandor
Comment Utility
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
 

Author Comment

by:RocksOfSteel
Comment Utility
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
Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

 
LVL 69

Expert Comment

by:Callandor
Comment Utility
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
 

Author Comment

by:RocksOfSteel
Comment Utility
Thanks Callandor,
I have a solution, I'll update here on Monday.
0
 

Accepted Solution

by:
RocksOfSteel earned 0 total points
Comment Utility
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
 

Author Closing Comment

by:RocksOfSteel
Comment Utility
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

Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

Join & Write a Comment

Hello It is a very old trick to use a ram disk in order to boost PC performances, in the past, when in home environments the fastest common devices were floppy disks a part of the very small ram memory available was used to create a virtual hard …
System overheating may become a serious problem if not taken care of at the proper time. I am writing this article because I faced a similar problem. Intro All electronic devices produce heat, but computers are a special case - the processors bo…
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now