PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LEDs an XBUS/USRBUS



Tomcat12
30.01.2008, 22:57
Hallo,
ich habe seit 2 Tagen den rp6. Nun will ich LEDs auf die Experimentierplatine löten, weiß aber nicht wie man die anschließen muss. Ich vermute, dass ich den Minuspol an GND des XBUS/USRBUS anschließen muss. Hab aber keinen plan wo ich den Pluspol anschließen muss, und ob das direkt geht (ohne transistoren, Kondensatoren, ICs, usw.).

Grüßle Tomcat

Dirk
31.01.2008, 17:04
Hallo Tomcat,

Glückwunsch zum RP6!
Vom RP6 kommen ja durch den XBUS auf der Experimentierplatine 3 nutzbare Ports an:
1. IT1 = PA4
2. SCL = PC0
3. SDA = PC1

Daran kannst du direkt 3 LEDs anschliessen.

"Normale" LEDs mit 20mA werden mit einem Vorwiderstand von ca. 150 Ohm,
Low-current LEDs (2..4mA) mit 1kOhm bis 1,5 kOhm angeschlossen.

Es gibt 2 mögliche Varianten:
1. Pluspol der LED (Anode) an VDD, Minuspol (über Vorwiderstand!) an den Port.
2. Pluspol der LED (Anode) an den Port, Minuspol (über Vorwiderstand!) an GND.

Bei Variante 1 leuchtet die LED, wenn der Port 0 (low) ist,
bei Variante 2 leuchtet die LED, wenn der Port 1 (high) ist.

Was würde ich für Experimente empfehlen?
Low-current-LEDs (schont den Akku).

Wenn du die LEDs fest auf die Experimentierplatine lötest, solltest du Jumper (Steckverbinder) zur Verbindung zu den Ports einsetzen, damit du die LEDs auch von den Ports trennen kannst.
Vorteil: Es sind dann auch andere Dinge später möglich, z.B. die Benutzung von I2C.

Der USRBUS ist nicht angeschlossen. Wenn du ihn auf der RP6-Platine anschliesst (d.h. eigene Verbindungen dranlötest), könntest du auch noch weitere Ports/Verbindungen auf die Experimentierplatine führen.
Den USRBUS könnte man z.B. so belegen:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=32549

Gruß Dirk

Tomcat12
31.01.2008, 20:50
Danke für die schnelle Antwort. hab jetzt die LEDs über transistoren auf die Experimentierplatine gelötet. Hab heut mittag auf eigene faust versuch die LEDs mit Vorwiederstand direkt an den Port zu löten. Da hats mir gleich die Sicherung verissen. Jetzt hab ich die Transistoren dazugelötet und es läuft.
Hab mittleres Transitorfüßchen an IT1, die äußeren beiden an +UB und GND.
Die Transitoren sind BC547 und der Vorwiederstand ich glaub ich irgendwas mit 400 Ohm.

Grüßle Daniel

PS: Wie kann ich SCL und SDA ansteuern?

Dirk
31.01.2008, 20:58
Wie kann ich SCL und SDA ansteuern?

// Einmalige Initialisierung:
DDRC |= (SCL | SDA); // PC0, PC1 als Ausgänge definieren


PORTC |= SCL; // PC0 high
PORTC &= ~SCL; // PC0 low

PORTC |= SDA; // PC1 high
PORTC &= ~SDA; // PC1 low

Gruß Dirk

Tomcat12
31.01.2008, 21:16
Danke.
jetzt hab ich noch eine frage. kann ich IT2 und IT3 auch ansteuern? oder sind die für andere aufgaben (z.B. Kommunikation) bestimmt?
Grüßle
Tomcat

Dirk
31.01.2008, 21:23
INT2, INT3 und INTU gehören auf dem RP6 nicht zu einem Port des M32.
Da kannst du also nichts anschliessen.

Gruß Dirk

robob
01.03.2008, 13:53
Hallo Tomcat,

Glückwunsch zum RP6!
Vom RP6 kommen ja durch den XBUS auf der Experimentierplatine 3 nutzbare Ports an:
1. IT1 = PA4
2. SCL = PC0
3. SDA = PC1

Daran kannst du direkt 3 LEDs anschliessen.

"Normale" LEDs mit 20mA werden mit einem Vorwiderstand von ca. 150 Ohm,
Low-current LEDs (2..4mA) mit 1kOhm bis 1,5 kOhm angeschlossen.

Es gibt 2 mögliche Varianten:
1. Pluspol der LED (Anode) an VDD, Minuspol (über Vorwiderstand!) an den Port.
2. Pluspol der LED (Anode) an den Port, Minuspol (über Vorwiderstand!) an GND.

Bei Variante 1 leuchtet die LED, wenn der Port 0 (low) ist,
bei Variante 2 leuchtet die LED, wenn der Port 1 (high) ist.

Was würde ich für Experimente empfehlen?
Low-current-LEDs (schont den Akku).

Wenn du die LEDs fest auf die Experimentierplatine lötest, solltest du Jumper (Steckverbinder) zur Verbindung zu den Ports einsetzen, damit du die LEDs auch von den Ports trennen kannst.
Vorteil: Es sind dann auch andere Dinge später möglich, z.B. die Benutzung von I2C.

Der USRBUS ist nicht angeschlossen. Wenn du ihn auf der RP6-Platine anschliesst (d.h. eigene Verbindungen dranlötest), könntest du auch noch weitere Ports/Verbindungen auf die Experimentierplatine führen.
Den USRBUS könnte man z.B. so belegen:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=32549

Gruß Dirk

und welchen befehl brauch ich dann beim programmieren?

Pr0gm4n
01.03.2008, 14:32
Das steht unter anderem da: https://www.roboternetz.de/phpBB2/viewtopic.php?t=38575

also in deinem eigenen Thread robob, aber nur kurz zur erklärung, in die main-funktion kommt:



int16_t main(void)
{

DDRA |= (E_INT1); // PA4 (IT1) als Ausgang definieren
DDRC |= (SCL | SDA); // PC0, PC1 als Ausgänge definieren

while (true)
{
PORTA |= E_INT1; // PA4 auf high setzen
mSleep(1000);
PORTA &= ~E_INT1; // PA4 auf low setzen

PORTC |= SCL; // PC0 auf high setzen
mSleep(1000);
PORTC &= ~SCL; // PC0 auf low setzen

PORTC |= SDA; // PC1 auf high setzen
mSleep(1000);
PORTC &= ~SDA; // PC1 auf low setzen

}

//Dieses Programm lässt jetzt alle LEDs blinken, bis du den RP6 wieder ausschaltest...

return 0;

}




MfG Pr0gm4n

blenderkid
01.03.2008, 14:43
aber kann es dann nicht passieren das man ausversehen einen anderen I2C Slave anspricht?

Dirk
01.03.2008, 15:48
... kann es dann nicht passieren das man ausversehen einen anderen I2C Slave anspricht?
Wenn man SCL und SDA als Ausgänge zum Ansteuern von LEDs o.ä. benutzt, kann man nicht gleichzeitig auch den I2C-Bus nutzen.
Das ganze ist ja nur gedacht für den RP6 ohne Control M32 und zum ersten Testen von Ports.

Wenn man I2C benutzt, sollte man auch einen I2C-Portexpander für weitere Ports nehmen.

Gruß Dirk

Pr0gm4n
01.03.2008, 17:26
Hi dirk,

da du den Portexpander gerade ansprichst:

du weist ja inzwischen bestimmt, dass ich es mit den schaltplänen nicht so hab...

Ich kapier also aus dem ganzen zeug zum Portexpander nur folgendes:
-der Portexpander ist so ein kleiner Chip
-an den Portexpander kommen GND, VCC und 1 Steuerungskabel oder so
-man kann mit diesem einen Steuerungskabel über I²C Slave dann die I/Os und ADCs ansteuern

stimmt das alles??

wie muss ich das dann genau anschliessen, ich will den halt ein paar mal kaufen und jeweils fest auf einer Lochrasterplatine montieren, dass ich jeweils dann die anzusteuernden Sachen drauf lassen kann...

MfG Pr0gm4n

Dirk
01.03.2008, 18:23
stimmt das alles??

Ja, genau.
So ein Chip, z.B. der PCF8574, bietet 8 neue I/O-Ports. Dafür ist er an den I2C-Bus (SCL, SDA) angeschlossen, natürlich auch +5V und GND, für die Adressauswahl z.B. 3 Jumper und evtl. noch ein Interrupt-Pin.

Es gibt auch Chips mit A/D-Wandlern, usw.

Eigentlich recht einfach anzuschließen.

Gruß Dirk

Pr0gm4n
01.03.2008, 18:32
Kannst du mir vielleicht die genaue Pinbelegung in so ein bild von einem reinmachen??

wäre dir echt mega dankbar... ich muss das schaltplanlesen echt noch üben^^

bild findest du da: http://www.reichelt.de/?SID=29pid4rawQAR0AAHvJgqM01ba8856603060a164ec8451 55cbecaa;ACTION=4

PS: was heisst das, wenn man die I2C adresse wählen kann?? - dass man dann mehrere gleichzeitig anschliessen kann??

MfG Pr0gm4n

Pr0gm4n
01.03.2008, 18:33
Ach ja, und was macht eig. ein A/D Wandler??

MfG Pr0gm4n

Dirk
01.03.2008, 18:43
Hier das Datenblatt vom PCF8574:
http://www.nxp.com/acrobat_download/datasheets/PCF8574_4.pdf

Ja, man kann mehrere an den I2C-Bus anschliessen, zusammen mit elektron. Kompass, RTC, .......

A/D-Wandler: Da gibt es viele Beschreibungen, auch in der Anleitung des RP6.

Gruß Dirk

Pr0gm4n
01.03.2008, 19:06
Hi, sieht das dann folgendermaßen aus bzw. was gehört an meine "??"




MfG Pr0gm4n

Dirk
01.03.2008, 19:28
... an die drei ?? (Adresspins) kommt normalerweise ein Jumperblock 3 x 3 Pins. An die mittleren 3 Pins kommen die ??, an die äußeren 3 Pins auf der einen Seite +5V, auf der anderen Seite GND.

Also: Jeder Adresspin kann auf GND oder +5V gesetzt werden.

INT kann am RP6 z.B. (über Jumper) mit IT1 verbunden werden.

Gruß Dirk

Pr0gm4n
01.03.2008, 19:48
Hi,

also es stimmt schon alles, was ich drin habe oder?

naja, bei INT tu ich also einen der ITs ran und das mit den Adressports hab ich aber nich verstanden...

Was genau muss jetzt da hin?? einfach nur Jumper?? Jumper würden mich echt wundern, das sind doch nur Pinbrücken...


MfG Pr0gm4n

Dirk
01.03.2008, 20:11
einfach nur Jumper?? Jumper würden mich echt wundern, das sind doch nur Pinbrücken...

Genau.

Gruß Dirk

Pr0gm4n
01.03.2008, 20:20
Hi,

heißt das dann, dass ich A0, A1 und A2 miteinander verbinden soll oder wie??

MfG Pr0gm4n

Pr0gm4n
02.03.2008, 15:36
Stimmt das jetzt oder nich??

MfG Pr0gm4n

Dirk
02.03.2008, 15:51
... A0, A1 und A2 miteinander verbinden ...
Stimmt das jetzt oder nich??

Nein, stimmt nicht.

Siehe oben:

Also: Jeder Adresspin kann auf GND oder +5V gesetzt werden.

Gruß Dirk

Pr0gm4n
02.03.2008, 17:11
Hi,

was macht dann überhaupt dieser Jumperblock?? oder braucht man den--> 2 Möglichkeiten.

1) Soll ich jeweils entweder GND oder +5 anschliessen??

2) Soll ich das mit sonem komischon Jumperdings...ääh...Jumperblock machen??


MfG Pr0gm4n