www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik brumbuch@freenet.de


Autor: Michael B (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin am verzweifeln!

Mein genaues vorhaben:
Ich möchte zwischen dem PC und einem µC (ATmega8) Daten übertragen und
zwar sind es digitale. Also nur ein und aus. Aber die Daten sollen nur
über eine Leitung vom PC zum µC geleitet werden. Es stehten mir
insgesammt 3 Leitungen zur verfügung. Ich dachte mir das so:
Eine Leitung für die Daten
Eine Leitung für den Takt in dem die Daten kommen.
Eine Leitung für das Signal das nun Daten kommen.
(Habe rausgefunden das man es mit SPI hinbekommen kann aber wie genau
weiß ich nicht)

Aber wenn ich das nun so wie ich es meine in VisualBasic (für den PC)
Programmiere und so wie ich mein in Bascom (für den µC) programmiere
funtzt da nichts.
Habe das ganze auch schon über LCD geschaut was der µC genau macht der
macht das annäherungsweise was er soll. Und was der PC macht habe ich
über einen anderen PC den ich so geschatltet habe, das er die Daten die
der eine Sendet empfängt und es müsste alles funtzen.

Nun meine Frage an euch:
Gibt es schon jdemanden, der das ganze verwirklicht hat und mir die zu
Hilfe oder den Code zur verfügung stellen kann?
Oder gibt es unter euch jemanden der das ganze auch machen möchte mit
dem ich das ganze zusammen lösen kann?

Das ganz soll über die RS232 schnittstelle laufen.

mfg
Michael

PS: Im Dateianhang meine CODS für VB und den µC in Bascom. Das VB
Programm läuft nur richtig wenn auch der µC richtig angschlossen und
prgrammiert ist. Die zwei VB Moduele müssen nach C: kopiert werden

Autor: Bjoern M. (salival)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dumme Frage: Warum die Daten nicht gleich ueber die serielle
Schnittschnelle senden und mit UART am mc empfangen?

Autor: Michael B (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

weil ich die daten dann weiter an andere µC schicken möchte.

mfg
Michael

Autor: Wegstabenverbuchsler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielleicht erstmal die Gedanken sortieren, was geht und was nicht geht.
Dann drüber nachdenken was die Ursache des Nicht-gehens sein könnte.

Autor: Michael B (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich weis ja das es gehen muss aber wie das weiß ich noch nicht sonst
würde ich ja auch nicht um hilfe suchen.

mfg
Michael

Autor: Wegstabenverbuchsler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"ich weis ja das es gehen muss aber wie das weiß ich noch nicht"

Ich weiß auch das es Raumschiffe geben wird die zum MArs fliegen, aber
noch nicht wie.


Halt erst mal scharf nachdenken: Was hast du, was fehlt, und wieso
fehlt es?

Autor: Michael Brambach (michael123)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich glaube du hast auch keine ahnung. Wenn du eine hättest wüdest du
mal über den CODE den ich im ersten beitrag geschrieben habe mal
schauen ob der richtig ist oder ob da ein gedanken fheler von mir drin
ist!!!

mfg
Michael

Autor: Bjoern M. (salival)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, der "normale" Weg waere:
                        |-> mc
PC --uart-> mc --SPI/I2C--> mc
                        |-> mc

Aber wenn du es unbedingt auf deine Art loesen willst, kann ich, da ich
weder VB, noch Bascom kann, leider nicht konkret weiterhelfen.
Ein Speicheroszi/Logikanalyser waere sicher zur Entwicklung deines
Protokolls hilfreich. Evtl den Takt runterschrauben, LEDs an die
Leitungen und an den mc und "von Hand" gucken, wo es hakt.
Einen Schnittstellenbaustein (zb 2x MAX232, da 3 Leitungen) zwischen PC
und mc hast du eingebaut? Wie ist er beschaltet?

gruss, bjoern.

Autor: Norbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na na bevor du hier irgendwelche Rundumschläge verteilst, einmal kurz
nachdenken.

Natürlich kann man auf diese Weise Daten übertragen, so wie du es
beschreibst (SPI). Allerdings hat der PC keine SPI Schnittstelle,
sondern nur eine RS232 Schnittstelle. Beide(SPI, RS232) sind zwar
seriell, die eine aber synchron und die andere asynchron. Du müsstest
also zwischen PC und einem MIcrocontroller über RS232 kommunizieren.
Alle weiteren Microcontroller kannst du dann ja, wenn du möchtest, über
SPI verbinden.

Autor: Bjoern M. (salival)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"ich glaube du hast auch keine ahnung. Wenn du eine hättest wüdest du
mal über den CODE den ich im ersten beitrag geschrieben habe mal
schauen ob der richtig ist oder ob da ein gedanken fheler von mir drin
ist!!!"

Und ich glaube, du erwartest recht viel fuer dein Geld.

Autor: Michael Brambach (michael123)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

@ salival: sorry für den barschen ton. aber mir kam es so vor als
hättest du echt keine ahnung aber davon eine ganze menge. SORRY

Der µC hängt an der RS232 Schnitstelle direkt dran aber mit 10 KOHM
wiederständen.

Es kommen ja daten an am µC. Aber das timing sitmmt noch nicht ganz.
Ich kann entweder alles auf ja oder alles auf nein senden aber mal drei
ja und 5 nein gehen noch nicht.

mfg
Michael

Autor: Norbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was bedeutet der Microcontroller hängt direkt an der RS232
Schnittstelle? Du weißt aber, dass du noch einen Pegelwandler
zwischenschalten musst?!

Ansonsten würde ich sagen, stimmt deine Baudrate noch nicht ganz.

Autor: Bjoern M. (salival)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"@ salival: sorry für den barschen ton. aber mir kam es so vor als
hättest du echt keine ahnung aber davon eine ganze menge. SORRY"

Entschuldige dich nicht bei mir sondern bei Wegstabenverbuchsler...

"Der µC hängt an der RS232 Schnitstelle direkt dran aber mit 10 KOHM
wiederständen."

Das koennte der Fehler sein. RS232 verwendet andere Pegel, als es der
mc erwartet. Glaube irgendwas mit +-12V? Sollte rauszufinden sein. Der
mc will 0-5V. Das heisst da muss noch ein Schnittstellenbaustein
dazwischen. MAX232 hat 2mal PC->mc und 2mal mc->PC. Da du aber 3mal
PC-mc brauchst, muesstet Du entweder 2 davon verwenden, oder nach
anderen Bausteinen ausschau halten, die haben, was du brauchst.

Beschaltung fuer normale Kommunikation per UART findest du im Tutorial
oben links auf dieser Seite.

gruss, bjoern.

Autor: Michael Brambach (michael123)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin kurtz vor des rätsel lösung :-)))))))) !!!
muss glaube ich nur noch ein wort und eine zahl in meine code einfügen
und es müsste gehen.

mfg
Michael

PS: den Code stelle ich euch als erstes zur verfügung

Autor: Alex Trusk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn man nur vom pc zum controller sendet, braucht man nicht zwingend
einen pegelwandler. strom begrenzen und den rest erledigen die internen
schutzdioden.
auch viele pc-schnittstellen kommen mit logikpegel klar. verlassen
sollte man sich allerdings nicht drauf.

Autor: mmerten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und das invertieren nicht vergessen ;)

Autor: Michael Brambach (michael123)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ist doch noch mehr programmierarbeit als ich dachte. Ich werde morgen
weiter programmieren.

mfg
Michael

Autor: Profi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du musst das Signal vom PC invertieren!
Normaler RS232-Pegel ist -12V, das entspricht High-Signal am µC, +12V
ist Low-Signal.

Manche µC haben ein Polarity-Bit, mit dem man Ein- und Ausgang
invertieren kann.

Autor: Marko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mensch Junge, mach Dir doch nicht das Leben umständlicher
als muß.
Nimm die UART und bau dir n RS485 Netzwerk zusammen,
dann kannste X µC und Deinen PC an eine Zweidrahtleitung hängen

Autor: Michael Brambach (michael123)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ok ok ich sehe es ein. Ich wollte mit dem Kopf durch die Wand. Ich weiß
ja das es mit Uart einfacher geht. Aber wie geh ich dann weiter? Vom µC
zum nächtsen µC?
Was Marko da schrieb kann ich mir vorstellen aber wie soll ich nun das
in die Realität umsetzen?

Gibt es dazu schon konzept oder gar cods die ich verwenden kann?

mfg
ein an der Verzweiflung nahender Michael

Autor: Bjoern M. (salival)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einsicht ist schonmal der erste Schritt. Also ich wuerde, wie oben schon
mehrfach geschrieben wurde, vom PC zum mc UART verwenden und dann mit
SPI oder I2C alle anderen controller ansprechen. Sollte doch mit Bascom
kein Problem sein. Das hat doch saemtliche Routinen schon eingebaut?

gruss, bjoern.

Autor: Bjoern M. (salival)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja, vielleicht schreibst Du mal, was genau Du vorhast. So
Beschreibungen wie "weil ich die daten dann weiter an andere µC
schicken möchte." sind doch recht vage.

Autor: Michael Brambach (michael123)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ok ich möchte kleine Pakete von ca 8 bit auf einen µC vom PC aus
leiten. Der erste µC interessiert sich nur für die ersten zwei Pakete
die nächten gibt er eins zu eins weiter. Der zweit nimmt sagen wir drei
pakete und schickt den rest auch 1:1 weiter. Ich möchte dann die Pakete
in denen ja 8 bit drin sind dann zu einem PWM signal umwandeln und
damit motoren/lampen ect. steuren.

Ich hoffe ich habe damit euch schon mehr geholfen.

mfg
Michael

Autor: Bjoern M. (salival)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das klingt doch stark nach Hausbus. Vielleicht solltest Du dich mal im
gleichnamigen Forum hier ein bisschen einlesen. Dort wurden
verschiedenste Bussysteme schon ausgiebig durchgekaut.

Autor: Michael Brambach (michael123)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ok danke für den Tipp habe nun lesestoff für ein paar Stunden.

mfg
Michale

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.