Joined: Fri Aug 30, 2002 1:09 am Posts: 8544 Location: Southern California
|
(Edited 4/10/23 to attach the images rather than link to externally hosted ones)
In the first page of the "Fast prototyping boards" topic under "General discussions," the subject of the lack of a standardized I²C pinout came up. Although I²C is is a widely adopted 2-wire synchronous-serial interface industry standard, it does not specify a connector. For the most part, there's no need for it to, as most I²C parts are on the same board with the controller and don't go through any connectors, or if they do, the connector might be handling plenty of other signals too. The difference in our case is that we want to be able to make modules that plug in, similar to the SD-card idea.
Our super-flexible 65SIB (6502.org serial interface bus, for connecting external devices with ribbon cable), which can be as simple or as intelligent as you want it to be, was developed to extend the usefulness of SPI and similar interfaces in several directions at once and to make it easier to share designs and perhaps even hardware in the future. Nothing about it requires 6502-related hardware; the "65" just credits this forum and website.
Similarly, it makes sense to standardize on an I²C connector, again to make it easier to share hardware. What I am proposing here is what Daryl already offers on his SBC-4 board, and he also offers a matching serial EEPROM module, $6 each with a 64Kx8 EERPOM and the socket. Here's an earlier half-postage-stamp-sized EEPROM modules shown here with only four pins:
Attachment:
EEPROMmodule.jpg [ 10.59 KiB | Viewed 6669 times ]
(Actually, the pins are on the computer board, and the socket is on the module.) The 4-position socket on the end has Pin1=data, Pin2=Vcc, Pin3=ground, and Pin4=clock, and Daryl and I agreed that all future I²C plugs and modules should use a 6-pin, with Pin5=IRQ\ for things like a keypad controller, RTC with alarms, etc., and one hole (position #6) blocked and Pin 6 cut off so you cannot plug the I²C device in upside down. The I²C interface method pretty much excludes the need for a RST\. My older four-pin ones will plug into the 6-pin header as long as I'm careful to put it on correctly, ie, right-side-up and leaving the IRQ\ pin exposed on the right end. Note: "IRQ\" does not necessarily mean it connects directly to your 6502/816's IRQ\ pin. One user asked if it would be ok to connect it to a VIA's CB1 pin. The answer is "Sure, just put a pull-up resistor on it." IRQ\ is common nomenclature (is that the right word?) for this kind of thing.
Edit, 7/28/22: I now have an I2C-6 EEPROM module is on the front page of my site, and there's a link to the data sheet there. I got hundreds of boards made, although my initial order of 24c256 EEPROMs was only for 25. I'll get more when needed.
Attachment:
assembledWM-5b.jpg [ 48.8 KiB | Viewed 6669 times ]
Here is the pinout, looking toward the master, into the edge of its board:
Code: Vcc Clk (cut) ┌────┬────┬────┐ │ 2 │ 4 │ (6)│ ├────┼────┼────┤ │ 1 │ 3 │ 5 │ ═════╧════╧════╧════╧══════(board edge) Data Gnd IRQ\
Attachment:
I2C-6pins.jpg [ 41.99 KiB | Viewed 6669 times ]
Attachment:
I2C-6pinsB.jpg [ 44.05 KiB | Viewed 6669 times ]
The pins could also be vertical if desired. Even with the keying, it would be good to mark pin 1 since it's not as clear with vertical pins. An example marking would be to put a dot or numeral "1" next to pin 1 in the silkscreened legend, or mark it with a marker.
I²C allows multi-master setups but I expect they're rare. A connecting cable could be made. Extension cables can be made for devices that may be too heavy to plug directly into the side of the controller board and be safely supported by the pins. "Y" adapters can also be made for connecting multiple devices to a single port which of course the I²C standard also allows, as long as no more than one device responds to any given address. Modules can optionally be made with the socket on one end to plug into the controller and a pin header on the back to daisychain another device.
I initially thought of putting "65" in the name again, something like "65I2C", just to credit our forum and website, but Daryl thought it would be too confusing (and I agreed), looking like "sixty-five-twelve-see," and could cause problems with searches even if we don't care how anyone actually pronounces it since we talk in text. He suggested "I2C-6" which sounds good to me.
I2CChip.com in Auckland, New Zealand (whose website has a load of good info on I²C) wanted to standardize on the 6-pin version of this subminiature connector shown here in 8-pin:
Attachment:
I2CChipConx.jpg [ 13.56 KiB | Viewed 6669 times ]
but it will not go into standard perfboard with holes on .100" centers. Totally by coincidence as far as I can remember, the pinout is the same as what's above. What is not a coincidence at all is that ours is intended to be easily breadboardable (on perfboard, not solderless breadboards).
Related and similar: On Oct 31, 2016, I proposed a hobbyist-friendly connector standard for small SPI modules, called SPI-10, at viewtopic.php?p=48167#p48167. My first application is for tiny 4MB and 8MB flash memory modules; but it can be used for all kinds of SPI circuits. SPI-10 does not in any way nullify 65SIB (mentioned in the 2nd paragraph of this post) which is a bus for multiple slaves, with auto addressing and other things that SPI-10 does not have. SPI-10 is for single-address modules that will usually be quite small. search terms: I2C connector connection pins pin header socket standard
_________________ http://WilsonMinesCo.com/ lots of 6502 resources The "second front page" is http://wilsonminesco.com/links.html . What's an additional VIA among friends, anyhow?
Last edited by GARTHWILSON on Wed Sep 28, 2016 1:12 am, edited 5 times in total.
|
|