A2I2C - I2C bus for Atari

Moderator: bbiernat

pancio
Administrator
Posts: 40
Joined: 18 September 2013, 23:02 - Wed

A2I2C - I2C bus for Atari

Postby pancio » 23 July 2018, 11:25 - Mon

This article is clue of my topic on Atari.area Forum. Nowadays IoTs are everywhere so why not to use those with Atari? I decided to make interface which can communicate with I2C bus and might be connected with 8 bit parallel 6502 bus.

I found IC which will be very helpfully, his name is PCF8584. This IC might work with two different modes, IMC 6800(0) which should be default and 80XX for others processors. Unfortunately 65C02 is working with little bit difficult time frames so the default mode doesn't work with Atari computer. I decided to build additional decoder for /OE and /WE signals and finally to use the 80XX mode.

It was good decision... it's doesn't matter which method you used. The important is that it's working! :-)

I designed two separately PCB, one for external connection using CART/ECI, second as adapter between CPU and PCF8584. The PCB are very easy to assemble, both are available on http://seeedstudio.com and http://dirtypcbs.com/store/order/204600 ... 6ae6053af1 so if you are interested in to run your own interface please use my project.

Of course I shared the EAGLE files and source code below.

If you have any question, don't be hesitate :-) Just ask.

version 1.1 PCB:
a2i2cv11.png
a2i2cv11.png (46.65 KiB) Viewed 868 times
version 1.1 PCBpoly:
a2i2cv11-poly.png




version 2.1 (PCB mounted on CPU):
a2i2cv2.1.png
Quick User Guide for version 1.1:
The PCB is prepared with full description so assembly process should be very easy. Just iron required elements on PCB.
a2i2crealpcb.jpg
a2i2c11sch.png
a2i2c11sch.png (33.05 KiB) Viewed 831 times
Then you must build IDC plugs on strips (one plug per strip) and connect cables to required signals. Most signals you may find directlu on CPU socket on the bottom PCB side.
a2i2c11fullyassembled.jpg
Socket X1:
1 - A0
2 - A4
3 - A5
4 - A6
5 - A7
6 - /D5XX (from cartridge socket or memory decoder)
7 - /RTS
8 - /IRQ
9 - R/W
10 - O2
X1.png
X1.png (19.16 KiB) Viewed 823 times
Socket X2:
1 - D0
2 - D1
3 - D2
4 - D3
5 - D4
6 - D5
7 - D6
8 - D7
9 - VCC
10 - GND
X2.png
X2.png (18.47 KiB) Viewed 823 times
JP2 - address selector (1 jumper!)

Socket I2C:
1,3,5,7 - SDA
2,4,6,8 - SCL

JP2 is determining ADDRESS as provided below:
a2i2c11truetable.png
a2i2c11truetable.png (29.12 KiB) Viewed 831 times
One important note, decoder which I build is not fully decoding, It's mean that you should to expect shadow register. (e.g. $D580, $D582...$D58E are using to address the same PCF register),

If you were avoid any errors you may connect I2C device directly to I2C socket :-)

Update for version 1::

If you are planed to mount any I2C device outside the Atari I would to recommend use little bit modified PCB which contain separately socket in order to power I2c devices:
a2i2c12sch.png
A2I2C v1.2 schematic
a2i2c12sch.png (35.48 KiB) Viewed 819 times
a2i2c12pcb.png
A2I2C v1.2 PCB







Quick User Guide for version 2.1:

All required signals are available on CPU sockets so only one signal (/D5XX) you should wire from CART socket or memory decoder IC.
a2i2c2.1asembled.jpg
Please select address by using 1 jumper (truth table is the same as for version 1.1).

One important note!
There is no possibility to use version 2.1 and close cover for 800XL. If you plan to have closed Atari 800XL - you should to consider to use version 1.1.
I didn't test the interface with XE series, so maybe it's possible for that :-).



That's all, have fun!
Attachments
ATARI-PCF8584-LIBRARY.zip
(8.26 KiB) Downloaded 88 times
A2I2Cembedded_v2.1.zip
(49.61 KiB) Downloaded 79 times
A2I2C.zip
(46.03 KiB) Downloaded 80 times

Who is online

Users browsing this forum: No registered users and 0 guests