Forum: Mikrocontroller und Digitale Elektronik Adressierung von ein und ausgänge


von Christian K. (Firma: ...........) (drlovejoy)


Lesenswert?

Guten morgen .

Ich hoffe ihr könnt mir helfen, habe noch nichts mit Mikrocontrollern zu 
tun gehabt.
Also ich habe eine kleine Platine gemacht wo ein Serial Anschluss sowie 
ein usb Serial Adapter drauf ist. Vom Serial gehe ich auf einen max3232 
, und will 2 Ausgänge  von den max3232 den Tx und Rx , sowie vom Usb 
Serial wo ein FT232RL verbaut ist , und diese Ausgänge möchte ich auch 
sowie vom max3232 auf die Eingänge auf einen Mikrocontroller legen.
Und einige von den Eingängen sollen dann direkt ohne irgend welche 
Schalter abfragen ect.. direkt nur auf die Ausgänge gelegt werden.
Also Beispiel
Pin 1 Eingang den Tx vom max.
Pin 2 Eingang den Tx vom ft323
Pin 3 Eingang den Rx vom Ft323
Pin 4 Eingang den Rx vom max.
Pin 5 Ausgang den ….
Pin 6 Ausgang den…

Je nach Belieben das ich da variieren kann.
Habe mir das Anfänger tut durch gelesen mache ich das mit dem Portx 
Befehl?
Ich denke mal es werden so um die 10 Eingänge nötig sowie 10 Ausgänge 
max., wäre es auch möglich eine 3,3 Volt Spannung von einen x belieben 
Eingang ohne Verlust auf einen Ausgang zu legen ?

Und welche Avr wäre dafür dann geeignet.

Brauche nur einen denk anstoß möchte niemanden meine Arbeit aufzwingen.

von Karl H. (kbuchegg)


Lesenswert?

Vielleicht gehts nur mir so:
Auch nach dem 3ten Durchlesen hab ich noch nicht einmal den Hauch eines 
Schimmers, was eigentlich das Problem ist.

Suchst du so etwas wie einen per Software konfigurierbaren 
Kreuzschienenverteiler?

von Christian K. (Firma: ...........) (drlovejoy)


Lesenswert?

Ich will nur bestimmte eingänge sagen wir von 12 stück nur 4 raus suchen 
die ich eben jetzt für eine anwendung brauche , auf 4 ausgänge legen . 
Wenn ich für eine andere anwendung von den 12 eingänge nur 10 benutzen 
möchte ich diese 10 auf 10 ausgänge legen. Ich weiß zwar nicht was ein 
Kreuzschienenverteiler ist hört sich schonmal gut an

von Grrrr (Gast)


Lesenswert?

Naja. Da war erstmal ein Neustart meiner Brain-CPU notwendig.
Haufenweise Syntaxfehler und illegal type casts. ;-)

Also ich schlage Dir vor, das Du Dir hier die Artikel und die Tutorials 
durchliest. Dann machst Du eine Skizze und verweist in der Skizze 
jeweils auf den entsprechenden Teil des Tutorials: "So oder so ähnlich 
soll es hier sein"; mit Kreis und Pfeil. Anhand dessen stellst Du Deine 
Fragen. Achte darauf die Sätze so einfach wie möglich zu schreiben.

von Christian K. (Firma: ...........) (drlovejoy)


Lesenswert?

ALso falls ich mich unverständlich ausgedrück habe tut es mir leid.

Ich habe einen Tx Signal was ich auf dem 2 eingang von einen avr legen 
will , und will diesen aber auf dem 6 ausgang haben.Möchte dieses signal 
einfach nur vom eingang auf dem ausgang durchschleifen brücken wie auch 
immer man das nennt.Es muss dafür keine signal abfrage oder ein schalter 
geschaltet werden ect..



Hier rein --->        da <----- raus
dafür den einfachen befehl suche ich

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Dann machst Du eine Skizze
Die Alternative wäre ein Schaltplan. Das ist das Kommunikationsmittel 
unter Elektroniker schlechthin... :-o

> Ich weiß zwar nicht was ein Kreuzschienenverteiler ist
> hört sich schonmal gut an
Ja, das tut es in der Tat. Aber wie wärs mit einem Isolanporzellator?
Das hört sich auch gut an ;-)

von Karl H. (kbuchegg)


Lesenswert?

Christian K...... schrieb:
> Ich will nur bestimmte eingänge sagen wir von 12 stück nur 4 raus suchen
> die ich eben jetzt für eine anwendung brauche , auf 4 ausgänge legen .
> Wenn ich für eine andere anwendung von den 12 eingänge nur 10 benutzen
> möchte ich diese 10 auf 10 ausgänge legen. Ich weiß zwar nicht was ein
> Kreuzschienenverteiler ist hört sich schonmal gut an

Ein Kreuzschienenverteiler ist ein Netzwerk aus zb bei dir 12 
waagrechten Linien und 12 senkrechten Linien. zb so


          |     |     |     |
0  -------#-----#-----#-----#---
          |     |     |     |
          |     |     |     |
1  -------#-----#-----#-----#---
          |     |     |     |
          |     |     |     |
2  -------#-----#-----#-----#---
          |     |     |     |
          |     |     |     |
3  -------#-----#-----#-----#---
          |     |     |     |
          |     |     |     |
          |     |     |     |

          A     B     C     D

Jede der Eingangsleitung 0 .. 3  hat eine potentielle Kreuzung mit jeder 
der Ausgangsleitungen A bis D. Stellt man an den Kreuzungspunkten # eine 
elektrische Verbindung her, kann man jeden beliebigen Eingang mit jedem 
beliebigen Ausgang wahlfrei verbinden.

von Grrrr (Gast)


Lesenswert?

Christian K...... schrieb:
> ALso falls ich mich unverständlich ausgedrück habe tut es mir leid.
Das braucht Dir nicht leid zu tun. Mach einfache Sätze. So einfach wie 
möglich. Subjekt-Prädikat-Objekt

von Grrrr (Gast)


Lesenswert?

Jetzt weiss ichs: K.-H. ist ganz bestimmt Erbe eines Baldrian-Imperiums.

von Karl H. (kbuchegg)


Lesenswert?

> dafür den einfachen befehl suche ich

Ja, das tun wir alle.
Und immer wieder kommen wir auf den Boden der Realität zurück, dass 
Raumschiff Enterprise noch in weiter Ferne ist. Unsere Computer 
verstehen 'Spiele Schach', 'Restrukturiere Schirmstabilität', 'Verändere 
Schutzschirm so, dass die bösen Klingonen nicht durchschiessen können' 
einfach noch nicht.

Darum besteht ein Programm auch nicht aus einfach nur einem Befehl
1
int main()
2
{
3
  play( "Chess" );
4
}

sondern aus einer Abfolge von vielen Tausend, manchmal auch Millionen 
Befehlen, die alle in der richtigen Reihenfolge sein müssen, damit sich 
das gewünschte Verhalten ergibt.

Aber dazu muss man in der Lage sein, das gewünschte Verhalten auch 
einwandfrei beschreiben zu können. Wenn du es einem mitdenkenden 
Menschen schon nicht beschreiben kannst, wird es schwierig das 
gewünschte Verhalten einer sturen, dämlichen Maschine beizubringen.

von Karl H. (kbuchegg)


Lesenswert?

> Es muss dafür keine signal abfrage oder ein schalter
> geschaltet werden ect..

Wie konfigurierst du dann, welche Leitung wohin durchgeschaltet werden 
soll?

von Grrrr (Gast)


Lesenswert?

"konfigurieren"? Ist das auch so ein Meta-Befehl? Duck-und-wech!

von Christian K. (Firma: ...........) (drlovejoy)


Angehängte Dateien:

Lesenswert?

X ist mein programm was ich schreiben will , und für je nach anwendung 
will ich einen eingang einen ausgang zuweisen . Alle eingangs signal vom 
Max3232 und Ft232 liegen dauerhaft an den eingangen vom Avr an.

Ich will einfach nur flexibel sein was meine ausgänge angeht .
Ich könnte auch draht brücken einlöten die ich für jede anwendung 
umändern bzw löten kann finde aber ein avr besser.

Ich suche jetzt für den Avr einen befehl das mein signal was am ersten 1 
eingang am avr liegt nur auf mein 1 ausgang vom avr gelegt wird. Das ist 
am ausgang das signal habe was ich am eingang angelegt habe.

Hoffe das ich jetzt einfach genug .

von Christian K. (Firma: ...........) (drlovejoy)


Lesenswert?

Ich könnte natürlich Jetzt auch ne S7 nehmen und sagen

Nw 1


U e1.0
= A4.0

Nw 2
U e1.1
= A4.1

Und so weiter denke aber das man das auch nur mit dem avr machen kann.

von Justus S. (jussa)


Lesenswert?

Christian K...... schrieb:
> Ich suche jetzt für den Avr einen befehl das mein signal was am ersten 1
> eingang am avr liegt nur auf mein 1 ausgang vom avr gelegt wird. Das ist
> am ausgang das signal habe was ich am eingang angelegt habe.

so einen Befehl gibt es direkt nicht..aber du musst doch nur in deinem 
Programm nacheinander alle Eingangspins abfragen und die Ausgänge 
dementsprechend schalten. Allerdings wirst du dir damit ein Delay 
zwischen Eingang und Ausgang einhandeln...

von Grrrr (Gast)


Lesenswert?

Christian K...... schrieb:
> Hoffe das ich jetzt einfach genug .
Warum nicht gleich so? Uns macht das auch keinen Spass Dir die Würmer 
aus der Nase zu ziehen.
Jedenfalls ist es nun gut genug, das es sinnvoll ist Dich auf die 
Beachtung von Gross- und Kleinschreibung hinzuweisen. An Deinem Satzbau 
kannst Du auch noch arbeiten.

Es ist offensichtlich das Du eine falsche Vorstellung von 
Mikrocontrollern oder SPS hast.
Man kann diesen beiden keinen "Befehl" geben, das sie fortan ein einem 
Eingang liegendes Signal und seine Änderungen unmittelbar an einen 
Ausgang übertragen. Sie arbeiten in einem "diskreten" Zeitrahmen. Das 
heisst: Sie reagieren (mit Ausnahme von Interrupts) nicht unmittelbar 
auf Änderungen. Mann muss sie vielmehr so programmieren, das sie in 
regelmäßigen Zeitabständen einen Eingang auf seinen Zustand prüfen und 
diesen an einen Ausgang übertragen. In diesem Sinne wäre eine Art 
Multiplexer oder auch Kreizmatrix zu realisieren. Allerdings hängt die 
Funktion stark davon ab, wie schnell sich die Eingangssignale ändern.

Eine Ausnahme sind wie schon erwähnt die INterrupts. Sie reagieren 
schneller auf Änderungen. Allerdings brauchen sie dafür auch Zeit und es 
kann immer nur eine Änderung auf einmal übertragen werden.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Alle eingangs signal vom Max3232 und Ft232 liegen
> dauerhaft an den eingangen vom Avr an.
Das Problem ist z.B. dass das TX-Signal die falsche Richtung hat.

Entweder ist RX ein Eingang, dann ist TX ein Ausgang.
Oder ist TX ein Eingang, dann ist RX ein Ausgang.
Niemals haben beide Signale die selbe Richtung.

von Christian K. (Firma: ...........) (drlovejoy)


Lesenswert?

Es war ja nur ein Beispiel.
Es geht ja nur da drum, das ich entweder mein Serial Anschluss an der 
Platine benutze, oder wenn ich an einen Rechner komme der kein hat muss 
ich ja mein usb Serial benutzen .Es werden auch nur die Tx und Rx 
jeweils benutzt, die restlichen Pins sind nur für später mal als 
Erweiterung da. Aber wenn ihr mir sagt das mit dem Signalen in den 
Interrupts nicht wirklich die Signale 1:1 wieder geben können und ich 
auch von älteren Microcontrollern diese Rx und Tx UART oder so Ähnlich 
dann muss ich mir da was anders einfallen lassen.

Trotzdem schon mal an alle danke Geduld

von Karl H. (kbuchegg)


Lesenswert?

Christian K...... schrieb:
> Es war ja nur ein Beispiel.
> Es geht ja nur da drum, das ich entweder mein Serial Anschluss an der
> Platine benutze, oder wenn ich an einen Rechner komme der kein hat muss
> ich ja mein usb Serial benutzen .Es werden auch nur die Tx und Rx
> jeweils benutzt, die restlichen Pins sind nur für später mal als
> Erweiterung da. Aber wenn ihr mir sagt das mit dem Signalen in den
> Interrupts nicht wirklich die Signale 1:1 wieder geben können und ich
> auch von älteren Microcontrollern diese Rx und Tx UART oder so Ähnlich
> dann muss ich mir da was anders einfallen lassen.

Der einfachste Fall ist:
Den Usb-Serial von der Platine schmeissen und einen USB-Seriel Adapter 
an das RS232 Kabel stecken. Treiber musst du ja sowieso dann 
installieren. Ob du jetzt ständig ein RS232 Kabel UND ein USB-Kabel mit 
dir rumschleppst ODER ein RS232 Kabel und den USB-RS232 Adapter ist auch 
schon egal.


Alternativ ist die nächst einfache Lösung:
  Eine Steckerleiste mit 2*4 Pins und 2 Jumper, die bei Bedarf
  umgesteckt werden. Anstelle der Jumper würde sich auch ein
  2*3 poliger Umschalter eignen.

Auch wenn man generell versucht möglichst viel in Software zu lösen, so 
gibt es doch Problemstellungen, die mit wenig Hardware am einfachsten 
und zuverlässigsten zu erschlagen sind.

von Grrrr (Gast)


Lesenswert?

Christian K...... schrieb:
> Es war ja nur ein Beispiel.

Na toll.

> Es geht ja nur da drum, das ich entweder mein Serial Anschluss an der
> Platine benutze, oder wenn ich an einen Rechner komme der kein hat muss
> ich ja mein usb Serial benutzen .
Dann nimm doch Jumper.

Christian K...... schrieb:
> Aber wenn ihr mir sagt das mit dem Signalen in den
> Interrupts nicht wirklich die Signale 1:1 wieder geben können

Evtl. ist eine Weiterleitung von seriellen Signalen bei niedrigen 
Datenraten trotzdem möglich. Wie ist die Baudrate?
Und was soll der uC ausserdem noch tun?

> ... ich auch von älteren Microcontrollern
> diese Rx und Tx UART oder so Ähnlich ...

Häh?

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

> Aber wenn ihr mir sagt das mit dem Signalen in den
> Interrupts nicht wirklich die Signale 1:1 wieder geben können

Natürlich kannst du in einem Controller derartiges machen (digitale 
Signale in ihrem zeitlichen Verlauf 1:1 durch einen Controller 
"hindurchleiten").  Es dauert blos halt "seine Zeit" (auch wenn in einer 
Iterrupt-Routine ein Zustand schnelelr übertragen werden kann)

wiederhole bis zum Sankt Nimmerlein:
  Lese EingangsPort E, Bit 1
  Schreibe Ausgangsport A, Bit 1

  Lese EingangsPort E, Bit 2
  Schreibe Ausgangsport A, Bit 2

....

Du wirst halt immer eine gewisse "Latenz-Zeit" in der Größenordnung von 
ein paar Milli- oder Mikro-Sekunden haben, und eine gewisse minimale 
Auflösung, unter der Änderungen am Eingang nicht mehr am Ausgang 
auftauchen (weil sie dann schon wieder am Eingang verschwunden sind, 
wenn die Einleseroutine da vorbei kommt)

Wie schon gesagt wurde, kannst du eine diskrete Schaltung eines 
"Kreuzschienenverteilers" aufbauen, basierend auf seperaten ICs. Und mit 
dem Controller könntest du dann konfigurieren, daß E1 --> A1 verbunden 
ist. Damit ist die "direkte" Durchschaltung der Signale möglich (wenn 
man mal von ein paar Nano-Sekunden absieht welche da an Lateznzzeit 
auftreten)

> und ich auch von älteren Microcontrollern diese Rx und Tx UART
> oder so Ähnlich

Diesen Satz verstehe ich nicht. Versuche dich doch einfach mal klarer 
auszudrücken, was du genau wissen oder aussagen möchtests.

> dann muss ich mir da was anders einfallen lassen.

jep, z.B. nochmal genau über dein Vorhanen und deine Anforderungen 
nachdenken ist wirklich nicht verkehrt.

von Christian K. (Firma: ...........) (drlovejoy)


Lesenswert?

Wäre auch eine Möglichkeit , sieht dann aber nicht so schick aus .
Okay wenn ich 2 Tx Signale an 2 Eingänge lege , und da ich ja nur bei 
einen 1 Signal bekommen kann , da ich ja nur Serial oder Usb anschließen 
werde.
Also Kann ich an einen von beiden Eingang auf eine  Status Änderung 
abfragen , also Sowas wie ein Hi Signal wenn einer von beiden Tx ein 
Signal bekommt , das dann 1 von 2 Ausgängen eine Spannung anliegt  kann 
womit ich dann einen Optokoppler Ansteuern kann. Und das man das dann so 
einstellt das einer immer  Master ist egal wenn ich Blödmann den Serial 
und usb anschließe .

von Karl H. (kbuchegg)


Lesenswert?

<Kauderwelsch>

Wie auch immer.
Ich bin auf jeden Fall jetzt raus. Das ist mir nämlich zu blöd, da 
jedesmal scheinbar unzusammenhängende Satzfragmente auf mögliche 
Sinnhaftigkeiten abzusuchen.

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

Dein Geschreibse wird immer wirrer ...

Mit software kann man (fast) alles machen. Die verwendeten logischen 
Gatter-Grundfunktionen (AND, OR etc) sind trivial.

Du mußt halt nur klar formulieren können, was wann welchen Zustand haben 
soll. Das kannst du in "Pseudo" Sprache formulieren, und dann in 
entsprecheden Assemler- oder C oder sonstewelche Programmiersprachen 
"übersetzen"

WENN Eingang E1 auf 1 ist
UND Eingang E2 auf 1 ist
   DANN setze Ausgang A1 auf 1

etc.

von Grrrr (Gast)


Lesenswert?

Mir wird das langsam auch zu bunt.
Bin dann weg.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.