Forum: Mikrocontroller und Digitale Elektronik brumbuch@freenet.de


von Michael B (Gast)


Angehängte Dateien:

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

von Bjoern M. (salival)


Lesenswert?

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

von Michael B (Gast)


Lesenswert?

Hallo,

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

mfg
Michael

von Wegstabenverbuchsler (Gast)


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.

von Michael B (Gast)


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

von Wegstabenverbuchsler (Gast)


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?

von Michael B. (michael123)


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

von Bjoern M. (salival)


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.

von Norbert (Gast)


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.

von Bjoern M. (salival)


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.

von Michael B. (michael123)


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

von Norbert (Gast)


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.

von Bjoern M. (salival)


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.

von Michael B. (michael123)


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

von Alex Trusk (Gast)


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.

von mmerten (Gast)


Lesenswert?

und das invertieren nicht vergessen ;)

von Michael B. (michael123)


Lesenswert?

Hallo,

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

mfg
Michael

von Profi (Gast)


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.

von Marko (Gast)


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

von Michael B. (michael123)


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

von Bjoern M. (salival)


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.

von Bjoern M. (salival)


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.

von Michael B. (michael123)


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

von Bjoern M. (salival)


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.

von Michael B. (michael123)


Lesenswert?

Hallo,

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

mfg
Michale

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.