PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : erweiterung der Eingänge einer BasicStamp mit Multiplexern?



dOmNik
09.05.2005, 22:19
Hey allesamt;

ich habe ein neues Projekt vor augen und brauche dafür 64 eingänge an eine Basicstamp. Das problem ist das es keine gibt welche so viele, digitalen eingänge hat. Darum ahbe ich mir überlegt sie über 9 8 bit digitalmultilepxer in die stamp zu hohlen.

ich frage mich dabei nun nur ob dies realistisch ist, und vor allem machbar...theoretisch kann ich mir das gut vorstellen denn dann bruache ich nur 6 digitale aus gänge der stamp, welche die plexer adressieren und dann einen eingang, welcher dann dem entsprechenden wert einliesst...

ich kann nun nicht einschätzen wie schnell da geht?...denn ich muss 64 kapazitive sensoren überwachen und die entsprechenden werte zu meinem pc schicken....

nun denn hoffe einen zu finden der damit schon erfahrungen sammeln konnte....

gruss

dOmNik

stageliner
10.05.2005, 06:12
hallo,
die einfachste version dürfte eine kombination von 8 mal 74245 und einem 74138 sein. dabei brauchst du 8 eingänge und 3 ausgänge.
74245 sind nichtinvertierende bustransceiver die du über pin 19 mit H hochohmig oder L als datenschalter verwenden kannst. die auswahl der 8 datenschalter machst du über einen 74138, das ist ein 3 zu 8 demultiplexer, dessen binärer 3 bit wert an pin 1 2 3 zu einem durchschalten der pins 7, 9 - 15 einzeln gegen L führt und so ideal die 74245 ansteuern kann.
die geschwindigkeit, die du erzielen kannst, hängt eigentlich nur von der tacktgeschwindigkeit deiner stamp ab, du mußt eben auf den 3 ausgängen binär von 0 - 7 zählen und dabei jeweils deinen eingangsbus abfragen und abspeichern. wie schnell das gehen kann hängt davon ab was du sonnst noch so mit den daten anstellst.
gruß
stageliner

PicNick
10.05.2005, 06:30
Du kannst auch mit analog-schaltern multiplexen (CD4051, 52, 53...)
Nur bei 64 Inputs tät ich schon über Schieberegister nachdenken.

Skilltronic
10.05.2005, 07:50
Hallo

Ich würde auch eher zu Schieberegistern tendieren, wie z.B. dem 4021. Der hat 8 Dateneingänge und du kannst beliebig viele davon hintereinanderschalten. Ein Vorteil ist, dass du zum Auslaesen immer nur einen Ein- und zwei Ausgänge brauchst, egal wieviele ICs du hintereinanderhängst.

Gruss
Skilltronic

dOmNik
10.05.2005, 11:33
nun denn...schieberegister...

ich verstehe nur ncht ganz wie mir das zu vielen eingängen verhelfen soll...denn ich muss ja jeze mit schieberegister einen tackt anlegen und kann alles in 64 mal takt in die stamp einlesen...wenn sich zwischenzeitlich was geändertz hat, dann ändert sich an der stelle auh das bit im register...nur wenn das bit nun ein anderes war, welches schon vorher von stelle 5 z.B. gekommen ist dann wird es von stelle 1 überschrieben...Hmm zumindest verstehe ich so die schieberegister..

hmm aba es kann sein das ich das was falsch verstehe!...kenne mich mit schiebern nich so gut aus...aba denke doch das ich dessen funktion kenne...

ein takt schiebt die bitzahl immer weiter im register entlag...
ich müsste dann die 64 leitungen der sensoren abschalten können so das sie beim auslesen nich mehr stören...
dann könnt es schon gehen...bräuchte dann aba noch bustreiber und so...

denke dann is es schon fast besser multiplexer zu nehmen...

gruss dOmNik

dOmNik
10.05.2005, 12:17
hmm sorry....
ich tat euch unrecht...bin jeze auf den trichter gekommen das es schieber gibt die zum parallel zu seriel einlesen gemacht sind und somit diesen baustein integriert haben...

und ichmuss sagen das sieht schon sehr verführerisch aus...

gruss dOmNik

Skilltronic
10.05.2005, 12:27
Hallo

Das macht der 4021 schon alles. Es gibt Zwei Steuerleitungen. Die eine (Clock) ist für den BitschiebetaktDazu gibt es aber noch einen Übernahmetakt (Strobe). Erst wenn der eine positive Flanke bekommt, übernehmen alle - in deinem Fall alle 64 - Bit des Schieberegisters den Wert ihres Eingangs, der danach wieder inaktiv wird. Was dann während des Schiebens an den Eingängen passiert, ist egal.

Gruss
Skilltronic

dOmNik
10.05.2005, 12:34
jepp... danke...

ich habe mir gerade den 8-bit parallel-in/serial-out shift register von philips angesehen...hat die bezeichnung 74HCT165... denkste der geht och...?...

gruss dOmNik

dOmNik
10.05.2005, 12:34
jepp... danke...

ich habe mir gerade den 8-bit parallel-in/serial-out shift register von philips angesehen...hat die bezeichnung 74HCT165... denkste der geht och...?...

gruss dOmNik

dOmNik
10.05.2005, 12:42
hmm und noch ne Frage...

wa bedeutet im datenblatt der Cl wert?...ich weiss nicht wie die Kapaität zustande kommt?...bzw wie und ob ich die beiflussen kann und sollte?...
hmm bin da en wenig verwirrt...

gruss dOmNik

stageliner
10.05.2005, 14:08
seid mir bitte nicht böse, aber mit euerem paralel seriell wahn spart ihr zwar eingänge aber braucht 64 schleifendurchläufe bis ihr alles drinn habt. wenn, wie schon vorher erwähnt, die zeit eine kritische rolle spielt, habe ich mit der paralelmultiplexerei nach 8 schleifen alles drinn und fertig. na gut jedem das seine ich muß es ja nicht bauen.
trotzdem viel erfolg
stageliner

dOmNik
10.05.2005, 14:34
hmm

das stimmt...

aba in dem wahn bin ich noch nicht so ganz...

wasis denn parallel multiplexing??....

denke das hört sich doch ganz gut an...
kannst du mit da weiter helfen oder ne web seite geben???


gruss dOmNik

stageliner
10.05.2005, 16:50
ja wie schon geschrieben schiebst du jeweils 8 bit gleichzeitig auf 8 eingänge dafür benötigst du einen schalter, der entweder seine eingänge auf die ausgänge schaltet oder die ausgänge neutral (hochohmig) macht.
dies kann der 74245 (googeln) um jetzt 64 eingänge zu realisieren brauchst du 8 stück davon. die eingänge sind nun die 64 eingänge und die ausgänge hängst du alle parallel auf einen 8 bit port deiner stamp.
ist nun pin 19 high sind die ausgänge hochohmig, low an pin 19 schaltet die eingänge zu den ausgängen durch. jetzt mußt du nur noch die einzelnen bustreiber auswählen. das geht einfach mit dem 74138. der macht aus 3 bit binär 8 bit dezimal. die ausgänge auf je einen pin 19 der bustreiber und je nach angelegter binärzahl schaltet der dazugehörige bustreiber seine eingänge an die ausgänge durch.
am bustreiber must du noch die richtung auswählen (Dir H oder L je nach dem was du als eingang oder ausgang verwendest) und den 74138 mußt du enabeln (G1 = H; G2 = L)

port(y) = H00
variable0 = port(x)
port(y) = H01
variable1 = port(x)
port(y) = H02
variable1 = port(x)
und so weiter bis
port(y) = H07
variable7 = port(x)
je nach dialekt deiner entwicklungsumgebung.
mit 16 zeilen code hast du die 64 bit in 8 variablen eingelesen, schneller geht es nicht!
viel spass beim bauen
stageliner

dOmNik
10.05.2005, 18:01
uiii...

ja das scheint sinnvoll...nun denn da ich an der stamp 16 eingänge habe, brauche ich den 74138 nicht, denn habe ja 8 ausgänge zur verfügung...is zwar schlauer das zu machen, aba muss mal sehen wie viel platz ich noch auf meiner platine habe...

dir besten dank!!...

gruss dOmNik

Skilltronic
11.05.2005, 12:39
Na ja, parallel-seriell Wandler brauchen dafür nur einen Ein- und zwei Ausgänge, egal wieviele ICs hintereinander gehängt werden. Deshalb ist auch der Aufbau und eine evtl. spätere Erweiterung viel einfacher. Ausserdem brauchst du je nach Anwendung bei der Verarbeitung der eingelesenen Daten doch wieder eine 64er Schleife.

Gruss
Skilltronic

PicNick
11.05.2005, 13:01
Es geht um das Gesamte. Beim Multiplexen kann ich beliebig einzelne Bytes/Bits lesen und setzen, beim Shiften brauch ich dafür weniger Pins und IC.
Dann geht's um die Unterstützung durch den Kontroller. Hab ich einen HW-SPI, kann ich die Bits mit der Systemclock raus- und reinfetzen lassen. Hab ich das nicht, ist es beim Pollen wahrscheinlich irgendwie wurst, was ich mach, ich muß mir in Summe 64 Bit holen und einzeln anschauen, da hilft so oder so nix.

zennehoy
12.05.2005, 00:48
Wenn ich mich recht erinnere, kannst du mit dem Basic Stamp sowieso immer nur einen pin auf einmal lesen. Ports als solche gibt es nicht. Also musst du 64 mal einzelne pins lesen, und kannst daher genau so gut per Shiften 64 mal den gleichen lesen. (Beim BasicX ist das jedenfalls so, ich glaube aber der Basic Stamp ist fast identisch). Es gibt auch einen befehl ShiftIn oder so aehnlich, dann geht das ganze mit schiften sogar noch etwas schneller.
Ausser du willst wie PicNick schon sagte die moeglichkeit haben, nur einzelne Pins abzufragen.
Eine weitere Moeglichkeit ist ueber 'nen I2C Bus die Daten zu holen, mit 8xPCF8574. Ist wahrscheinlich etwas teurer, hat aber den vorteil dass du die Pins auch als ausgang nutzen kannst.
Gruss!
Zen

dOmNik
15.05.2005, 20:20
hmm, alo ich muss wissen wann welcher Sensor Ic mir ne eins gibt, um dies dann wiederum meiner anwendung auf dem PC mitzuteilen. Mir geht es also um die information wann welcher der 64 kanäle auf eins geht...

hmm ja das mit dem shiften scheint richtig und sinnvoll, nur kann ich auch bytes einlesen lassen das geht dann auf einmal. Nur muss die stamp dann widerum das Byte auseinanderfrimelm und sehen was jeze eins is und was nicht...

wie mir schient is das shiften schon ganz gut...

stageliner
15.05.2005, 20:36
wenn deine anwendung zeitkritisch ist, kannst du das shiften vergessen.
wie gesagt 16 zeilen und die info ist zum verarbeiten bereit
bei dem shiften brauchst du nur alleine zum schieben 64 anweisungen dann hast du aber noch nichts eingelesen, das dauert nochmal 64 anweisungen. dann hast du aber noch nichts mit den daten gemacht von dem aufteilen in verschiedenen variablen mal abgesehen.
wenn du von den 128 anweisungen 16 abziehst bleiben 112 anweisungen übrig mit denen du gemütlich deine 8 variablen verarbeiten kannst und wieder einlesen kannst was ist allso schneller?
gruß
stageliner

dOmNik
15.05.2005, 20:51
grisn...mensch das wird ja nen kamp hier...

also kenn mich mit den anweisunge nicht aus...

aba ich mache es auf deine art, da ich die register im griff habe, mit dem schiften schnell oder langsam kenn ich mich nich aus und habe auch nicht die zeit mich damit auseinader zu setzten...akann sein das es ne tolle möglichkeit ist, aba nur dann wenn ich weiss wie ich das managen kann...

die sache mit dem bus kann ich machen, kenne die bausteine...bzw eiss wie sie funken...

danke dir...