I2C I/O-Erweiterungskarte

Alles zum Thema Hardware rund um die Propellerchips und den Hive.
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

I2C I/O-Erweiterungskarte

Beitrag von drohne235 »

TuxFan hat es ja schon angeregt, deshalb nehme ich den Faden hier nochmal auf: eine kleine I2C-IO-Karte für den Hive.

Ich dachte da an mindestens 16 digitale IO und zusätzlich AD/DA-Wandler. Alles natürlich ohne SMD und mit durchgeschliffenen ADM-Ports. Nach erster Sichtung habe ich mal folgende Schaltkreise in die nähere Wahl gebracht:

8 Bit I/O Port PCF 8574 AP DIL16 0,99 €
8 Bit, 4xA/D, 1xD/A PCF 8591 P DIL16 2,50 €
16 Bit I/O Port MCP 23016-I/SP DIL-28 1,35 €
16 Bit I/O Port PCA 9555 D DIL-24 1,65 €


Bei den digitalen IO's schwanke ich zwischen der absolut minimalistischen (PCF8574) und der komfortablen Variante (PCA9555). Eigentlich wäre so eine minimalistische Sache schon recht passend für erste Experimente. Sind klein, billig und man kann in Schritten zu je 8 Bit nachstecken.

Das Board könnte zum Beispiel gleich Platz für 4 x PCF8574 und 2 x PCF8591 bieten, welche ja nicht voll bestückt sein müssen - sofern der Platz reicht. Sockel drauf, und dann wird bei Bedarf nachgesteckt. Wenn es passt, könnte man auch einen getrennten Spannungsregler inklusive Hohlbuchse/Pinheader auf der Erweiterung vorsehen.

Mit dem I2C bin ich auch noch unschlüssig, welche Variante der Belegung unserer vier ADM-Ports besser wäre:

Variante 1: Zwei I2C-Lines, vielleicht für verschiedene Geschwindigkeiten

Variante 2: I2C plus INT Signal, ein Port ist dann noch frei

Karte kann dann direkt auf den Hive gesteckt werden, I2C ist dann zur Rückseite durchgeschliffen und dort für weitere Karten verfügbar. Ports immer in kleinen Gruppen per Buchsenleiste abgreifbar:

Pin-1 - 3,3V
Pin-2 - Key
Pin-3 - Signal 1
Pin-4 - Signal 2
Pin-5 - Signal 3
Pin-6 - Signal 4
Pin-7 - GND

Die nächsten Tage lasse ich wohl mal einen Sack voll von den IC's kommen um zu experimentieren. Wird Zeit, dass wir endlich mal einen Joystick oder was ähnliches anstöpseln können... :twisted:

Ideen? Vorschläge?
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: I2C I/O-Erweiterungskarte

Beitrag von PIC18F2550 »

drohne235 hat geschrieben:Das Board könnte zum Beispiel gleich Platz für 4 x PCF8574 und 2 x PCF8591 bieten, welche ja nicht voll bestückt sein müssen - sofern der Platz reicht. Sockel drauf, und dann wird bei Bedarf nachgesteckt. Wenn es passt, könnte man auch einen getrennten Spannungsregler inklusive Hohlbuchse/Pinheader auf der Erweiterung vorsehen.
drohne235 hat geschrieben:Variante 2: I2C plus INT Signal, ein Port ist dann noch frei
Das währe ausreichend um den Mangel von I/O zu erschlagen. :mrgreen:
Für die anderen nur wenn nötig ein Extrabord.

drohne235 hat geschrieben:Die nächsten Tage lasse ich wohl mal einen Sack voll von den IC's kommen um zu experimentieren.
HAB ICH WEIHNACHTEN SCHON WIEDER VERSCHLAFEN?
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Hauke
Beiträge: 79
Registriert: Mo 26. Mär 2012, 07:26

Re: I2C I/O-Erweiterungskarte

Beitrag von Hauke »

Da würde ich es fast sinniger finden, wenn an die EEPROM Pins (also P28 und P29) von Adminstra nimmt.
Diese werden nach dm Botten eh nicht mehr verwerdet. Dadurch erhällt man sich die schnellen ADM Ports.
Wenn es recht ist, dann route ich mal eine Platine.
cu
Hauke
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: I2C I/O-Erweiterungskarte

Beitrag von drohne235 »

Wenn es recht ist, dann route ich mal eine Platine.
Immer ran an die Front! Interessenten für eine I/O-Karte gibt es mit Sicherheit viele hier! :twisted:

Ich habe für Eagle schon eine Platine für einen vierten Prop als I/O fertig. Dort sind schon alle Maße für die Steckerleiste und die Befestigungsbohrungen drauf - spart vielleicht Arbeit wenn man die Datei einfach "entkernt" und als Grundlage nimmt. Ich hänge die heute abend mal hier an.
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
Hauke
Beiträge: 79
Registriert: Mo 26. Mär 2012, 07:26

Re: I2C I/O-Erweiterungskarte

Beitrag von Hauke »

Folgender Vorschlag für die Platine:

Anschluss des I²C Busses wahlweise über:
- zwei ADM Ports
- EEPROM-Zwischenplatine

Optionale RTC-Nachrüstmöglichkeit für Hive-R13 Nutzer über eine zweite EEPROM-Zwischenplatine

Steckplätze für PCF8574 und PCF8591

Optional evt. Steckplätze für GPIO14 und SD20 von Devantech
http://www.robot-electronics.co.uk/acat ... Chips.html

optionaler Platz für separate Spannungsregelung/Versorgung

optionaler Pegelwandler durch 2xFET

Frage:
Wieviele von den PCFxxxx?

Adressierung:
- fest Verdrahtet?
- Jumper?
- Dipswitch?

cu
Hauke
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: I2C I/O-Erweiterungskarte

Beitrag von drohne235 »

Aus dem Bauch raus hätte ich an

4 x PCF8574 und
2 x PCF8591

gedacht. Muss man ja nicht voll bestücken, sollte aber reichen. Adressierung über Jumper bzw. Dip-Switch - ist ja der selbe Sockel und damit einfach eine Bestückungsvariante. Letztlich mußt du eh schauen was aufs Board passt.

Zur EPROM-Zwischenplatine: Per Jumper oder Brücke wählbar wäre ok denke ich.

Schön wäre, wenn die ADM-Ports vom Erweiterungstecker abgegriffen werden (auch bei der EEProm-Variante) und zu einem Stecker/Buchse nach hinten durchgeschliffen werden. So hätte man mit der Platine gleich die Ports genormt am Hive rausgeführt und bei Belegung mit I2C können noch mehr Boards hinten am Gerät angestöpselt werden.
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
quix
Beiträge: 233
Registriert: Sa 22. Okt 2011, 16:10

Re: I2C I/O-Erweiterungskarte

Beitrag von quix »

Das Thema I/O gährt in mir schon seit meinem ersten Kontakt mit dem Hive. In Anlehnung an andere Retro-Computer, würde ich den An der Malxe 9-Port ausschliesslich für Joysticks nehmen. Eine völlig einfache Anbindung kann man sich vom Hydra abgucken. Ich gehe auch soweit, dass dort jee Art von Joysticks mit passender Wandlerschaltung angeschlossen werden kann, die die Grundrichtungen und "Feuer", nachahmt.

Diese kann als alleinstehende Erweiterung angeschlossen werden. Die Idee eines (oder zweier) Joystickanschlüsse so in Betracht zieht, können auch diejenigen, die mit SPS und Robotertechnik liebäugeln damit warm werden. Eine Joystick ist eine einfache Eingabe um zum Beispiel einen Roboterarm oder eine Servoschaltung zu steuern. Also gar nicht so abwegig!

Noch hinzu muss ich erwähnen, dass das sicherlich zur Verbreitung des Hive's beitragen wird. Jeder der mal mit Computern angefangen hat, wird spielerisch damit umgegangen sein. Und mal ganz ehrlich: Boulder Dash oder Hero mit Tastatur zu spielen ist äußerst befremdent, oder?

Die Hydra-Schaltung für NES und eine Idee für die alt bekannten Atari-/Commodore-Joysticks hänge ich mal mit ran. Im Internet kursieren weitere Möglichkeiten und Ideen, andere Controller auf NES Signalseitig zu kombinieren.

Als Erweiterungen, sofern ich mal meinen Senf dazugeben darf, fällt mir folgendes ein. Die Standardschnittstellen, wie Seriell und USB sollten machbar sein. Es muss doch nicht unbedingt ein Propeller auf die Platine. Ich könnte mir der Einfachheit halber, so wie schon oben beschrieben, das ganze als I2C ausgeführt, vorstellen.

Was mich auch noch interessiert, wäre ein zweiter SD-Kart-Einschub und eine - sollten mehrere Erweiterungsplatinen entstehen, eine Buserweiterung bzw ein Busexpander mit mehreren Steckplätzen.
Dateianhänge
Digital (Atari/Commodore) Joystick an NES
Digital (Atari/Commodore) Joystick an NES
Original Hydra, Anbindung zweiter NES-Pads an Propeller.
Original Hydra, Anbindung zweiter NES-Pads an Propeller.
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: I2C I/O-Erweiterungskarte

Beitrag von drohne235 »

Joystick ist klar, dass ist eh fällig. Die Anordnung in Administra ist dabei auch ok, da man dann Bella komplett nur für Grafik verwenden kann. Allerdings kommen die Buchsen nicht direkt mit auf das I/O-Board, sondern es können die Signale vielmehr an kleinen Buchsenleisten abgegriffen werden um dann per Kabel zum Joystickport zu gehen. Der Grund ist ganz einfach: Viele haben eine eigene Gehäuselösung und eine Buchse an einem bestimmten Ort würde bei den meisten eh mechanisch nicht passen. Also an Pinheader abgreifen und mit einem kleinen Kabel zur eigentlichen Buchse, die jeder wo er möchte ins Gehäuse integrieren kann.

Seriell/USB/SD-Card:

Eine serielle Schnittstele haben wir ja schon, sogar teuer erkauft über einen MAX232 mit ordentlichem und genormtem Pegel. Da sehe ich ehrlich gesagt keinen Bedarf.

Gibt es denn einen I2C-USB-Schaltkreis in lötfreundlichem DIL-Gehäuse? Wüsste auch nicht, wie man noch ein SD Laufwerk per I2C anbindet, ohne das ganze wieder kompliziert zu machen. Gerade solche Sachen wie USB und SD sind nun mehr etwas für einen externen Prop (siehe Plexus), denn man muss ja nicht nur I/O's, sondern auch ein komplexes Protokoll realisieren. Die Karte jetzt soll einfach eine Reihe "dummer" digitaler und analoger I/O's bieten, damit überhaupt eine Anschlussmöglichkeit da ist. Solche Sachen wie die NES-Pads bei der Hydra-Lösung mit ihrem SPI-Interface sind da wahrscheinlich das maximale der Gefühle, denn schon dort hangelt man sich ja über I2C und SPI bis zu den Schaltern am Pad durch. Ein Atari-Joystick geht ohne Umwege direkt auf die Kontakte.
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
Hauke
Beiträge: 79
Registriert: Mo 26. Mär 2012, 07:26

Re: I2C I/O-Erweiterungskarte

Beitrag von Hauke »

Nun mal meinen Senf dazu:

Thema USB:
Wenn USB-Geräte angeschlossen werden sollen, dann braucht der Hive einen USB-Host Anschluss und einen recht aufwändigen USB-Stack. Zusammen mit den Treibern usw. wäre das ein sehr umfangreiches Unterfangen.

Wenn der Hive als USB-Gerät an den PC Angeschlossen werden soll, dann könnte das ein klein bisschen weniger kompliziert werden. Dazu brauchte man nur einen FTDI 2232 Modul, ein wenig Gluelogic, PC-Treibersoftware und Hive-Firmware.

Alles in allem keine triviale Aufgabe

Thema Joystick:
Am besten über PCF8574 und Pinheader
Dadurch bleibt man beim Platinendesign variabel gegenüber den verschiedenen Anschlusstypen.

Thema Multi SD-Karten und Buserweiterungen:
Dort gab es vor einiger Zeit schon Überlegungen.

P.S.
Ich habe das Routing jetzt soweit:
4x PCF8574 mit 2x5 Header (IO-1..8+VCC+GND)
2x PCF8591 mit 2x4 Header (ADC-1..4+DAC+VCC+Vref+GND)
2x Poti um Vref für beide PCF8591 getrennt einzustellen
1x DS1307+Zub. (zur RTC Nachrüstung für R13)
1x I²C-EEPROM (Falls man den ADM-I²C anzapft)
6x BCD-Codier-Drehschalter für die jeweiligen I²C Adressen

Mehrere Jumperblöcke um die ADM-Ports bei Bedarf auf SCL,SDa und die Interrupt-Ausgänge zu verteilen.

Nachteile Soweit:
Aus Platz- und Routing-Gründen konnte ich keine Abblockkondensatoren an den günstigen Stellen einplanen. Deshalb müsste man IC-Sockel mit integrierten Kondensatoren nehmen.

Falls euch noch was einfällt, dann sagt Bescheid, bevor ich das Layout finalisiere.

cu
Hauke
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: I2C I/O-Erweiterungskarte

Beitrag von PIC18F2550 »

Moin,
Ich bin dafür das man über den I2C-Bus Signale wie binär und analog in den HIVE holt.
Damit gäbe es keine hindernisse alle möglichen Joystiks/Pads/NES kontroller anzuschließen.

Zu deiner Frage ob es einen USB-Schaltkreis gibt im DIL-Gehäuse -> PIC18F2550 <-.
USB-Stack währe im PIC und damit nicht im HIVE.
PIC18F2550.jpg
PIC18F2550.jpg (9.41 KiB) 15570 mal betrachtet
Leider binn ich damals mit der Anbindung an dem HIVE hängen geblieben.

Das Problem ist das Wiederstandsnetzwerk zwischen Regnatix und dem RAM den der PIC läuft auch mit 5V.
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Antworten