Recently i have been working on a small Z80 computer for a summer project.
And everything is working great... except the eeprom, i have been using a arduino mega to try to program a 28c256. (http://www.atmel.com/Images/doc0006.pdf)
The program starts by writing 0x76 to the first three lines of the eeprom, but after programing it apears that no data have been written. Anyone have any ideas? And no a off the shelf eeprom programer is not an option.
int WE = 12;
int OE = 11;
int led = 13;
void setup() {
pinMode(WE, OUTPUT);
pinMode(OE, OUTPUT);
digitalWrite(WE, HIGH);
digitalWrite(OE, HIGH);
pinMode(26, OUTPUT);
pinMode(27, OUTPUT);
pinMode(28, OUTPUT);
pinMode(29, OUTPUT);
pinMode(30, OUTPUT);
pinMode(31, OUTPUT);
pinMode(32, OUTPUT);
pinMode(33, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(led, OUTPUT);
ProgramRam(0,118,4);
ProgramRam(1,118,4);
ProgramRam(2,118,4);
digitalWrite(OE, LOW);
digitalWrite(26, LOW);
digitalWrite(27, LOW);
digitalWrite(28, LOW);
digitalWrite(29, LOW);
digitalWrite(30, LOW);
digitalWrite(31, LOW);
digitalWrite(32, LOW);
digitalWrite(33, LOW);
}
void ProgramRam(int ADD, int DATA, int WAIT)
{
digitalWrite(WE, HIGH);
digitalWrite(26, ADD & B10000000); digitalWrite(27, ADD & B01000000); digitalWrite(28, ADD & B00100000); digitalWrite(29, ADD & B00010000);
digitalWrite(30, ADD & B00001000); digitalWrite(31, ADD & B00000100); digitalWrite(32, ADD & B00000010); digitalWrite(33, ADD & B00000001);
delay(WAIT);
digitalWrite(WE, LOW);
delay(WAIT);
digitalWrite(2, DATA & B10000000); digitalWrite(3, DATA & B01000000); digitalWrite(4, DATA & B00100000); digitalWrite(5, DATA & B00010000);
digitalWrite(6, DATA & B00001000); digitalWrite(7, DATA & B00000100); digitalWrite(8, DATA & B00000010); digitalWrite(9, DATA & B00000001);
delay(WAIT);
digitalWrite(WE, HIGH);
delay(WAIT);
}
void loop() {
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(1000);
}
Pin 2-9 attach to D0-D7.
Pin 26-33 attach to A0-A7.
Pin 12 attaches to WE.
Pin 11 attaches to OE.
CE is attaches to GND
Thanks in advance for any help!