I’m reading over the datasheet for ICM7218A (http://www.intersil.com/data/fn/fn3159.pdf). I can’t seem to see the purpose of ID0-ID7. It looks like those lines are used for ICM7218C/D for parallel write, while A/B uses MODE and WRITE for serial communication. I can’t seem to figure out why they show those pins in the schematic. am I reading this right?

Thanks in advance for the help.

This chip is designed to interface with Microprocessors that used an 8 bit memory mapped Bus. Interfacing with a chip like this would require you to use many shift registers to recreate the parallel data and address/control bus architecture.

It is not designed to support serial data streams.

The lCM7218A and 1CM7218B feature two control lines (WRITE and MODE) which write either 4 bits of control information (DATA COMING, SHUTDOWN, DECODE, and HEXA/CODE B) or 8 bits of display input data. Display data is automatically sequenced into the 8-byte internal memory on successive positive going WRITE pulses. Data may be displayed either directly or decoded in Hexadecimal or Code B formats.

That doesn't allow for 2 wire control?

That doesn’t allow for 2 wire control?

Nope: theyre just telling the chip how to handle the IDn pins. E.g., toggling the WRITE pin says “store the data on the IDn pins in one of your internal registers”.

A quick look suggests that pwillard was being too pessimistic, and it would only take one shift register, and maybe only one other pin driving WRITE, to make a minimal interface to the chip. But you absolutely do need at least that much: there’s no mechanism in the 7218 for a serial interface.

Oh okay, I think I get how it works now.

Even requiring as many pins as it does, if I send only Hex/Code B I think I can run it off of 6 pins, much much less than the 12-16 that would be needed for 4/8 digits.

You are just seeing my frustration show... I have a lot of chips leftover from my old days of dabbling with OTHER style BUS chips like 6809's and 8052's.

Okay, so I got a circuit designed for this chip, and I want to make sure that I'm not going to blow up my LEDs.

I'm working with 2 different colors, each with a different forward voltage and maximum current.

The datasheet for the ICM7218 says...

VDD = 5V, VSS = 0V, TA = +25°C, Display Diode Drop = 1.7V Digit drive current: Common Anode VOUT = VDD -2.0V 140-200mA

The yellow 7-segment says... The LEDs have a forward voltage of 2.1VDC and a max forward current of 20mA

would I then calculate the resistor as Vout - Forward Voltage * A? (3-2.1)/0.20=R or 45ohm+ resistor per segment?

The Blue LEDs have a forward voltage 3.4V. Can I run these without some way of increasing voltage of the segment output?

I know these are some seriously noob questions, thanks for all the help!

Hi, with the ICM7218a you don't have to use any resistor. I've tried it with red, yellow, blue and green displays without any problem. You have a sample here: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1241221482

You may be able to do it serially with a serial in parallel out shift register to control the address lines. It takes some good coding skills I don't have yet.

Failing that you can use a pile of HEF4794 shift and store register LED driver to do the same thing. It will take 8 of them. That chip works identical to the 74HC595 but can drive more current. You will need current limiting resistors.