I2C I/O-Erweiterungskarte

Alles zum Thema Hardware rund um die Propellerchips und den Hive.
quix
Beiträge: 233
Registriert: Sa 22. Okt 2011, 16:10

Re: I2C I/O-Erweiterungskarte

Beitrag von quix »

Heißt das, dass der ADM Port über die IO-Karte nur durchgeschliffen und von dieser nicht genutzt wird? Sodass eine eigens für den ADM-Port erdachte Erweiterung sowohl mit als auch ohne IO-Karte funktioniert?
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 »

quix hat geschrieben:Heißt das, dass der ADM Port über die IO-Karte nur durchgeschliffen und von dieser nicht genutzt wird? Sodass eine eigens für den ADM-Port erdachte Erweiterung sowohl mit als auch ohne IO-Karte funktioniert?
Nein. Die I/O-Karte belegt mit den I2C-Devices mindestens zwei ADM-Ports mit dem I2C-Protokoll, unter zusätzlicher Verwendung des INT-Signals drei Ports. Alle Ports sind zusätzlich nochmal an der Hinterfront wie alle anderen Anschlüsse am Hive per Steckverbinder (Wannestecker?) zugänglich. Da I2C ja eh ein Bus ist und alle Devices parallel an diesem hängen, können dann zusätzlich noch weiter I2C-Devices angeschlossen werden. Im Prinzip könnte man eine zweite baugleiche Plaine nochmal an diesem Anschluss anklemmen ud dort auch betreiben. Natürlich muss man beachten, dass die Devices alle unterschiedliche Adressen (BCD-Kodierschalter auf dem Board) belegen.

Sofern kein I/O-Board die INT-Leitung belegt, sind aber zwei ADM-Ports neben der IO-Karte frei verfügbar.

Hier ist mal das Prinzipschaltbild sichtbar:

http://upload.wikimedia.org/wikipedia/c ... 3e/I2C.svg

Du kannst dir das so vorstellen vorstellen, dass die beiden Leitungen SDA/SCL auf der linken Seite auf dem Hive-Board abgegriffen werden und auf der rechte Seite "druchgeschliffen" an einem Stecker für externe Erweiterungen zugänglich sind. Auf dem Board hängen natürlich die entsprechenden I2C-Slaves an diesen beiden Leitungen wie auf dem Bild. Extern könne dann weiter dazugeschaltet werden.

Vielleicht nochmal hier genauer lesen: http://de.wikipedia.org/wiki/I2c


@Hauke: Arbeitswiderstände am Bus per Jumper aktivierbar?
"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: 2832
Registriert: Fr 30. Sep 2011, 13:08

Re: I2C I/O-Erweiterungskarte

Beitrag von PIC18F2550 »

drohne235 hat geschrieben:@Hauke: Arbeitswiderstände am Bus per Jumper aktivierbar?
auf jeden Fall wenn mehrere I/O-Karten gleichzeitig am bus hängen.
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 »

drohne235 hat geschrieben:
quix hat geschrieben:Heißt das, dass der ADM Port über die IO-Karte nur durchgeschliffen und von dieser nicht genutzt wird? Sodass eine eigens für den ADM-Port erdachte Erweiterung sowohl mit als auch ohne IO-Karte funktioniert?
Nein. Die I/O-Karte belegt mit den I2C-Devices mindestens zwei ADM-Ports mit dem I2C-Protokoll, unter zusätzlicher Verwendung des INT-Signals drei Ports. Alle Ports sind zusätzlich nochmal an der Hinterfront wie alle anderen Anschlüsse am Hive per Steckverbinder (Wannestecker?) zugänglich. Da I2C ja eh ein Bus ist und alle Devices parallel an diesem hängen, können dann zusätzlich noch weiter I2C-Devices angeschlossen werden. Im Prinzip könnte man eine zweite baugleiche Plaine nochmal an diesem Anschluss anklemmen ud dort auch betreiben. Natürlich muss man beachten, dass die Devices alle unterschiedliche Adressen (BCD-Kodierschalter auf dem Board) belegen.

Sofern kein I/O-Board die INT-Leitung belegt, sind aber zwei ADM-Ports neben der IO-Karte frei verfügbar.

Hier ist mal das Prinzipschaltbild sichtbar:

http://upload.wikimedia.org/wikipedia/c ... 3e/I2C.svg

Du kannst dir das so vorstellen vorstellen, dass die beiden Leitungen SDA/SCL auf der linken Seite auf dem Hive-Board abgegriffen werden und auf der rechte Seite "druchgeschliffen" an einem Stecker für externe Erweiterungen zugänglich sind. Auf dem Board hängen natürlich die entsprechenden I2C-Slaves an diesen beiden Leitungen wie auf dem Bild. Extern könne dann weiter dazugeschaltet werden.

Vielleicht nochmal hier genauer lesen: http://de.wikipedia.org/wiki/I2c
Das ist So jetzt nicht mehr richtig
Habe eine zweite Version gemacht.

Änderungen gegenüber V1:
- Breite 80mm
- Verpolungssichere Steckwannen
- Abgriff vom Hive-ADM-Port an der richtigen Stelle
- Adresseinstellung über Jumper (sorry) :(
- Vereinfachte ADM->I²C kontaktierung (JP5)
- Zwei separate Interrupt Leitungen möglich
- I²C sowohl über ADM-Port als auch über Adminstra-EEProm anschließbar
Dadurch kann man I²C Erweiterungen anschließen und gleichzeitig den ADM Port freihalten
Eine eigens für den ADM-Port erdachte Erweiterung könnte damit weiter betrieben werden.
- zusätzlicher Abriff für ADM-Ports+I²C+VCC+GND (für eine zweite Platine?)

Durch den Abgriff kann man die Platine ach ohne Hive an einem anderen I²C System betreiben.
drohne235 hat geschrieben: @Hauke: Arbeitswiderstände am Bus per Jumper aktivierbar?
- Die I²C Arbeitswiderstände sind abschaltbar


An den internen I²C Bus sind ständig folgende Sachen angeschlossen
- 4xPCF8574
- 2xPCF8591
- Abgriff zu einer weiteren Platine

Der Interne Bus kann per Jumper an folgende Dinge angeschlossen werden.
- Die Hive-ADM-Ports 3 & 4
- I²C Pullups
- Zusatz I²C-Bus (DS1307 & 24C256)
- Adminstra-I²C-Bus

Die Interrupts der PCF8574 könnten Wahlweise an die Hive-ADM-Ports 1 & 2 angeschlossen werden.

Die Stromversorgung fehlt aber immer noch ;)

cu
Hauke
Dateianhänge
HIVE-I2C-v2.zip
(56.48 KiB) 489-mal heruntergeladen
Hauke
Beiträge: 79
Registriert: Mo 26. Mär 2012, 07:26

Re: I2C I/O-Erweiterungskarte

Beitrag von Hauke »

Fragen und Komentare sind erwünscht.

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 »

Schaltplan ist sehr übersichtlich, gefällt mir sehr gut. Ich finde Schaltpläne ohne ausgezeichnete Verbindungen und nur mit "unsichtbaren" Links immer ein Greul, da sich ein Außenstehender wesentlich schwerer reinfinden kann. Die Aufteilung auf dem Board ist sehr übersichtlich, Steckverbinder und Jumper sind schon rein räumlich den entsprechenden Bausteinen zugeordnet. Jumper statt Kodierschalter sind völlig in Ordnung, da man ja da nicht ständig dran rumspielt.

Was mir aufgefallen ist:

- SV7 würde in liegender Bauform an der Rückfront mehr Sinn machen. So wäre er zum Beispiel bei einem Teko-Gehäuse ohne große Anpassung wie alle anderen Steckverbinder auf der Hauptplatine zugänglich.

- Die beiden Potis sind vielleicht schwer zugänglich, wenn die Schaltkreise noch gesockelt (Chip mit Sockel = Oberkante 9 mm) sind.

- Warum ist U$1 so hochpolig? Reichen doch 3 Pins oder?
"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: 2832
Registriert: Fr 30. Sep 2011, 13:08

Re: I2C I/O-Erweiterungskarte

Beitrag von PIC18F2550 »

Saubere Arbeit.
Ich erlaube mir mal ein paar Anmerkungen :oops:
1. Lass an dem Rändern genug Platz das kein Kontakt Mit den Schienen eines Metallgehäuses gibt
2012-10-12_17-25-29_444.jpg
2. Sammel die A2 Adressleitungen auf einem Jumperblock.
Und gib den anderen eine Feste Adresse auf A0 und A1 es gibt keinen Sinn wenn man die externen Geräte auch an der Buckse einfach umstecken kann. Das spart Platz.

Code: Alles auswählen

Karte   A0 A1 A2
1       x   x   0
2       x   x   1
Damit währen 2 Karten Möglich. Das Reicht schon für eine kleine Modellbahnsteuerung.

3. Setz bitte liegende Spindelpotentiometer 47K linear ein und Schalte am Schleifer einen 100n Kondensator gegen Masse
Zuletzt geändert von PIC18F2550 am So 14. Okt 2012, 19:28, insgesamt 1-mal geändert.
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 »

drohne235 hat geschrieben: - SV7 würde in liegender Bauform an der Rückfront mehr Sinn machen. So wäre er zum Beispiel bei einem Teko-Gehäuse ohne große Anpassung wie alle anderen Steckverbinder auf der Hauptplatine zugänglich.
Leider wäre SV7 an der oberen Kante aus mehreren Gründen ungünstig.
Ich müsste die ADM-Port Leitungen einmal Quer über die ganze Platine legen.
Das würde meine Massenflächen zerteilen.
Weiterhin würde es kapazitive Last am I²C Bus unnötig erhöhen.
Und zuletzt würde es das Routing erheblich verkomplizieren.

Man könnte natürlich SV7 etwas höher legen. (So ca. zwischen die beiden Potis)
drohne235 hat geschrieben:- Die beiden Potis sind vielleicht schwer zugänglich, wenn die Schaltkreise noch gesockelt (Chip mit Sockel = Oberkante 9 mm) sind.
Ähm das sind stehende, mehr-gängige Trimmpotis.
Bild
Die werden von oben bedient. Alternativ kann man auch normale stehende Potis nehmen.
drohne235 hat geschrieben:- Warum ist U$1 so hochpolig? Reichen doch 3 Pins oder?
Richtig.
Jedoch wollte ich den EEPROM-Abgriff der Einfachheit halber hiermit machen.
Bild
Dies wird jedoch mit einem Flachbandkabel angeschlossen.
Das Gegenstück für die Platine wäre dann das hier.
Bild
Aber evt. könnten im Kabel die geraden mit den ungeraden Adern vertauscht sein.
Deshalb habe 3x4 Lötstellen vorgesen. von diese werden dann nur 2x4 mit eine 2x4 Steckerwanne verlötet werden.
Bild
Die restlichen vier würden frei bleiben. Mit diesem Trick könnte ich die Ader wieder richtig zurück tauschen.

cu
Hauke
Hauke
Beiträge: 79
Registriert: Mo 26. Mär 2012, 07:26

Re: I2C I/O-Erweiterungskarte

Beitrag von Hauke »

PIC18F2550 hat geschrieben:Saubere Arbeit.
Ich erlaube mir mal ein paar Anmerkungen :oops:
1. Lass an dem Rändern genug Platz das kein Kontakt Mit den Schienen eines Metallgehäuses gibt
2012-10-12_17-25-29_444.jpg
Welche Ränder meinst du?
Bis auf unten sind keine Leiterbahnen am Rand.
PIC18F2550 hat geschrieben: 2. Sammel die A2 Adressleitungen auf einem Jumperblock.
Und gib den anderen eine Feste Adresse auf A0 und A1 es gibt keinen Sinn wenn man die externen Geräte auch an der Buchse einfach umstecken kann. Das spart Platz.

Code: Alles auswählen

Karte   A0 A1 A2
1       x   x   0
2       x   x   1
Könnte man auch machen.
Ein gemeinsamer Jumper für A2 der PCF8574
Und zwei gemeinsame Jumper für A1 & A2 der PCF8591
PIC18F2550 hat geschrieben:Damit währen 2 Karten Möglich. Das reicht schon für eine kleine Modellbahnsteuerung.
Korrektur
Es sind vier Karten möglich. Zwei Karten werden mit PCF8574T bestückt und die anderen beiden mit PCF8574AT (die haben einen anderen I²C Adressraum).
PIC18F2550 hat geschrieben:3. Setz bitte liegende Spindelpotentiometer 47K linear ein und Schalte am Schleifer einen 100n Kondensator gegen Masse
Kondensator geht ok.
Ein Liegendes Spindelpotentiometer halte ich jedoch nicht für sinnvoll, dann kommt man im bestückten Zustand nicht mehr an die Trimmschraube.
Ich bin sogar am überlegen ob man nicht evt. einen Rail to Rail Opamp mit drauf tun soll. Dann wäre Vref auch mit niedrig ohmigen Sachen belastbar.
Benutzeravatar
PIC18F2550
Beiträge: 2832
Registriert: Fr 30. Sep 2011, 13:08

Re: I2C I/O-Erweiterungskarte

Beitrag von PIC18F2550 »

Das Leiterplattenmaterial sollte an den Stellen wo es mit einem Metallgehäuse in berührung kommen könnte keinerlei Cu haben (Cu-Massefläche).
Hauke hat geschrieben:Und zwei gemeinsame Jumper für A1 & A2 der PCF8591
Nein feste Adressen für A0 & A1 reichen kommen eh nur einmal vor.

Die Spinndelpotti's auf die andere Seite vom den IC's da ist genug Platz.
Und sie sind wenn die Leiterplatten gestabelt sind immer leicht zu erreichen.

Eine gemeinsame Uref ist aufgrund der vielen Verwendungsmöglichkeiten nicht sinnvoll.
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