Forum: Mikrocontroller und Digitale Elektronik Signalproblem


von H. T. (triti)


Lesenswert?

Hi,
ist wahrscheinlich ganz einfach wenn mans weiss, aber ich komme nicht 
drauf...:
Ich will mit dem COM vom PC mit nur 2 Leitungen auf einen MC gehen und 
vom PC mit BASIC an den MC Zahlen schicken.
Ich gebe also am PC eine Zahl ein (z.B. 1358). Die wandelt der ins 
binäre Format um: 10101001110
Das will ich über die 2 Leitungen schicken.
Ich kann dem MC sagen: So lange Leitung A ein high liefert, kommen die 
Daten. Wenn low, dann Ende - das ist noch kein Problem.

Dann schicke ich high/low Impulse über Leitungen B.
NUR: Wie sage ich dem MC, wann 1 und wann 0 ist?
Brauche ich da unbedingt eine dritte Leitung C oder gehts mit 2 auch?

(Die dritte Leitung wäre dann: Wenn C high ist UND B high, dann ist es 1 
und wenn C low und B high, dann 1)
Übrigens: Mein MC hat keinen Timer, ich kann da nichts mit Zeitschleifen 
machen. Es gibt nur den Befehl: x Millisekunden warten/pause.

lg
Triti

von MaWin (Gast)


Lesenswert?


von Frank B. (frank501)


Lesenswert?

Triturus Trit schrieb:
> Mein MC hat keinen Timer

Was für ein µC ist das denn, der ohne Timer daherkommt?


Wenn er eine serielle Schnittstelle hat, könntest Du die Daten über 
einen MAX232 oder ähnlich vom PC an den µC Schicken. Ansonsten würdest 
Du eine Takt und eine Datenleitung benötigen. Die Leitung A würdest Du 
dann nicht benötigen.

Frank

von Magnetus (Gast)


Lesenswert?

Masse nicht vergessen.

von H. T. (triti)


Lesenswert?

> Masse nicht vergessen.
Nein, vergesse ich nicht.

http://de.wikipedia.org/wiki/EIA-232
Da braucht man doch 3 Kabel? Und so wirklich schlau werde ich daraus 
auch nicht.
http://de.wikipedia.org/wiki/1-Wire
Wie das gehen soll verstehe ich nicht.

>Was für ein µC ist das denn, der ohne Timer daherkommt?
Das ist ein Picaxe-08.

lg
Triti

von holger (Gast)


Lesenswert?

>Das ist ein Picaxe-08.

Und tschüß;)

von Molchi (Gast)


Lesenswert?

Nun ist mal wieder dieses Forum dran.

Jaja der Bastelmolch.

MfG

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Triturus Trit schrieb:

> Ich will mit dem COM vom PC mit nur 2 Leitungen auf einen MC gehen und
> vom PC mit BASIC an den MC Zahlen schicken.
> ...
> Übrigens: Mein MC hat keinen Timer, ich kann da nichts mit Zeitschleifen
> machen. Es gibt nur den Befehl: x Millisekunden warten/pause.

Bei elektrischen Verbindungen müssen Sender und Empfänger mit mindestens 
zwei Leitungen Verbunden sein: Signalleitung und Rückleitung (GND). bzw. 
(+)-Signalleitung und (-)-Signalleitung. Es geht auch anders z.B. mit 
Lichtübertragung (IR, Laser...) und 0 elektrischen Leitungen.

Sender (PC) und Empfänger (PICAXE-08) müssen den Start eines 
Datenpaket kennen.

Bei RS232 ist das so gelöst: Der Sender legt im Leerlauf eine 1 auf 
die Leitung, d.h. die Leitung wird auf den 1 Spannungspegel gehoben. Zu 
Beginn eines Datenpakets wird zuerst eine 0 gesendet, d.h. 0 
Spannungspegel. Diese 0 bezeichnet man als Startbit.

Die Spannungspegel sind bei TTL und RS232 unterschiedlich. Zur Anpassung 
gibt es Pegelwandler wie MAX232.

Sender und Empfänger müssen die Dauer eines Bits kennen. Der Sender 
legt für die Bitdauer eine 1 oder eine 0 auf die Leitung und der 
Empfänger tastet immer wieder die Leitung ab.

Bei RS232 weiss der Benutzer die Dauer und konfiguiert beide 
entsprechend mit dem Parameter Baudrate.

Man kann das auch anders machen, wenn man eine dritte Leitung benutzt, 
die den Takt, d.h. die Bitgrenzen mitliefert.

Sender und Empfänger müssen die Anzahl der Bits für ein Datenpaket
kennen. 8 ist eine gängige Anzahl von Datenbits.

Sender und Empfänger können die Übertragung absichern. Dazu können ein 
Paritätsbit und Stoppbits gesendet werden.

Normalerweise werden diese Parameter alle bei der Konfiguration der UART 
eingestellt. Dein PICAXE-08 hat keine UART, d.h. du müsstest das in 
Software nachbilden.

Ein gute, d.h. erkennungssichere Abtastrate ist wenn ca. 3x oder öfter 
pro Bitdauer abgetastet wird.

Also herausfinden wie schnell dein µC die Abtastung in etwa machen kann. 
Dann Umrechnen welche Bitrate damit möglich wäre. Dann Umrechnen welche 
Baudrate beim Sender eingestellt werden könnte.

Bsp.:

Der PIXACE könnte alle 1ms abtasten, wenn alle für die Auswertung 
nötigen Befehle abgearbeitet werden. Dreifaches Sampling, wäre 3ms pro 
Bit. Also 1000ms/3ms = 333 Bits/s. Bits/s sind die Einheit Baud. Manche 
PCs lassen sich auf die langsamen 300 Baud einstellen. Damit könnte man 
es in diesem Beispiel versuchen.

Die Frage an dich ist jetzt: Wie schnell kann der PIXACE einen 
Eingangspin abtasten? Gibt das Handbuch dazu was her oder kannst du da 
messen?

von H. T. (triti)


Lesenswert?

Hi Stefan,

vielen Dank, absolut super erklärt!!

> Die Frage an dich ist jetzt: Wie schnell kann der PIXACE einen
> Eingangspin abtasten? Gibt das Handbuch dazu was her oder kannst du da
> messen?

Messen kann ich nichts, höchstens ausprobieren. Aber ein Spezialist hat 
dazu das geschrieben:
Laut Befehlsreferenz wird damit bei 4MHz Arbeitstakt des Controllers der 
Zustand des Pins alle 20µs abgefragt. Das heißt, das Signal darf maximal 
25 kHz haben. Und das nur bei einem Impuls-Pausen-Verhältnis von 1:1. 
Ein solches bekommt man aber nicht so einfach.

(Ich habe leider nur mehr 2 Eingänge am MC frei, geht also nicht mit 3 
Leitung. Also muss man etwas über die Zeit machen).
Aber es wird im Kopf schon heller. Ich werde nächste Woche ausprobieren 
wie lange das senden und empfangen dauert.

lg
Triti

von MaWin (Gast)


Lesenswert?

> http://de.wikipedia.org/wiki/EIA-232
> Da braucht man doch 3 Kabel?

Nur wenn man senden und empfangen will.

> Und so wirklich schlau werde ich daraus auch nicht.
> http://de.wikipedia.org/wiki/1-Wire
> Wie das gehen soll verstehe ich nicht.

Daher die Links auf die Artikel.
Du kannst sie lesen, in den Referenzen nachschlagen, und lernen.

Hier im Forum zu fragen bis du es verstanden hast,
dich aber zu weigern den angebotenen Links zu folgen
und sie erst mal so zu lesen und zu verstehen,
wie Millionen andere Leute vor dir auch,
bringt dich sicher nicht zu Ziel.

Das Verstehen nehmen dir andere nicht ab.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Triturus Trit schrieb:

> (Ich habe leider nur mehr 2 Eingänge am MC frei, geht also nicht mit 3
> Leitung. Also muss man etwas über die Zeit machen).

Würde ich nicht pauschal sagen. Die PC-GND ------ PICAXE-GND Rückleitung 
würdest du ja nicht bei den freien Pins mitrechnen.

Mit den beiden freien Pins am PICAXE kannst du entweder realisieren:

* RS232 TX (Senden) und RS232 RX (Empfangen)
  = Vollduplex

* was Infrarot-artiges mit TX und RX
  allerdings ist der Aufwand am PC nötig um RS232/LPT auf IR umzusetzen
  Kann man z.B. bei den Asuro-Leuten lernen

* was TWI/I2C-artiges mit SDA (Daten) und SCL (Clock)
  allerdings ist der Aufwand am PC nötig um RS232/LPT auf I2C umzusetzen
  PC-I2C Adapterprojekte im Netz gibt es.

oder wenn nur ein freier Pin vorhanden ist, kannst du halbduplex 
kommunizieren

* zeitgleich über einen Pin entweder RS232 TX (Senden) oder RS232 RX 
(Empfangen)

* mit was Infrarot-artigem mit zeitgleich entweder TX und RX
  allerdings ist der Aufwand am PC nötig um RS232/LPT auf I2C umzusetzen

* mit was 1-Wire-artigem
  allerdings ist der Aufwand am PC nötig um RS232/LPT auf 1-Wire
  umzusetzen. Die "echte" 1-Wire Kommunikation ist wahrscheinlich
  zu schnell, aber du kannst eine eigene langsamere Variante basteln.

Das ist noch nicht das Ende der Fahnenstange. Es gibt noch mehr 
Transfermöglichkeiten (Bussysteme).

Die optimale Variante hängt von den Anforderungen (Datenrate, 
Vollduplex/Halbduplex, Entfernung, ...) und dem Aufwand ab, den du 
betreiben willst/kannst (Adapter am PC möglich/nicht möglich...)

Mit RS232 würde ich anfangen - PC-seitig keine besonderen Anforderungen 
ausser einer RS232-Schnittstelle und die Leitungslänge darf schon ein 
paar Meter betragen.

Wenn RS232 steht, würde ich mit den gewonnenen Erfahrungen eine IR 
Übertragungsstrecke planen. Die PICAXE sind ja prädestiniert für mobile 
Geräte wie Roboter o.ä. und da wäre ein Infrarot-Datenlink ein 
nützliches Feature. Wenn nur Senden PC/PICAXE gewollt ist, würde ich 
mich dabei bei RC5-Projekten umsehen. Als Testsender kann dann auch eine 
RC5-Fernbedienung benutzt werden :)

von H. T. (triti)


Lesenswert?

Hi,
grauslich was es nicht alles gibt, was meinereiner (noch) nicht weiss.

> Mit RS232 würde ich anfangen - PC-seitig keine besonderen Anforderungen
> ausser einer RS232-Schnittstelle und die Leitungslänge darf schon ein
> paar Meter betragen.
Genau so etwas soll es sein. Werde mich in eine Höhle verkriechen und 
heftig denken.

Danke für die lange Antwort!
lg
Triti

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.