universelle Hardwareerweiterung (Add-On) für den HIVE

Allgemeine Themen rund um den Propeller Mikrocontroller und Elektronik
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: universelle Hardwareerweiterung (Add-On) für den HIVE

Beitrag von drohne235 »

@stesch99: Wir haben grad die Befestigungsbohrungen überprüft und festgestellt, dass es bei dem R13-Board bei einer Bohrung eine minimale Differenz der rechten oberen Befestigungsbohrung gab. Die Bohrung ist eine Winzigkeit aus der Flucht, weshalb es sich in dem Teko Gehäuse auch ein wenig straff einschrauben ließ. Bei dem neuen Board werden wir das korrigieren. Ich schicke dir dann mal zwei Bilder auf denen du das erkennen kannst. Alle anderen Bohrungen bleiben gleich.
"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
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: universelle Hardwareerweiterung (Add-On) für den HIVE

Beitrag von drohne235 »

Nochmal eine Idee Steffen: Wir hatten ja schon mal telefonisch über die verschiedenen Möglichkeiten gesprochen, IO-Karten an den Hive anzubinden. Da ich in dieser Richtung überhaupt noch nicht praktisch getestet hab, sind das nur Ideen. Folgende Möglichkeiten waren mir damals in den Sinn gekommen:
  • 8Bit-Bus: Anscluss der IO-Props ähnlich wie Administra & Bella über den parallelen Bus inkl. Steuersignalen. Zur Auswahl das Regnatix-Heartbeat. Vorteil: Einfachheit & schnell; Nachteil: Verschwendung von vielen IO-Ports am Plexus.
  • ADM-P19..22 über I2C: zwei Kanäle wären möglich. Vorteil: Wenige IO-Ports für die Kommunikation, mehr Ports frei zur Verfügung; Nachteil: Langsame Übertragung; Komplizierter zu implementieren.
  • ADM-P19-22 über SPI oder SPI-ähnliches Protokoll mit Adresseirung: Vorteil: Wenige IO-Ports für die Kommunikation, mehr Ports frei zur Verfügung; Nachteil: Langsame Übertragung; Komplizierter zu implementieren.


Jetzt ist mir noch eine Variante eingefallen, die sehr wenig Ports verbrät und auch einfach zum implementieren ist. Was wäre, wenn man mit dem normalen FullDuplexSerial-Objekt über zwei Pins eine serielle Kommunikation aufbaut. Dafür bräuchte man nur drei Ports:

D0/REG-TX ---> PLEX-RX
D1/REG-RX ---> PLEX-TX
REG-HBEAT ---> IOSEL

Wird das Signal IOSEL (Heartbeat von Regnatix) aktiviert, startet die Transmission. Das bedeutet, Regnatix und alle Plexi starten ihre serielle Cog (oder schalten die schon gestartete Cog auf dem Bus frei). Das erste nun von Regnatix gesendete Byte ist die Nummer des Plexus der selektiert werden soll. Dieser (sofern vorhanden) sendet eine Quittung, alle anderen Knoten gehen bis zum nächsten IOSEL wieder schlafen. Nun spricht Regnatix mit dem selektierten Plexus und bei Beendung der Transmission deselektiert sich der Plexus wieder (wie die anderen Knoten), wartet auf einen neuen Transmissionsstart mit IOSEL und schaltet den Bus frei. Regnatix schaltet jetzt ebenfalls den Bus wieder frei.
Allerdings muss man darauf achten, das man während der IO-Operationen den Bus nicht benutzen darf, was bedeutet, dass man nicht auf Funktionen von Administra, Bella oder den externen RAM zugreifen kann.
Aber man hat auf dem Plexus wirklich fast alle IO-Ports zur freien Verfügung. Vielleicht kann man es auch geschickt gestalten und zumindest beim Plexus gleich P30/31 verwenden?

So könntest du auf deiner Karte ganze 10 zusätzliche Ports freibekommen, sofern man P30/31 doppelt nutzt, bräuchte man ja nur eine einzige Leitung zusätzlich! (Ich hab grad gesehen, das du dich auf /PROP2 geklemmt hast - sollte wahrscheinlich auf das HBEAT-Signal!)

Wenn du jetzt den zweiten Prop auch noch parallel ankoppelst, kommen übrigens nochmal zwei Ports dazu. :) Und wenn man TX/RX/IOSEL durchschleift, könnte man theoretisch noch bis zu 254 weitere Props dranhängen. ;)

Zur Geschwindigkeit: Mit dem normalen OBEX-Objekt schafft man 115KBaud, was für die meisten Experimente auf dem Gebiet schon ausreichend sein sollte. Allerdings könnte man auch bis zu 14,5MegaBaud mit diesen Routinen schaffen:

http://forums.parallaxinc.com/forums/de ... 1&m=233212

Kann jetzt nicht sagen, ob ich da einen Denkfehler hab, aber wenn ich die nächsten Tage Zeit hab, werde ich das mal mit dem Demoboard und meinem Hive praktisch durchspielen.
"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
stesch99
Beiträge: 27
Registriert: Mo 16. Nov 2009, 15:47

Re: universelle Hardwareerweiterung (Add-On) für den HIVE

Beitrag von stesch99 »

drohne235 hat geschrieben:Nochmal eine Idee Steffen: Wir hatten ja schon mal telefonisch über die verschiedenen Möglichkeiten gesprochen, IO-Karten an den Hive anzubinden. Da ich in dieser Richtung überhaupt noch nicht praktisch getestet hab, sind das nur Ideen. Folgende Möglichkeiten waren mir damals in den Sinn gekommen:
  • 8Bit-Bus: Anscluss der IO-Props ähnlich wie Administra & Bella über den parallelen Bus inkl. Steuersignalen. Zur Auswahl das Regnatix-Heartbeat. Vorteil: Einfachheit & schnell; Nachteil: Verschwendung von vielen IO-Ports am Plexus.

    *** @drohne235:
    Ich bevorzuge diese 8Bit-Bus-Variante da der Prop4 (Controlix) dadurch vom Regnatix genauso wie der Bellatrix und Administra angesprochen werden kann und man auf den vorhandenen IOS-Routinen aufbauen kann.
    Für meine Haussteuerung soll der Controlix ja als SPS/PLC dienen und der HIVE als Visualisierung und Datenspeicherung.
    ***
  • ADM-P19..22 über I2C: zwei Kanäle wären möglich. Vorteil: Wenige IO-Ports für die Kommunikation, mehr Ports frei zur Verfügung; Nachteil: Langsame Übertragung; Komplizierter zu implementieren.
  • ADM-P19-22 über SPI oder SPI-ähnliches Protokoll mit Adresseirung: Vorteil: Wenige IO-Ports für die Kommunikation, mehr Ports frei zur Verfügung; Nachteil: Langsame Übertragung; Komplizierter zu implementieren.


Jetzt ist mir noch eine Variante eingefallen, die sehr wenig Ports verbrät und auch einfach zum implementieren ist. Was wäre, wenn man mit dem normalen FullDuplexSerial-Objekt über zwei Pins eine serielle Kommunikation aufbaut. Dafür bräuchte man nur drei Ports:

D0/REG-TX ---> PLEX-RX
D1/REG-RX ---> PLEX-TX
REG-HBEAT ---> IOSEL

Wird das Signal IOSEL (Heartbeat von Regnatix) aktiviert, startet die Transmission. Das bedeutet, Regnatix und alle Plexi starten ihre serielle Cog (oder schalten die schon gestartete Cog auf dem Bus frei). Das erste nun von Regnatix gesendete Byte ist die Nummer des Plexus der selektiert werden soll. Dieser (sofern vorhanden) sendet eine Quittung, alle anderen Knoten gehen bis zum nächsten IOSEL wieder schlafen. Nun spricht Regnatix mit dem selektierten Plexus und bei Beendung der Transmission deselektiert sich der Plexus wieder (wie die anderen Knoten), wartet auf einen neuen Transmissionsstart mit IOSEL und schaltet den Bus frei. Regnatix schaltet jetzt ebenfalls den Bus wieder frei.
Allerdings muss man darauf achten, das man während der IO-Operationen den Bus nicht benutzen darf, was bedeutet, dass man nicht auf Funktionen von Administra, Bella oder den externen RAM zugreifen kann.
Aber man hat auf dem Plexus wirklich fast alle IO-Ports zur freien Verfügung. Vielleicht kann man es auch geschickt gestalten und zumindest beim Plexus gleich P30/31 verwenden?

*** @drohne235:
Ich sehe diese Art der Kommunikation als sehr ähnlich zur I2C-Kommunikation an.
***


So könntest du auf deiner Karte ganze 10 zusätzliche Ports freibekommen, sofern man P30/31 doppelt nutzt, bräuchte man ja nur eine einzige Leitung zusätzlich! (Ich hab grad gesehen, das du dich auf /PROP2 geklemmt hast - sollte wahrscheinlich auf das HBEAT-Signal!)

*** @drohne235:
Um mehr Ports zu bekommen möchte ich nicht umbedingt einen Propeller vergeuden". So ein 16-Port I2C-IC kostet nur 1,30 € und reicht für die meisten Eingangs-Abfragen und Ausgangs-Ansteuerungen aus. Für die schnelle Erfassung /Ansteuerung von Signalen (z.B. schnelle Zähler oder Pulsweitenmodulation) soll ja der Prop5 (In-Outer) dienen.

Danke für den Hinweis zu /PROP2 --> HBEAT. Habe ich bei mir korrigiert. Den überarbeiteten Schaltplan werde ich wohl kommende Woche veröffentlichen.
***


Wenn du jetzt den zweiten Prop auch noch parallel ankoppelst, kommen übrigens nochmal zwei Ports dazu. :) Und wenn man TX/RX/IOSEL durchschleift, könnte man theoretisch noch bis zu 254 weitere Props dranhängen. ;)

Zur Geschwindigkeit: Mit dem normalen OBEX-Objekt schafft man 115KBaud, was für die meisten Experimente auf dem Gebiet schon ausreichend sein sollte. Allerdings könnte man auch bis zu 14,5MegaBaud mit diesen Routinen schaffen:

http://forums.parallaxinc.com/forums/de ... 1&m=233212

*** @drohne235:
Prinzipiell habe ich ja 4 IO Leitungen zwischen Prop4 (Controlix) und Prop5 (In-Outer) vorgesehen. Diese können z.B. für 2x (Highspeed)-Seriell, 1-2x I2C,
oder 1x SPI verwendet werden.
Für meine Hausssteuerung werden ich wohl auf die auch von dir genannte Highspeed-Kommunikation zurückgreifen (vermutlich reicht aber auch die Standard-Speed-Variante).
***


Kann jetzt nicht sagen, ob ich da einen Denkfehler hab, aber wenn ich die nächsten Tage Zeit hab, werde ich das mal mit dem Demoboard und meinem Hive praktisch durchspielen.
*** @drohne235:
Ich bin für jede Rückmeldung zur Praxiserprobung dankbar, da mir die Zeit fehlt um wirklich alles vorher auszuprobieren.
***
Antworten