PDA

View Full Version : EEPROM Programming


hnwynters
08-30-04, 04:29 PM
Hi, I have the NMIY-0020 and want to move a program to EEPROM. I'm having difficulties locating a clear method for doing so and thought I'd inquire here.

I understand there is(?) an EEPROM already installed that holds 512 bytes. This address seems to span $B600 - $B7FF. I also understand I can substitute (where I'm unsure of) an EEPROM of 28C64 - 8K or 28C256 - 32K.

I also understand I need to move a jumper before I load my program into the EEPROM and then back after I'm finished but that is also unclear.

Is there a clear method and explanation by which I can accomplish this task? If you can point me to a location on the web that would be equally helpful.

Thanks

Heather

RMDumse
08-30-04, 05:28 PM
The 512 bytes of EEPROM are internal to the processor, built in. There's a CONFIG register which can be reprogrammed to enable or disable certain internal features, like the internal EEPROM and internal ROM, but that's a special bootstrap function, not normally something you have to worry about.

Yes, the external sockets can accept quite a number of types of memory devices. 28C64's are one EEPROM that will work in those sockets. The software in the processor has routines that will program both its internal and external EEPROM.

With EEPROM's, they can be configured like RAM's and the R/W line can be applied to them. In fact, the R/W line is necessary to be able to program them. However, to preserve the contents and not allow them to be accessed, it's good to remove the R/W line when there's no need of programming them. This is probably the specific jumper you were thinking of needing to add and remove. Letting the line float isn't good either, so, there's a place a pull up resistor can be added to the EEPROM's R/W input, so if you pull the jumper, it goes high, and tells the device always to be read, and never written.

These details are covered in the User Manual which comes on the utility disk with the board. Do you have that utility disk?

RMDumse
08-30-04, 05:31 PM
If you don't have the manual, look at the on-line documentation for the NMIX-0020-OEM board which has similar memory configuration.

http://www.newmicros.com/store/product_manual/NMIX-0020-OEM.html

Look at page 18 in particular

hnwynters
09-02-04, 01:43 AM
I think I might understand what to do but honestly the manual is a bit vague. Is it possible to make an EEPROM, say an 8K or a 32K chip to put into one of the slots? Of course, my program is just a bit too large for 512 bytes.

RMDumse
09-02-04, 02:27 AM
Originally posted by hnwynters
Is it possible to make an EEPROM, say an 8K or a 32K chip to put into one of the slots?

Yes. I personally seldom work with the HC11 anymore, but I used to use 8K EEPROMs all the time to hold my programs. I'm not sure if it is easy to get 8K devices any more. I know it is very difficult to find 8K RAMs and we can only buy 32K RAMs and nothing smaller.

RMDumse
09-02-04, 02:36 AM
Here is the pertinate portion from that manual about setting up those memory sockets:


GENERAL PURPOSE SOCKET - U6, U7, U8



Jumper Settings for Standard JEDEC 24/28 Pin Devices





ALL 8K X 8 DEVICES

2764, 2864, 6264



PIN 1 PIN 26 PIN 27

+---+---+---+---+---+---+

| | X | X | | | X | *

| | X | X | | | X |

+---+---+---+---+---+---+

A14 +5V +5V A13 A14 RR/W



* Rev 2.x has option of pullups on R/W lines to write protect

RAMs in socket. To use, install 100K pullup resistor & remove

jumper for pin 27. If battery backup is in use, RAM will then

emulate ROM.


Unfortunately the ASCII diagram doesn't hold its spaces posted here, so the jumper diagram looks flat here. So to explain the diagram, there are six jumpers across the bottom of the socket. Some jumpers are present, some are not. To use a 28C64, which is a 8K EEPROM, the jumpers should be (left to right, top view of board, oriented with socket up from jumpers) OFF ON ON OFF OFF ON.

nmitech
09-02-04, 11:32 AM
Here is the link for the NMIY-0020 manual,
http://www.newmicros.com/store/product_manual/NMIY-0020.pdf

Please see section 4.8 for memory map, along with section 6 for memory jumper configurations

hnwynters
09-21-04, 06:02 AM
Thank you so much for pointing me in what I hope is a direction I can follow. I'm going to try to get this to work. But please bear with me and let's see if I can accurately describe what needs to be done.

I have a 32K, 28C256 EEPROM. I place it in the far right socket which is U4. To do this on my board requires I remove the Buffalo monitor chip. I place the jumpers at the bottom of the socket, section P, to show that, read left to right, pin pairs 1, 4, and 6 are jumpered. According to the manual I read these pins as A14, A14, and RR/W pairs.

I must move the H5 jumper to be connected to +5vdc, which is on the two pins closest to the high side of the board, that is furthest from the H5 label, I find for U4 I will have the following memory locations available to me:
$8000-$FFFF

I modify my program to have an origin at, let's say $8000 and compile it. I use ASMIde to develop and download my programs. Then I download the program to the chip using that location. If I understand the process at this point I have an EEPROM programmed with my program that should run okay. I believe I must modify the memory locations where I read and write data to to be in the area of RAM which I believe is on the chip located in the U2 socket. That appears to use memory addresses $0000-$7FFF. Allowing for the area used by the Buffalo monitor I do not believe there will be a conflict. I could in effect for all the temporary variables to be in the $6000 range and be safe assuming I don't use any zero page addressing.

Perhaps I'm doing okay so far. Now I then remove the jumper at the far right of the P section which is the RR/W line. That will protect my chip from being overwritten by something I might accidently do later.

I'm a bit confused where I actually put the 100K resistors. From the manual it appears, to me anyway, that pins 28 and 27 need a 100K resistor connected between them. That location seems ambigious to me but I am guessing it is the two pins closest to the C9 label on the board which is right beside the U10 chip. There also appears to be a small capacitor beside pin 27. Yet from what I read from the manual for the NMIX-0020-OEM manual I was referred to I should use the expansion port for hooking up the resistor. If so, it appears I would place a 100K resistor in the 4th and 5th sockets (pins) from the top on the right hand side. That appears to the be the +5v and the R/W sockets (pins).

If I'm even close at this point the last thing I would need to do is to tell the board where to start executing the program when I turn it on and/or press the reset button. Now I'm lost. I'm not really sure where I do this or even how I do it. I need help at this point.

I do not require the use of the Buffalo monitor for my program to operate so if I'm completely gotten all this wrong and need to move it I can do so without a problem.

I'm really sorry if I am a pain but I just don't seem to be able to follow the manual.

nmitech
09-21-04, 10:18 AM
I have a 32K, 28C256 EEPROM. I place it in the far right socket which is U4. To do this on my board requires I remove the Buffalo monitor chip. I place the jumpers at the bottom of the socket, section P, to show that, read left to right, pin pairs 1, 4, and 6 are jumpered. According to the manual I read these pins as A14, A14, and RR/W pairs.

please see the picture attached for your reference,
http://www.newmicros.com/temp/images/y20jpers.jpg


I must move the H5 jumper to be connected to +5vdc, which is on the two pins closest to the high side of the board, that is furthest from the H5 label, I find for U4 I will have the following memory locations available to me:
$8000-$FFFF

That is correct. Keep in mind, when you jumper H5 to +5V, U4 memory is overmaped with the peripheral registers: LCD, RTC, CSX, etc... from $B000-$B0FF, and internal eeprom $B600-$B7FF. in which your program memory must skip around these areas.

You must have a Eprom programmer to load (burn) your code to the eeprom. Your program code can be anywhere from $8000-$FFBF, and the address $FFFE-$FFFF must contain your startup address word.

Your ram will be available from $0000-$7FFF except the I/O registers: $1000-$103F. Ofcourse your data, or variables should avoid to use this area as well, unless you move the default I/O registers to other area.

Locations H, I, J are the options to install the pull-up resistor(s), 100K for eeprom to eprom simulation with the R/W* jumper(s) on locations N, O, P is/are removed