I'm trying to find a pinout of the CIC chip for a HW project. I didn't find it anywhere on the site, wiki, or web. There was a mention that the pinout could be found in the patent documents, but I didn't see it in the diagrams for either of them. I've pieced together this much so far:
pin - function
1 - DATA_OUT (output)
2 - DATA_IN (input)
3 - ??? (Pulled to VCC on NES/LOCK, Tied to GND on CART/KEY) (input)
4 - KEY_/LOCK (input)
5 - ??? (seems to be a No Connect?)
6 - 4Mhz clk (input)
7 - RESET (input)
8 - ??? (Seems to be tied to GND always) (input)
9 - RESET2 - for resetting CPU, PPU (output)
10 - RESET1 - for resetting a KEY CIC, when in LOCK mode (output)
11 - GND
12 - GND
13 - GND
14 - GND
15 - GND
16 - VCC
Any help filling in the missing pieces would be appreciated. Also, can anyone confirm that I got pins 1 and 2 correct, I may have them backwards.
I think pin 3 determines whether the chip is a lock or a key. It has both functions, determined by the state of one of the pins.
Checked the few carts I've got with me right now:
2 use a 6113B and one uses a 6113 ((C) 1988 and (C) 1987 respectively).
The 6113B has far fewer lines connected.
Pinout:
1) cart edge pin 35 (DATA_OUT?)
2) cart edge pin 34 (DATA_IN?)
3) GND on 6113, N/C on 6113B
4) GND (LOCK/KEY, not KEY/LOCK as teag posted, making carts=KEYs)
5) N/C
6) cart edge pin 71 (4 MHz clock)
7) cart edge pin 70 (RESET, from NES LOCK CIC pin 10 I think)
GND (not a signal, since it's the only GND for the 6113B)
9) N/C (RESET2 to CPU/PPU when LOCK)
10) N/C (RESET1 to KEY CIC when LOCK)
11) GND on 6113, N/C on 6113B
12) GND on 6113, N/C on 6113B
13) GND on 6113, N/C on 6113B
14) GND on 6113, N/C on 6113B
15) GND on 6113, N/C on 6113B
16) VCC
I don't know if your pin 1 / 2 names are correct, but which pins they connect to on the edge connector are.
Thanks, it's helpful to have confirmation that pin 8 should always be ground.
However, your comment about pin 4 doesn't make sense, perhaps my shorthand wasn't clear enough
Anonymous wrote:
4) GND (LOCK/KEY, not KEY/LOCK as teag posted, making carts=KEYs)
I actually have it labelled as KEY_/LOCK, with the "_" indicating inverted. That means a logic low would indicate KEY, and a logic high means LOCK which I'm pretty sure is correct. I'll update the wiki with the info about pin 8, thanks again.
Ok, we're saying the same thing about pin 4, logic high makes the CIC a lock (i.e. in the console, which will assert the RESET lines), and logic low makes it a key (i.e. in the cart).
For signals like CPU_R/W, the / usually indicates the part afterwards is the logic low, i.e. the one pin is both CPU_R, and /CPU_W, so to speak, which is why I misunderstood your terminology.
Also, does anyone have any idea if it's OK to ground the N/C pins on the 6113B? For now, I'm just going to design in a 0 Ohm resistor between the N/C or GND pins and true GND, so I can adapt for either kind of common american CIC (no idea about if PAL CICs come in these two or other variations, but they're all the same CPU with different ROM, so probably).
Anonymous wrote:
Also, does anyone have any idea if it's OK to ground the N/C pins on the 6113B? For now, I'm just going to design in a 0 Ohm resistor between the N/C or GND pins and true GND
I don't think it's critical. I only have pin 8 connected to gnd on my cart, and it seems OK. I think it'd be really bad for them to change a chip pinout in a revision (just call it a new part # in that case, heheh).
Looking at 3 MHROM boards I have here, as it turns out among them they have 6113, 6113A, and 6113B1. And they do have all the unused pins on gnd, so there ya go.
I have an idea for an external lockout chip connector that I'll likely use in future designs. That way one lockout chip could more easily work with multiple carts. Let me know if you're interested in something like that. It's only any good if more than one design uses it.
sure I'm interested.
I figured that the extra pins didn't matter one way or another, and must be internally tied low through a resistor or something (otherwise there's no way they'd leave them N/C on some carts). I went ahead and wired them together, then through a smd pad just above the cic, so I could cut it or not depending on which donor cart the PCB went into. Weirdly, on just about every board, some of the CIC lines (and on the MMC3 cart, a line from MMC3) went to the edge of the PCB and stopped, as if they were hooked up to test points on the portion of the board that got routed away, or something.
Every MHROM board I've opened has been gloptop crap, which is a bummer since they're by far the cheapest donor carts you can get, I'm half tempted to take a bandsaw to the board around the CIC gloptops
Anonymous wrote:
Every MHROM board I've opened has been gloptop crap, which is a bummer since they're by far the cheapest donor carts you can get, I'm half tempted to take a bandsaw to the board around the CIC gloptops
Haha, yeah that's part of the plan. Kevtris suggested that when we were messing around with them. It's really convenient too, since the power and lockout pins are all nicely on the edge there.
So I imagine you can see where this is going, heheh. It can be soldered to (or maybe used with with a socket) on a dual-row 6 pin header. Either that or another little PCB could be made that holds a regular lockout chip.
In case anyone is interested:
So, my parts are on the way, and the PCBs are designed (I didn't leave a 2x3 strip to solder to after all, but soldering 6 air wires from the appropriate CIC holes to a chunk of card edge isn't much harder than soldering 6 jumpers from edge to edge). Now I just need to find a place to get the boards made
I put in a quote from myro several days ago and still haven't heard back, and most places don't offer 0.047 inch board thicknesses for prototypes
Any other suggestions for an affordable place to get a few boards made (2 to 10), that can do non-standard thicknesses and 8 mil tracks? My devkit and cart are actually two seperate PCBs, so a place that allows multiple designs / board is better, but I can split them if the tooling charge isn't too much.
VHDL for the multi-mapper: done
Equations for the devkit: done
Firmware: haven't started, plenty of fun 6502 asm ahead (need to dig out my emulator and add support for the devkit and mappers, so I can do this without testing every 5 minutes).
Neat features:
The devkit also doubles as a NROM devcart in conjunction with a VRAM game that has the desired mirroring.
Cool, yeah there is another PCB place called Gold Phoenix that seems popular. I dunno if they do .047" boards though.
I know I've asked Myro before about doing several boards on one setup, and they allow it (but naturally you have to always order the same amount of each). I believe you'd send the design with both boards spaced 1mm apart. If you heard about them from me, could you tell Robert I referred you? I don't get kickbacks or nothing, but he helped me out a lot.
VHDL huh?
What type of PLD are you using?
edit: ah, nevermind, I saw your other post. I'm guessing that's you, heh.
Yah, I've got about a 3 mm seperation between the two designs, since I'll probably cut it with a bandsaw.
Nope, different person. My design includes everything it'll do in a single fusemap (all the discretes and mmc1), so it can be in-system-programmable using a controller->usb cable (I'll probably lock the final page of flash when the code is mostly stable so that users can't bork it). I also started on a max 2 design (74xx, mmc1,2/4, native, and nsf done, haven't done mmc3 yet), that can do everything going except mmc5 (damn dual-port/dual-bus exram pretty much requires a fpga with block ram), but I wanted to do something simpler first.
I'm using a EPM7064 for this design (got everything into a 7032 by squeezing very carefully, then I saw that the 7064 isn't much more expensive...) All I could add was MMC1 though, not enough pins to bankswitch lower than 16 KB / 4 KB PRG / CHR, and to get that, I had to throw away my M2 clear reset circuit (grr, it's a shame I can't directly program the CPLDs, that'd buy me 4 extra pins currently used for JTAG).
The devkit uses a ST PSD (flash+ram+cpld), and works similar to a copynes, but with extra RAM, an expansion port, but no direct PC interface.
I found myro via google, but the reason I asked for a quote from them is because you used them for squeedo, so if they ever get back to me, I'll mention you.
How much hastle was getting gold contacts, or have you done that yet? pcbpro charges an extra $200 design review if you want to get gold plating, but they waive it for first-time customers (as a promotion right now), so if I make more than a handful of carts / devkits, I may go through them.
Anonymous wrote:
Nope, different person.
Wow, two seperate projects first mentioned (AFAIK) in the same day. Consider registering a username also, spare us some confusion.
Quote:
I'm using a EPM7064 for this design (got everything into a 7032 by squeezing very carefully, then I saw that the 7064 isn't much more expensive...) All I could add was MMC1 though, not enough pins to bankswitch lower than 16 KB / 4 KB PRG / CHR, and to get that, I had to throw away my M2 clear reset circuit (grr, it's a shame I can't directly program the CPLDs, that'd buy me 4 extra pins currently used for JTAG).
That sounds great. I could really go for one of these, I've been playing around with stuff in Quartus but haven't built any hardware for it yet. Though for me it's just been the schematic entry type stuff, haven't tried VHDL yet.
A controller port to USB adapter sounds really interesting in itself too. Could it work as a USB host?
Quote:
How much hastle was getting gold contacts, or have you done that yet? pcbpro charges an extra $200 design review if you want to get gold plating, but they waive it for first-time customers (as a promotion right now), so if I make more than a handful of carts / devkits, I may go through them.
Ah, yeah I remember that PCBPro place. I was considering using them too but gave up because the mandatory design review. Might not be too bad otherwise, but I'm not sure if it'd be as as good as Myro when it comes to extras (like solder mask colors for one).
And the gold plating, actually I didn't put it on my first quote form because I was afraid it'd be too expensive. After I sent them the design though, they said it looks like it could use gold fingers, heheh. Turns out the cost was pretty negligable.
So I made my rev1 board with electrolytic gold finish, and my rev2 board with gold fingers and HASL finish for the rest of it.
Nope, just a slave connection, although I'm going to try to get it working as both a USB HID device (i.e. joystick for use on your computer, which will make it easier to sell the cable), and as a USB Serial profile (for transferring data, limited only by how fast I can grab it in 6502 code). I haven't found a source for controller connectors yet though, so it'll be hardwired to a controller or built into a devkit for now (I didn't even order pcbs for it yet, but it's a simple point-to-point solder job).
One thing I was thinking about was sticking on a SPI flash for recording and playing back controller input movies, but that really needs to be an in-console job, so I could hook /NMI for good sync
Would people be interested in this?
I *really* want to see the gradius 'speed'run on real hardware, mbwahahaha.
Anonymous wrote:
One thing I was thinking about was sticking on a SPI flash for recording and playing back controller input movies, but that really needs to be an in-console job, so I could hook /NMI for good sync
Would people be interested in this?
If you have access to the cart slot, you can hook NMI by looking for three writes in a row (which
only happens on an interrupt) followed by reads from $FFFA and $FFFB. In practice, you can get away with just looking for a read from $FFFA.
The controller port cable is totally seperate to the cartridge project, and the cart doesn't hook all of the address lines either, but the devkit does, although it doesn't intercept strobe, etc... However, I haven't really looked into how the controller movies work. If they only store records when the game strobes the controller, then it doesn't matter, but if they store say, key state per vblank, then it gets more complicated.
Sepi has been working on a controller playback device from the parallel port (tho without a real NES controller involved in the circuit, his test program just used the keyboard when I tried it). Last I heard, it's improved a lot since the currently documented version with the addition of the reset signal to the NES. I think that'd be more useful than NMI, since for the controller read syncing you can just watch the strobe/latch signal. It would indeed be awesome to replay those 'tool-assisted' speedruns with something like that.
How well does your USB interface work compared to the RS232 adapters I've made? (I have tiny PCBs for them now too - they can receive MIDI also, tho that's untested). Does the NES control the USB lines directly or is there a microcontroller in between? FTDI chip or not? Sorry for all the questions, heheh. Either way sounds pretty cool. If it can work syncronously then it would be good on SNES too (writing async controller timing code on SNES screws me up royally, the CPU changes speeds!).
I was going to do RS232 through the controller port originally, I even found a source for NES cables (in fact, email me at gmail.com (memblers@) if you want, maybe we could both get some for cheap).
Thread has gone way off-topic, but I'm not complaining, heheh.
I'm using a PIC18F usb part, it's about the same price as a FTDI chip, but gives me an active micro to work with, so I can do rate adaptation, etc..., and let both the NES and PC talk in a way they are comfortable with. Microchip has example code for being a joystick, and for emulating a RS-232 link, and the parts have several endpoints, so I should (in theory) be able to merge the two together without too much trouble.
The way I'm planning on doing comms should work perfectly on NES or SNES, regardless of whether the SNES is doing slow or fast cycles.
The biggest problem is that most of the code is in C for either C18 or HiTech C, and I can't afford a license for either (~$400), so I've got to adapt the asm examples for the PIC16C USB parts.
Pinging Memblers, I sent a email to your gmail account, but no reply.
I was reading this thread for the cic info, then noticed people were looking for controller cables for interfaces. I always have tons of nes and snes cables, available for only shipping cost. Email me if anyone needs some.
The cables that plug into the front?
I'll take 2 for each (NES/SNES), I'll pay for shipping, PM me,
THanks!