wallaby Posted March 18, 2017 Share Posted March 18, 2017 Hey everyone. I'm trying to make my own custom cartridge but I've run into some problems. Here are the steps I took: 1. Got a donor cartridge PCB (Skiing by Activision). This is a 2k game but the layout looked straight forward. 2. I got an Atmel 8-bit 5-volt 64k EEPROM. 3. I desoldered the skiing EPROM and soldered pin headers in instead. (since the Atmel EEPROM doesn't actually fit because it has more pins.) 4. I programmed the EEPROM with the Skiing ROM. I checked the data in Stella and on the programmer and the bytes match. 5. I placed wires from the headers on the cartridge to the EEPROM on a breadboard. When I turn the Atari on, it usually makes random sounds and scrambled screens. It's almost like the Atari is getting random data every time it turns on. The sounds and screen data changes every time if anything is displayed at all. Checking with a logic probe, it looks like everything is high. The address pins and the data pins all register as high. I'm not sure what to do with the sGND and the A12 address bit. If I connect the sGND to the GND the Atari won't start. Do I just connect the A12 to the EEPROM's A12? Does the Atari use A12 or is it always on? Outside of wiring it wrong, is there anything that stands out? When I programmed the EEPROM, I left the remaining ~62k empty (FF) assuming the Atari can't address it anyway. Thanks! Quote Link to comment Share on other sites More sharing options...
wallaby Posted March 18, 2017 Author Share Posted March 18, 2017 I read A12 is used for chip-enable. I just wired my chip-enable directly to ground. Does it get switched on and off continuously? I could put a not-gate on A12 and wire it to my CE line. Quote Link to comment Share on other sites More sharing options...
ZackAttack Posted March 18, 2017 Share Posted March 18, 2017 You need to map your ROM into the address space of $1000-$1fff. A0-A11 should be wired directly to the ROM's A0-A11. A12 should be wired to a not gate and then to /CE. The remaining address pins on the ROM should be tied to ground. Quote Link to comment Share on other sites More sharing options...
ZackAttack Posted March 18, 2017 Share Posted March 18, 2017 Also, since it's a 2k ROM you need to either program it twice to fill the ROM out to 4k or tie ROM A11 to ground so the first 2K is mirrored at $f800 Quote Link to comment Share on other sites More sharing options...
SoundGammon Posted March 18, 2017 Share Posted March 18, 2017 Doesn't an EEPROM need a buffer chip to enable? A 7404 or something like that? Quote Link to comment Share on other sites More sharing options...
wallaby Posted March 18, 2017 Author Share Posted March 18, 2017 You need to map your ROM into the address space of $1000-$1fff. A0-A11 should be wired directly to the ROM's A0-A11. A12 should be wired to a not gate and then to /CE. The remaining address pins on the ROM should be tied to ground. Ahhh. Is the address space set when I program it? I'm using a hex inverter to invert the A12 line and pretty sure everything else is wired correctly. Quote Link to comment Share on other sites More sharing options...
ZackAttack Posted March 18, 2017 Share Posted March 18, 2017 Did you double up the 2k image to fill the first 4k or wire eeprom A11 to ground? As you described it in your first post it sounds like you have $1800-$1fff set to $ff. The address map is determined by the hardware. What you do with address bus and chip enable is what decides what gets mapped where Quote Link to comment Share on other sites More sharing options...
wallaby Posted March 19, 2017 Author Share Posted March 19, 2017 Did you double up the 2k image to fill the first 4k or wire eeprom A11 to ground? As you described it in your first post it sounds like you have $1800-$1fff set to $ff. The address map is determined by the hardware. What you do with address bus and chip enable is what decides what gets mapped where This is where I'm confused. The Skiing PCB has A9 and A11 connected to +5v. My Atari Defender PCB has A11 connected to +5v. But don't you need those address lines to access the full ROM? If you only have 11 address bits that only allows 2,048 bytes (in the case of Defender). And Skiing is even worse at 1,024. I'm misunderstanding something fundamental. I have grounded A12 on the EEPROM. Is the address bus active low? I might be redirecting the address to $1000 but only have FF at that location. When I programmed the ROM, I just programmed it from the start. Should I put the ROM at $1000 on the EEPROM? Quote Link to comment Share on other sites More sharing options...
ZackAttack Posted March 19, 2017 Share Posted March 19, 2017 Sounds like you may have an incorrect pinout. 2KB games should ignore A11 and 4KB games should use all 13 (A0-A12) address bits. A12 is used for CE so that leaves 12 bits for 4KB and 11 bits for 2KB games which is exactly what is required. Here's what the eeprom memory map should look like for a 2KB game. VCS EEPROM $0000 Not Enabled $0fff Not Enabled $1000 $0000 $17ff $07ff $1800 $0000 $1fff $07ff Quote Link to comment Share on other sites More sharing options...
wallaby Posted March 19, 2017 Author Share Posted March 19, 2017 Ah yes. It was incorrect because there were some connections on the PCB. I had to make a jumper wire and a few changes. About every 20 or 30 tries the game will show. But a strong breeze can disrupt it. I'm guessing this is because I made all the connections on a breadboard. Or would a capacitor between power and ground improve the stability? Quote Link to comment Share on other sites More sharing options...
wallaby Posted March 21, 2017 Author Share Posted March 21, 2017 I think I sorted the stability problem. I had the GND connection from the cartridge connected to the GND on the EEPROM. Now the EEPROM GND isn't connected to anything but everything works? Quote Link to comment Share on other sites More sharing options...
ZackAttack Posted March 21, 2017 Share Posted March 21, 2017 The clock speed is relatively low. Long wires and breadboards shouldn't prevent it from being stable. It should work better with the grounds all connected, not worse. One thing I can think of is that there is a loose connection somewhere and you moved other wires while removing the ground connection. It could be a bad solder joint, open hookup wire, loose socket in the PCB, etc. I'd wiggle each wire one at a time while it's running and see if wiggling a wire causes it to stop working. If it does then I'd carefully inspect all connections related to that wire. Are you using solid core hookup wire? I've always used that for these type of experiments and it's always worked well. If you're using stranded wire it may not work as well. Quote Link to comment Share on other sites More sharing options...
wallaby Posted March 22, 2017 Author Share Posted March 22, 2017 The clock speed is relatively low. Long wires and breadboards shouldn't prevent it from being stable. It should work better with the grounds all connected, not worse. One thing I can think of is that there is a loose connection somewhere and you moved other wires while removing the ground connection. It could be a bad solder joint, open hookup wire, loose socket in the PCB, etc. I'd wiggle each wire one at a time while it's running and see if wiggling a wire causes it to stop working. If it does then I'd carefully inspect all connections related to that wire. Are you using solid core hookup wire? I've always used that for these type of experiments and it's always worked well. If you're using stranded wire it may not work as well. Yes, I was baffled. But it works rock solid with no ground connection on the EEPROM. As soon as I make that one connection, everything goes south. I wiggled the wires and pulled them out. That's how I found the ground disconnection actually fixed it. Nothing else has any effect at all. The wires are stranded though. I wonder if the problem stems from that. I'll recreate the interface with single core wires and see how it goes. Thanks again! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.