PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RP6 USRBUS



Dirk
20.07.2007, 22:04
Hallo RP6-Leute,

beim RP6 steht uns "Usern" ja ein "User Bus" (USRBUS) in Form eines 14-poligen Wannensteckers zur Verfügung.
Die Belegung ist völlig frei möglich.

Der USRBUS dient zum Weiterleiten von Signalen:
a) Vom RP6 Mainboard zur nächsten Experimentierplatine (EXP)
b) Von einer EXP zur nächsten EXP
c) Vom RP6 Mainboard zur RP6Control-M32
d) Von der RP6Control-M32 zur nächsten EXP

Ich möchte hier 'mal einen Belegungsvorschlag für den USRBUS machen, und zwar nur für die Verbindung zwischen RP6 Mainboard und einer EXP (a).

Überlegungen dazu:
Wenn es darum geht, weitere Signale, Spannungen o.ä. vom RP6 auf eine EXP zu bekommen, dann stellt sich die Frage, welche Anschlüsse des RP6 für Erweiterungen überhaupt sinnvoll zu nutzen sind. Die Ports des ATMega 32 sind ja schon fast komplett für die Steuerung des RP6 genutzt!
Der XBUS stellt schon GND, VDD, +UB, SDA, SCL, MRESET, INT1..3, INTU auf jeder EXP zur Verfügung. Damit haben wir die Spannungsversorgung, Reset, 4 Interruptleitungen und den I2C-Bus schon auf der EXP.

Also: Was bleibt da noch an Ressourcen des RP6 für eine externe Nutzung?
1. Notwendig für einen energiesparenden Ausbau des RP6 ist auf jeden Fall das Signal PWRON. Damit können auf den EXPs z.B. stromfressende Sharp-Sensoren ausgeschaltet werden (via Transistor o.ä.).
2. Die A/D-Wandler-Eingänge ADC0 und ADC1 sind auf dem RP6 noch frei und können natürlich gut genutzt werden.
3. Die Digital-Ports der Anzeige LEDs SL1, SL2, SL4, SL5 (IO1..4) können auch für Eingabezwecke (z.B. weitere Bumper) genutzt werden.
4. Die serielle Schnittstelle (RX, TX) sollte auf die EXPs geführt werden (z.B. für Funkmodule o.ä.).

Damit schlage ich folgende Nutzung des USRBUS (als Verbindung vom RP6 zur nächsten EXP) vor:
Pin: Signal: Verwendung:
Y1 PWRON Energiesparfunktion
Y2 VDD +5 Volt
Y3 ADC0 A/D-Wandler Kanal 0
Y4 GND GND/Masse
Y5 ADC1 A/D-Wandler Kanal 1
Y6 RX Serielle Schnittstelle RXD
Y7 frei!
Y8 TX Serielle Schnittstelle TXD
Y9 frei!
Y10 RST oder frei! Evtl. Reset
Y11 IO1 Portc.4 (Digitale Eingänge)
Y12 IO2 Portc.5
Y13 IO3 Portb.7
Y14 IO4 Portb.1
(Schade, dass die Tabs nicht funktionieren!)

Bleibt noch die Frage:
Warum gerade diese Belegung?
Wenn man die Verbindungen vom RP6 Mainboard zum USRBUS möglichst einfach herstellen will, dann geht das mit der genannten Belegung am übersichtlichsten und einfachsten.
Es sind folgende Verbindungen nötig:
1. Eine 4- oder 5-polige Verbindung von den Lötpads (RST), TX, RX, GND, VDD zu den genauso nebeneinander liegenden Pads (Y10), Y8, Y6, Y4, Y2 des USRBUS.
2. Zwei 2-polige Kabel von IO1/2 zu Y11/12 und von IO3/4 zu Y13/14.
3. Zwei 1-polige Kabel von ADC0 zu Y3 und von ADC1 zu Y5.
4. Ein 1-poliges Kabel von PWR (PWRON) zu Y1.

Wenn man RST nicht verbindet, bleiben noch drei USRBUS-Pins frei (Y7, Y9, Y10) für eine eigene Verwendung. Diese Pins können auch zwischen zwei EXPs (also ohne Verbindung zum RP6) genutzt werden.

Wie kann man die Verbindungen auf dem Mainboard herstellen?
Ich würde es mit Pfostensteckern machen (man kann natürlich auch direkte Kabelverbindungen anlöten!):
1. Einen 2-reihigen 14-poligen (744034) auf die USRBUS-Pads (Y1..14 vorn links auf dem Mainboard) auflöten.
2. Ein einreihiger 4- oder 5-poliger Pfostenstecker (744018) kommt auf (RST), TX, RX, GND, VDD. (Wenn 4-polig, dann OHNE RST!)
3. Zwei einreihige 3-polige Stecker auf die ADC0/1 Lötpads (nur 1 Pin wird davon benutzt!).
4. Zwei einreihige 2-polige Stecker auf IO1/2 und IO3/4.
5. Ein Stecker auf PWR (PWRON).

Die Verbindungen zwischen den Pfostensteckern kann man mit vorkonfektionierten 1..5-poligen PC-Kabeln (Set CONRAD 976261-62) steckbar herstellen, damit ist auch eine Änderung der USRBUS-Belegung später noch möglich. Die Kabel selbst muss man zwischen den Steckern kürzen und wieder verlöten (Lötstellen mit Schrumpfschlauch isolieren!!).


Das ganze sollte man nur angehen, wenn man Löterfahrung hat und an einen konkreten Ausbau des RP6 denkt.

Zum Ende noch die Frage: Warum poste ich diesen Vorschlag hier und setze das nicht nur bei mir selbst um?
Es hat einen gewissen Reiz, später evtl. fertige Experimentierplatinen tauschen oder (ver-)kaufen zu können. Wenn dann Klar ist, dass es sich um eine EXP z.B. für den RP6-Anschluß (siehe oben unter a!) handelt, müßten EXPs mit einer solchen "Standard-Belegung" einfach zwischen Usern auszutauschen sein und auf allen RP6 mit dieser USRBUS-Belegung funktionieren.

Man darf ja träumen! O:)

Wie denkt ihr darüber? Zu früh? Sinnlos? 8-[


MfG Dirk

cors
27.07.2007, 15:51
Moin Dirk,

es ist eine sehr gute Idee eine gewisse Kompatibilität zwischen den verschiedenen RP6 die so im Umlauf sind zu verfolgen.
Wenn man dann tatsächlich einmal einzelne Elemente (Platinen) austauschen möchte, gibt es keinen allzu großen Aufwand.
Schwierig wird es nur sein, sich mit solch einer großen Kommunity auf einen Vorschlag zu einigen.

Bei meinem RP6 bin ich derzeit noch garnicht so weit, dass ich mir über die Erweiterungen gedanken mache. Habe ihn erst seit 2 Tagen und versuche mich noch an der Programmierung des Standartaufbaus.

Finde deine Idee aber sehr gut!

Dirk
27.07.2007, 20:23
Hallo cors,


Bei meinem RP6 bin ich derzeit noch garnicht so weit, dass ich mir über die Erweiterungen gedanken mache.

Ja, das war ganz schön früh mit meinem Vorschlag, aber ich dachte: Bevor es viele Varianten gibt, schlage ich schon 'mal eine gute vor.

Ich denke 'mal, wir kommen darauf zurück, wenn es mehr für mehr User interessant wird.

Gruß Dirk

carlitoco
10.03.2008, 16:38
also ich werde das jetzt mal so durchziehen wie Dirk beschrieben hat...

@dirk das schreit nach abstimmung : ) und hast du es jetzt so aufgebaut ?

grüße

Dirk
10.03.2008, 16:58
Jo, habe ich.

Ich habe jetzt auch schon 3 EXPs mit dieser Belegung.

Was ich damals nicht erwähnt hatte:
Der USRBUS ist vorn und hinten auf dem RP6 nicht verbunden. Wenn man dieselbe Belegung für beide USRBUS-Stecker (vorn/hinten) braucht, weil man EXPs vorn oder hinten draufpacken will, muss man die Verbindungen auf dem RP6 natürlich auch für beide Stecker machen. (Natürlich könnte man den hinteren USRBUS auch anders belegen als den vorderen! Gäbe noch mehr Möglichkeiten.)

Ich habe das nur vorn gemacht.

Gruß Dirk

carlitoco
10.03.2008, 17:51
***Verwirt*** haste mal nen foto von´s janze ?

gruß

Pr0gm4n
10.03.2008, 17:59
Hi,

und warum machste das nich mit normalen lochrasterplatinen und je 4 14-poligen Wannenstecker-Buchsen?

naja, wenns die Lötarbeit iss, dann kann ich dich teils verstehen, aber mir isses trotzdem zu teuer, oder zahlst du irgendwo weniger?


MfG Pr0gm4n

Dirk
11.03.2008, 17:30
Hallo Pr0gm4n,

und warum machste das nich mit normalen lochrasterplatinen und je 4 14-poligen Wannenstecker-Buchsen?

Mein Post beschreibt, wie man den Stecker "USRBUS" belegt. Wenn du den RP6 kaufst, dann hat dieser Stecker überhaupt keine Verbindungen auf dem RP6. Da gibt es dann neben dem Stecker die Lötpunkte Y1..Y14. Diese must du mit Lötpunkten auf der RP6-Platine verbinden, wenn du den USRBUS benutzen willst.
Wenn du das gemacht hast, kannst du auf einer Experimentierplatine weiter mit den Signalen vom RP6 arbeiten, die du auf Y1..14 gelegt hast.

Wobei sollen da Lochrasterplatinen und 4 Wannenstecker-Buchsen helfen?

Gruß Dirk

julianf123
30.06.2009, 16:26
wenn man die Anschlüsse benutzen will wie kann man die Ein und aus schalten (programmieren)?

Dirk
30.06.2009, 17:39
wenn man die Anschlüsse benutzen will wie kann man die Ein und aus schalten (programmieren)?
Wie man allgemein I/O-Ports ein-/ausschaltet, findest du in der Anleitung zur RP6 Control M32 (RP6_M32_MANUAL_20071031.pdf) auf Seite 18 (Kapitel 3.1.9).

Wenn du I/O-Ports des XBUS oder des USRBUS schalten willst, dann gibt es ...
beim USRBUS: Erst mal gar keine. Du kannst aber, wie in diesem Post beschrieben, die I/O-Ports PA0 (ADC0) und PA1 (ADC1) hier drauf löten und zu einer EXP führen.

beim XBUS: SCL (PC0), SDA (PC1) und E_INT1 (PA4).

Viel Erfolg!

Gruß Dirk

Pr0gm4n
02.09.2009, 18:00
Hallo Pr0gm4n,

und warum machste das nich mit normalen lochrasterplatinen und je 4 14-poligen Wannenstecker-Buchsen?

Mein Post beschreibt, wie man den Stecker "USRBUS" belegt. Wenn du den RP6 kaufst, dann hat dieser Stecker überhaupt keine Verbindungen auf dem RP6. Da gibt es dann neben dem Stecker die Lötpunkte Y1..Y14. Diese must du mit Lötpunkten auf der RP6-Platine verbinden, wenn du den USRBUS benutzen willst.
Wenn du das gemacht hast, kannst du auf einer Experimentierplatine weiter mit den Signalen vom RP6 arbeiten, die du auf Y1..14 gelegt hast.

Wobei sollen da Lochrasterplatinen und 4 Wannenstecker-Buchsen helfen?

Gruß Dirk


sorry dass ich jetzt erst antworte ;-)

also es geht ums geld sparen, anstatt der experimentierplatine für 20 euro kann man sich das doch auch ganz billig selber zusammenbasteln auf ner lochrasterplatine, oder?

LG Pr0gm4n

Dirk
02.09.2009, 19:43
Ja, klar!

Gruß Dirk

Pr0gm4n
02.09.2009, 23:11
Ja meine frage war jetzt warum du das nícht machst?

LG Pr0gm4n

Dirk
03.09.2009, 20:55
Mh, vielleicht bin ich ja Millionär. O:)

Gruß Dirk

Pr0gm4n
03.09.2009, 22:36
Gib mir doch was ab xD

Hiermit erlaube ich Jedem mich zu sponsorn^^


LG Pr0gm4n

Martinius11
24.04.2010, 14:54
Also erst mal sorry das ich diesen uralten Thread wieder rauskramme aber ich hätte dazu eine Frage ist die Belegung des Userbus vom mainboard bereits fest gelegt oder muss man für diese belegung erst alles mit den freien y1-14 löchern des Rp6 Mainboards verbinden ?

Danke

TrainMen
24.04.2010, 18:22
Hi,
na klar muß das erst was ran, die sind nicht belegt, steht aber auch im Handbuch und hier im Thread.
Ich finde es aber überflüssig meist kann man die benötigten Pins doch nur einmal gebrauchen und dann kann ich auch direkt rangehen ohne übergang vom USRBUS
Trainmen

Pr0gm4n
24.04.2010, 19:29
Hi,

naja, die frage hierbei ist, man kann sie vielleicht "nur einmal gebrauchen", wobei vlt. auch nicht gleichzeitig für mehrere sachen gemeint ist

hat man wie dirk zum beispiel mehrere experimentierboards, oder hat man sich selbst solche angefertigt, kann man (bei verwendung des usrbus) einfach ein board ausstecken und ein zweites das den selbigen port verwendet anstecken und muss nicht erst wieder rumlöten :)

ist wie bei der programmierung, wenn man gleich alles schön in funktionen aufgliedert kann man diese später auch wieder einfach aufrufen, hat man das allerdings nicht, muss man danach immer wieder alles neuschreiben bzw. rüberkopieren

LG Pr0gm4n

TrainMen
25.04.2010, 17:08
also umlöten muß ich auch nichts. Ich nehm einfach meine Kabel und verbinde sie mit Exp und den Stiften der Base, andere nehmen eben den Wannenstecker des USRBUS und meist noch extraKabel weil der USRBus gerade wiedermal nicht das weitergibt was man vorhat. Aber jeder so wie er will.
Trainmen

Pr0gm4n
26.04.2010, 19:07
naja, es geht darum, dass du natürlich die standardsignale, die sowieso auf die experimentierplatine geleitet werden nicht auf dem usrbus abgreifst, sondern auf der anderen seite, ist ja klar.
alle anderen signale musst du aber entweder über den usrbus zuführen, oder kabel von unten auf die exp führen, diese muss man also ab-/umlöten wenn man die exp runternehmen will um andere sachen zu testen

LG Pr0gm4n

TrainMen
26.04.2010, 20:29
hä, wer hat denn von der XBus Seite gesprochen ?
ich habe hier 3 Exp im Einsatz, beim wechsel muss ich nichts ab oder umlöten, ich habe stifte auf der Exp(oben) und auf der Base und die werden verbunden, Ende, und getestet wird auf einem Breadboard, fertige Schaltungen kommen dann als endgültig auf eine Exp(einfache Platine) mit jeweils Stifte für die Kontakte der Base oder M32. Wie ich schon letztens geschrieben habe, jeder wie er will. Ich wollt hier nur eine andere Möglichkeit erwähnen.
Trainmen

Martinius11
26.04.2010, 22:29
was glaubt ihr ist besser alles mit dem bus verlöten oder mit den freien y1-14
flächen ?

Pr0gm4n
26.04.2010, 23:03
also auf jeden fall die y1-14, zur not kann man glaub sogar da so n en wannenstecker reinlöten :)

aber auf keinen fall mit dem bus direkt, die y1-14 sind ja im prinzip die lötstellen dazu^^

tut mir leid trainmen, ich hab das noch nicht so ganz verstanden wie du das machst, könntest du vlt. n paar fotos machen?

LG Pr0gm4n

inka
08.10.2013, 17:46
@Dirk:

wie aktuell ist noch die von Dir vorgeschlagene - und durchgeführte (?) - busbelegung? Haben sich im laufe der zeit verbesserungen/änderungen ergeben?

Dirk
08.10.2013, 18:42
Hi inka:

Naja, erstmal ist das schon 6 Jahre her. Dann gabs nicht ganz so viele Reaktionen, wie du hier siehst.

Für mich habe ich mich (weitgehend) an die Belegung gehalten.
Z.B. nehme ich PWRON immer auf Y1, weil fast alle Platinen dieses Signal zum Energiesparen nutzen.

Bei dem Vorschlag geht es auch nur um die RP6 Base Verbindung zur 1. Experimentierplatine. Da gibt es ja nicht so viele Signale des RP6, die man nutzen könnte, daher ist die Belegung immer noch so ganz sinnvoll.

Zusätzlich kann der USRBUS ja auch noch Experimentierplatinen untereinander verbinden, dazu nutze ich eigene Belegungen.

inka
08.10.2013, 22:59
Hi Dirk,

Naja, erstmal ist das schon 6 Jahre her. Dann gabs nicht ganz so viele Reaktionen, wie du hier siehst.
sollte man die überlegungen von damals mit den möglichkeiten die erst mit der M32 oder der M256 kamen ergänzen?


Bei dem Vorschlag geht es auch nur um die RP6 Base Verbindung zur 1. Experimentierplatine. Da gibt es ja nicht so viele Signale des RP6, die man nutzen könnte, daher ist die Belegung immer noch so ganz sinnvoll.
ich bin ja auch nur darauf gestossen, als ich nach einer möglichkeit gesucht habe den start/stop button (http://www.rn-wissen.de/index.php/RP6#Start.2FStop_Button) an eine andere stelle zu "versetzen". macht das sinn es über den userbus zu machen? Oder nur zwei litzen woanders hinziehen?


Zusätzlich kann der USRBUS ja auch noch Experimentierplatinen untereinander verbinden, dazu nutze ich eigene Belegungen.
heisst das, dass du dann den USERBUS an einer bestimmten stelle unterbrichst und anders belegst, oder meinst du die verwendung von bus 1 und 2?

Dirk
09.10.2013, 09:53
Hi inka:

sollte man die überlegungen von damals mit den möglichkeiten die erst mit der M32 oder der M256 kamen ergänzen?
Die M32 gab es damals schon. Die empfohlene USRBUS 1 Belegung ging von den Möglichkeiten der RP6 Base aus.
D.h.: Es gibt nur wenige Portpins oder Signalleitungen auf der Base, die man zur Weiterleitung überhaupt nutzen kann. Für diese wenigen Kontakte hatte ich eine Belegung empfohlen, die man vereinheitlichen könnte.
Die CCPRO M128 oder M256 ändern nichts daran, dass auf der Base nur die wenigen Kontakte existieren, die man extern nutzen kann. Die M256 hat selbst auch keinen USRBUS.

Natürlich könnte man für Verbindungen zwischen M32, M128 und Experimentierplatinen ganz andere Belegungen des USRBUS andenken. Magst du da was vorschlagen?


...nach einer möglichkeit gesucht habe den start/stop button an eine andere stelle zu "versetzen". macht das sinn es über den userbus zu machen? Oder nur zwei litzen woanders hinziehen?
Das macht schon Sinn. Man könnte dafür Y7/Y9 des USRBUS 1 nehmen, die man auf der Base mit ST1/ST2 und auf einer Exp mit einem Taster verbinden müßte.


heisst das, dass du dann den USERBUS an einer bestimmten stelle unterbrichst und anders belegst, oder meinst du die verwendung von bus 1 und 2
Ich habe Experimentierplatinen, die über den USRBUS (fest) verbunden sind, und keine Verbindung zur Base haben. Die Verwendung von Bus 2 macht dann Sinn, wenn man z.B. auf den hinteren Stapel nur Exps ohne Verbindung zur Base packt und den USRBUS 2 da dann anders belegt.

inka
09.10.2013, 18:34
Hi Dirk,

ich möchte da jetzt keine großen experimente starten, jetzt wo ich der robby auseinander genommen habe löte ich die pins erstmal ein. Bei dem USR_BUS 1+2, auch für die anderen signale, so, wie sie in deiner beschreibung sind. Mit dem startbutton ist ja der BUS_1 eher voll. Zwei fragen:

wo finde ich den PWRON pin?
die ADC0 & 1 sind die jeweils drei pins (ADc*, VDD, GND) zwischen dem quarz und dem IR empfänger?

Dirk
09.10.2013, 19:57
Hi inka:

wo finde ich den PWRON pin?
Er bzw. sein Lötauge ist beschriftet mit "PWR" und sitzt in der Nähe der beiden mittleren Lochrasterfelder.


die ADC0 & 1 sind die jeweils drei pins (ADc*, VDD, GND) zwischen dem quarz und dem IR empfänger?
Ja, genau. Zur Verbindung mit dem USRBUS braucht man davon nur den ADC-Pin (ADC0, ADC1), also jeweils Pin 3.

inka
12.10.2013, 10:04
also, umbau fertig, funktioniert (der start-stop-button zumindest), die belegung ist bei mir nun:


Pin: Signal: Verwendung:


Y1 PWRON Energiesparfunktion
Y2 VDD +5 Volt
Y3 ADC0 A/D-Wandler Kanal 0
Y4 GND GND/Masse
Y5 ADC1 A/D-Wandler Kanal 1
Y6 RX Serielle Schnittstelle RXD
Y7 ST1 start-stop Taster
Y8 TX Serielle Schnittstelle TXD
Y9 ST2 start-stop Taster
Y10 RST Reset
Y11 IO1 Portc.4 (Digitale Eingänge)
Y12 IO2 Portc.5
Y13 IO3 Portb.7
Y14 IO4 Portb.1

mal schauen, wann ich die anderen signale brauche...