PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : UART multiplexen - 4011 zu langsam???



roboter
29.03.2005, 18:06
Hallo!

Habe hier eine Schaltung um den Ausgang des Uarts zu multiplexen. Funktioniert aber nicht :frown:

Kann es sein das der 4011 zu langsam ist?

MFG!

PicNick
29.03.2005, 18:34
Durch das NAND wird der Pegel umgedreht. Erwünscht ?
Wie ist das UART-seitig gedacht (Zeichn. links) ?

roboter
29.03.2005, 18:49
Durch das NAND wird der Pegel umgedreht. Erwünscht ?
Verdammt, daran habe ich gar nicht mehr gedacht. Die beiden Ausgänge müsten dann ja noch einmal negiert werden.

Also

SV1.2 ist mit einem IO-Port eines M32 verbunden, soll einfach als Steuerleitung dienen.
SV1.1 liegt an TXD des M32 und je nachdem ob die Steuerleitung + oder - ist, sollen die Daten zu einem M8 (SV2.2) oder zu einem MAX232 (SV2.3) gesendet werden.
SV1.3 liegt an RXD des M32 und SV2.1 liegt an dem MAX232. Dies soll nicht gemultiplext werden.

Das das nicht funzt, liegt also wahrscheinlich daran, das die Pegel umgedreht werden.

Erstmal vielen Dank.

roboter
29.03.2005, 18:52
Achja, zwischen SV1.2 und dem M32 ist noch ein 1K-Widerstand.

P.S.: Sorry wegen Doppelpost.

roboter
29.03.2005, 20:31
Die Schaltung ist jetzt wie auf dem Bild verändert. Geht aber trotzdem nicht.

Woran liegts?
MFG!

sebastian.heyn
29.03.2005, 20:53
wieso nand? uart ist doch glaub ich immer high und wird dannauf low gesetzt..

roboter
29.03.2005, 20:56
wieso nand? uart ist doch glaub ich immer high und wird dannauf low gesetzt..

Wie meinst du das jetzt?

Marco78
30.03.2005, 07:11
wieso nand? uart ist doch glaub ich immer high und wird dannauf low gesetzt..
Eine Logische 0 bedeutet +5V (+12V bei V.24) und logische 1 bedeutet 0V (-12V bei V.24).

So meinte er das. Und der Meinung bin ich auch.

Ich habe jetzt nicht drauf geachtet, aber hast du bedacht, das die Daten in 2 Richtungen gehen? So wie es auf dem ersten Plan aussah würden die Daten von TX und RX nur von links nach rechte gehen.

PicNick
30.03.2005, 09:49
Macht euch nicht wirr. Der MUX soll auch nur eine Richtung haben.
TX-->MUX --> RX1/RX2
Und der Pegel geht nun 1:1 durch, ist also logisch o.k.
Es muß ein anderes Problem geben. Ich schau mal nach dem 4011.

roboter
30.03.2005, 10:04
Macht euch nicht wirr. Der MUX soll auch nur eine Richtung haben.
TX-->MUX --> RX1/RX2


Genau, er soll nur eine Richtung haben, das ist schon so gedacht.

PicNick
30.03.2005, 10:08
@Robotski: Wenn du schon da bist: Du bist reinen Gewissens, was das Setzen des Switchsignal betrifft ? (erst switchen, dann ins RX-register schreiben, erst wenn fertig, wieder switchen)
Wenn das nämlich dazwischen schnackelt, suchen wir uns einen Ast nach Fehlern.

roboter
30.03.2005, 10:19
Ich habe zum ausprobieren folgenden Code benutzt:

$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600

Ddrd.6 = 1 ' Die Steuerleitung hängt an Portd.6
Portd.6 = 0
Print "Test"
Portd.6 = 1
Print "Test"

Do
Loop

End 'end program

PicNick
30.03.2005, 10:19
Ach ja: den 1k vom M32 solltest du nicht brauchen, TTL-Logic ist TTL-logic.
Es kann auch helfen, bei den Invertern immer nur einen Input anzusteuern, und den anderen direkt auf + zu hängen.

PicNick
30.03.2005, 10:31
4011 angesehen, klingt unverdächtig. Manche mischen nicht gerne 40.. mit 74.. weiß nicht.
Was passiert eigentlich ? absolut NIX ?
Leg die Steuerleitung mal zu Fuß auf hi oder low. Dann sollt doch einer was kriegen.
Ich würd auch einmal den Mux überbrücken, ob's überhaupt daran liegt.
Um ein Zeitproblem a priori mal auszuschließen, kannst du ja ein paar mS nach dem switchen einfügen.
Sonst fällt mit außer Oszi Kontrolle momentan nicht viel ein, muß ich sagen
Der Code ist ja recht schlicht und übersichtlich gehalten.

roboter
30.03.2005, 10:33
Überbrückt habe ich den MUX schonmal, dann funktioniert alles ganz normal.
Ich die ganzen Tips heute abend nochmal ausprobieren.
Dann melde ich mich nochmal

MFG!