Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

How to write binary in ROM???

Status
Not open for further replies.

ikelectro

Member
Recently I'm using 27C512 ROM and i need to write binary (like 11101011) at different addresses in the ROM....
So. can i write this in ROM?? Please enlighten me....... I can't buy any highly priced ROM programmer.. so please give me some suggestion!!!
 
Hi,

If you can not buy a ROM programmer then your only other choice is to build your own.
This requires binary counter chips to change the address lines and an eight bit data latch or set of switches to set the data word.
The binary counter could be clocked by a switch or two and a simple debouncing circuit, and reset with another push button switch.
You also need a circuit that could provide a programming pulse of a specified duration at a specified voltage level with another push button.
This is really the simplest form of a programmer.

The procedure would go as follows...
1. Push the reset button to reset all the address counters to 0000 0000 0000 0000 (or however many bits you have for the address lines).
2. Set the data word with the switches.
3. Press the program pulse generator push button to program the word into the ROM.
4. Push the address counter clock push button to clock to the next address 0000 0001.
5. Repeat steps 2 through 4 until you've programmed the last required address.

Note this is the simplest form of a programmer and could take a very long time to program a large number of addresses. Also, one mistake and you better have an erasable ROM like an UVEPROM or you have to start with a new ROM chip or at the very least program all NOP's into the addresses where the mistake was made and continue at the next available address.

The next step up is to interface this simple scheme with a computer port. The idea here is to provide the data from the port as well as the address clock (or the entire address to latches) and the program pulse trigger signal. You then write a (for example) Windows based program that reads your input data (such as from a typed out text file) and sends it to the ROM chip program board one data word at a time, clocking the program counter and triggering the program pulse for each data word. Your text file might look like this:
10100100
00010000
00101111
or in hex:
A4
10
2F

It's not a very complex circuit but requires knowing the peculiarities of the PC port that is to be used.

You could also build a programmer using a micro controller like a PIC chip and that would lower the IC chip count for the programmer quite a bit.

You should also start with an erasable chip so that you can erase it if you make a mistake. When you get the program perfect, then program a true once only ROM chip.

You might look on the web for a circuit that you can build from the schematic.
 
Last edited:
If you know how to program a micro you could use one.

I did with eeproms twice. Not very painful.
 
Note this is the simplest form of a programmer and could take a very long time to program a large number of addresses.

If you manage 1 location per second and work 8 hours a day, you'll have it programmed in about 3 weeks. :D

Mike.
 
If you manage 1 location per second and work 8 hours a day, you'll have it programmed in about 3 weeks. :D

Mike.

nah, only 18 hours...
27c512 is 64K bytes divided 3600 (seconds per hour) = 18.204 hours, or 2.275 days @ 8 hours per day.
but I think your once per second is a little aggressive... :eek:)
 
Whoops, forgot that the 512 was 512,000 bits and not bytes. I'd still challenge anyone to do it in under a month and stay sane.:D

Mike.
 
both are improbable....

I first learned to program computers in the 70's by programming our Fire Control Computers on the submarine I was stationed on... you know, the ones controlling the 224 40-kiloton warheads on 16 ballistic missiles... never did get them to launch! However, they were 24 bit and laid out in octal (they hadn't invented hex yet), with the full panel of flashing lights representing the various registers (think Lost In Space)... anyway, you could clear the register with a clear button, and then set each bit with a set button under each bit light... you had to set up the instruction (STA/Q- store data in A at address in Q register), set up the data, and set up the address. The first thing to do was write a small program that did the STA/Q, incremented the Q for the next address, and then stopped so you could add the next data word to the A register. Once you got that small (I think I remember it was only 7 instructions) program done, it got easier. The goal was to drive the printer, as my LPO (leading petty officer) had been in the Fleet Ballistic Missile program since its inception, and could tell missile test pass/fail just by the sound of the printout. So I programmed it to so when he came into Fire Control in the morning, pre coffee, and saw the DCC not normal light on (Digital Control Computer), you enter 00 to get the computer to normalize or printout the reason it can't. When he heard the printer printing, his eyes got big and he woke right up, as he'd never heard that print pattern before. When he read the message, "FVCK YOU SCHNEIDER, I'M ON STRIKE" (there was not one U on the whole printer platum), he chased me off the sub!!! Of course, we were in port and not covering targets, or I'd never been allowed to take the computer offline... anway, it took me a whole month just to format that one print line data and program it in to the computer, so the month guess of programming a whole 64K bytes is at the very best, AGGRESSIVE...
 
Whoops, forgot that the 512 was 512,000 bits and not bytes. I'd still challenge anyone to do it in under a month and stay sane.:D

Mike.

Hi,

He he. We actually did this back in the 1970's with a shop built programmer. It was a smaller memory but still took hours to program.

I was also thinking that he might not need to program the entire memory, just some of it.
 
What is your definition of 'highly priced'? There are lots of eprom programmers on ebay.
 
If I REALLY needed to, I think I could knock up a breadboard programmer using an 16F887, a max232 and lots of wire quicker than manually programming.

In fact, I did this a few years ago to program the UVEPROMs in my pinball. I only got as far as laying out a PCB which I've attached for anyone interested.

Mike.
 
Howdy, the way things are now, it might be easier to program a uC in the pattern you want & have its' runtime code take an "address" then output the "data". Real P/uV/EP/EE ROM has well since given way to flash & uC storage methods. As my title suggests, I first learned on later 2708s, but mostly 2716s and upward. While still possible, xxROM isn't really practical unless method/timing aspects are required. G.H. <<<)))
 
Hi,

He he. We actually did this back in the 1970's with a shop built programmer. It was a smaller memory but still took hours to program.

I was also thinking that he might not need to program the entire memory, just some of it.
i need only 218 locations!!!
 
Hi,

If you can not buy a ROM programmer then your only other choice is to build your own.
This requires binary counter chips to change the address lines and an eight bit data latch or set of switches to set the data word.
The binary counter could be clocked by a switch or two and a simple debouncing circuit, and reset with another push button switch.
You also need a circuit that could provide a programming pulse of a specified duration at a specified voltage level with another push button.
This is really the simplest form of a programmer.

The procedure would go as follows...
1. Push the reset button to reset all the address counters to 0000 0000 0000 0000 (or however many bits you have for the address lines).
2. Set the data word with the switches.
3. Press the program pulse generator push button to program the word into the ROM.
4. Push the address counter clock push button to clock to the next address 0000 0001.
5. Repeat steps 2 through 4 until you've programmed the last required address.

Note this is the simplest form of a programmer and could take a very long time to program a large number of addresses. Also, one mistake and you better have an erasable ROM like an UVEPROM or you have to start with a new ROM chip or at the very least program all NOP's into the addresses where the mistake was made and continue at the next available address.

The next step up is to interface this simple scheme with a computer port. The idea here is to provide the data from the port as well as the address clock (or the entire address to latches) and the program pulse trigger signal. You then write a (for example) Windows based program that reads your input data (such as from a typed out text file) and sends it to the ROM chip program board one data word at a time, clocking the program counter and triggering the program pulse for each data word. Your text file might look like this:
10100100
00010000
00101111
or in hex:
A4
10
2F

It's not a very complex circuit but requires knowing the peculiarities of the PC port that is to be used.

You could also build a programmer using a micro controller like a PIC chip and that would lower the IC chip count for the programmer quite a bit.

You should also start with an erasable chip so that you can erase it if you make a mistake. When you get the program perfect, then program a true once only ROM chip.

You might look on the web for a circuit that you can build from the schematic.

ok i'll use a 4040 as location selector and shall write the data manually) will it be ok????:confused:
 
you might better use 27F512, even if the speed is little slow. otherwise you have to be after an UV eraser that consumes long time.

27F series are electrically erasable. and you would get universal programmers , either com or LPT port based. Even to day BSNL (Indian Telecom PSU) does use such programmers for some earlier digital switches. and some yet working C-DOT switches.
if you r need is one off, you may take help, taking the dump in a CD or so.

if a continuous use, the best would be to buy one at some cost like Rs2500 or more, from some BSNL suppliers It helps reducing searches Off late not many are selling this item. there were some articles on Indian EFY magazine in 80s by an IIT Madras professor.
 
What is your definition of 'highly priced'? There are lots of eprom programmers on ebay.

Can i Have the link..... i cant find it out!!!!! plz..
 
As Bill rightly said.
Better not to waste money on eprom prog and the O P can choose a fresh project instead.
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top