Forum: Mikrocontroller und Digitale Elektronik AVR - Nur Schwachsinn über UART. Liegts am Platinenlayout


von Daniel S. (daniel_s53)


Angehängte Dateien:

Lesenswert?

Hi,
ich hab hier einen Atmega8 auf dem ich ein ganz einfach Programm 
gespielt habe.
Es wird beim Start ein "Hello World" per UART geschickt und dann jede 
Sekunde ein "a".

Nun stecke ich den AVR in mein STK500 und das ganze per 
USB<->RS232-Adapter an den Laptop.

Im Terminal empfange ich nun die Zeichen so wie sie sein sollen.

Nun steck ich den AVR in meine selbst erstelle Platine. Im Bild seht ihr 
den Teil mit der Schnittsetelle.

Nun erhalte ich folgendes im Terminal:
1
TOF\0x8b\0xaaz\0xba\0xbf=;\0x81\0xe5\0xeb=\0xe5\0xeb\0x00
2
Oy=
3
Oy=
4
Oy=
5
Oy=
6
Oy=
7
Oy=

Jetzt frag ich mich natürlich warum?
Kann das an der Signalleitung liegen, die unter dem Elko durch geht?

Danke für eure Hilfe.

Gruß,
Daniel

von Sven B. (scummos)


Lesenswert?

Richtige Baudrate eingestellt?

von g457 (Gast)


Lesenswert?

> Nun erhalte ich folgendes im Terminal:

Sieht mir mehr nach einem Baudratenproblem aus. Wo kommt denn der Takt 
her?

von Daniel S. (daniel_s53)


Lesenswert?

Hi,
der AVR läuft mi einem 16MHz Quarz.
Ich habe daher zum testen mal 2400 Baud genommen. Ist das höchst 
mögliche mit 0% Fehlerrate. Aber auch andere funktionierern nicht.

Gruß,
Daniel

von Sven B. (scummos)


Lesenswert?

Das 2400 Baud geht also, oder was? Dann hast du wahrscheinlich für die 
höheren Baudraten am Computer die Geschwindigkeit nicht umgestellt, oder 
am Controller. Du musst bei beidem von Hand dieselbe Baudrate 
einstellen.

von Mike (Gast)


Lesenswert?

Daniel S. schrieb:
> Kann das an der Signalleitung liegen, die unter dem Elko durch geht?

Die Leitung sieht nicht so aus, als ob da hunderte von Ampere als 
gepulster Strom durchgehen. Daran wirds also nicht liegen.

Die Frage ist, was IC1 für ein Baustein ist. Kommen da RS232-Pegel und 
RS232-Signalpolaritäten raus, oder ist das ein 5V-Signal direkt vom 
UART. In letzerem Fall stimmt die Polarität nicht und du hast Glück, 
dass der PC da überhaupt was empfängt. Schon ein Schaltplan könnte 
solche Fragen beantworten (incl. Verdrahtung zum PC).

von Daniel S. (daniel_s53)


Lesenswert?

Nein nein :D.
Es geht auch bei 2400 nicht.
Egal welche Baud ich nehme (An beiden Seiten das gleiche eingestellt) 
geht es nicht.

Gruß,
Daniel

von foo (Gast)


Lesenswert?

Daniel S. schrieb:
> Nun steck ich den AVR in meine selbst erstelle Platine.

Sind da auch die invertierenden Schnittstellentreiber drauf?

von Sven B. (scummos)


Lesenswert?

Hast du ein Oszi? Dann wäre jetzt der Zeitpunkt, es einzusetzen ;)

von Daniel S. (daniel_s53)


Lesenswert?

Ich gehe vom AVR über ein Nullmodemkabel direkt auf den Adapter.

Hab hier aber auch noch einen Raspberry an dem die Platine eigentlich 
ran soll. Dort habe ich noch einen MAX232 dazwischen.


Gruß,
Daniel

von spess53 (Gast)


Lesenswert?

Hi

Läuft der AVR überhaupt mit dem angesagten Takt? Fuse und Jumper auf dem 
STK500 korrekt?

MfG Spess

von Georg (Gast)


Lesenswert?

Daniel S. schrieb:
> Ich gehe vom AVR über ein Nullmodemkabel direkt auf den Adapter.

Dann kann ein RS232C-Adapter nichts sinnvolles empfangen. Das ist noch 
offensichtlicher als offensichtlich...

Georg

von Daniel S. (daniel_s53)


Lesenswert?

spess53 schrieb:
> Hi
>
> Läuft der AVR überhaupt mit dem angesagten Takt? Fuse und Jumper auf dem
> STK500 korrekt?
>
> MfG Spess


Hi,
im Programm sind 16MHz gestezt.
Die Fuses stehen auf
1
lfuse: 0xFF
2
hfuse: 0xD9

Und die Jumper auf dem STK500 sollten auch passen.
1
XTAL1 : gesteckt
2
OSCSEL: auf 3&2
Das bedeutet laut Anleitung On-board crystal signal connected.

Gruß,
Daniel

von Mike (Gast)


Lesenswert?

>> Ich gehe vom AVR über ein Nullmodemkabel direkt auf den Adapter.

Dann muss aber noch ein Pegelwandler, zumindest ein Inverter rein! Schau 
Dir mal die Spezifikation der RS-232-Schnittstelle an! Ocer hast Du am 
AVR die Polarität per Software umgedreht?

von Detlef K. (adenin)


Lesenswert?

Und was ist das für ein RS232-Chip (wenn überhaupt)?
Wieder mal "Ich sehe was, was Du nicht siehst" angesagt?
Kein Schaltplan und nur einen winzigen Ausschnitt der Platine.

: Bearbeitet durch User
von UART (Gast)


Lesenswert?

Das ist sehr wahrscheinlich eine Frage der Pegel.

Wenn du Notebook und AVR direkt verbinden möchtest das musst du einen 
USB--> UART Wandler einsetzen. Der USB -> RS232 Wandler erwartet RS232 
Pegel die der AVR nicht ausgibt.

Dies ist aber alles schon in den letzten Beträgen erwähnt worden.

Wenn der USB -> RS232 Wandler genommen werden soll, dann muß noch ein 
MAX232 dazwischen.

von Axelr. (Gast)


Lesenswert?

Dann versuch wenigstens, dein Signal, was aus dem AVR raukommt und an 
die Sub-D Buchse/Stecker an den PIN3 geht, zu invertieren.
Zum Test kannst du ja mal eine Softuart nehmen, bei der das per Option 
zu aktivieren geht. Mit Bascom geht das einfach. Auch mit der 
Demo-Version.
Daran liegt es. Beim STK-Board ist ein Pegelwandler mit drauf 
(RS232-Spare). Bei deinem Board fehlt dieser schlicht. Du kannst auch 
einen Transistor zwischenschalten. Musst dann den Leiterzug auftrennen 
und basteln...

von Marvin (Gast)


Lesenswert?

Hi,

Du benutzt ein STK500 ?

Warum benutzt Du nicht den RS232Spare ?
Einfach von PD0/PD1 nach RS232 Spare RXD / TXD.

Und kein Nullmodem-äKabel.

Wobei ich auf falschen Takt tippe....ist ja schön, dass Du den Crystal 
gesteckt hast und das STK500 richtig gejumpert und im Source Code F_CPU 
richtig definiert hast....
Das heisst noch lange nicht, dass Dein ATmega richtig taktet.

Clock Fuses stehen richtig ?

Gruß Marvin

von Joachim B. (jar)


Lesenswert?

spess53 schrieb:
> Läuft der AVR überhaupt mit dem angesagten Takt?

Mike schrieb:
> Dann muss aber noch ein Pegelwandler, zumindest ein Inverter rein! Schau
> Dir mal die Spezifikation der RS-232-Schnittstelle an! Ocer hast Du am
> AVR die Polarität per Software umgedreht?

UART schrieb:
> Das ist sehr wahrscheinlich eine Frage der Pegel.

Marvin schrieb:
> Wobei ich auf falschen Takt tippe....

ich tippe Mike hats als einzig richtig erkannt,

die Pins TxD und Rxd lassen auf einem Atmel ATmega8/88/48/168/328 
schliessen, der Pegelwandler Inverter fehlt.

Da wundert mich das Verhalten nicht.

von Georg (Gast)


Lesenswert?

Joachim B. schrieb:
> ich tippe Mike hats als einzig richtig erkannt

Da tippst du aber kräftig daneben, es gab schon 8 oder 10 Hinweise auf 
fehlende Pegelwandlung und Invertierung. Das scheint den TO aber nicht 
zu interessieren. So gesehen sollte man seine eigentliche Frage "liegts 
am Platinenlayout" nur einfach mit Ja beantworten.

Georg

von Daniel (Gast)


Lesenswert?

Hi,
Ich habe schon zur Kenntnis genommen.
Ich dachte, und da hab ich wohl was falsch verstanden, das man den 
Pegelwandler braucht, weil der AVR zb mit 5v läuft aber die serielle 
Schnittstelle mit 12v. Dann hab ich mir gedacht, okay mein avr läuft mit 
5v und USB auch mit 5v. Sollte also passen. Das war wohl schlicht und 
ergreifend ein Verständnisproblem.

Danke für eure Hilfe,
Daniel

von Udo S. (urschmitt)


Lesenswert?

Daniel schrieb:
> ein Verständnisproblem.

Eher ein Wissensproblem, kannst du ja verbessern :-).

Daniel schrieb:
> Dann hab ich mir gedacht

Nicht denken, sondern nachlesen.
Zum Beispiel hier:
http://de.wikipedia.org/wiki/RS-232

: Bearbeitet durch User
von michael_ (Gast)


Lesenswert?


von Joachim B. (jar)


Lesenswert?

Georg schrieb:
> Da tippst du aber kräftig daneben,

OK foo hats auch geschrieben

foo schrieb:
> Sind da auch die invertierenden Schnittstellentreiber drauf?

aber sich den Plan nie angeschaut !

du nur drum rum geredet

Georg schrieb:
> Dann kann ein RS232C-Adapter nichts sinnvolles empfangen. Das ist noch
> offensichtlicher als offensichtlich...

:p

invertierend vor Pegelwandler ist das besondere Stichwort

hätte foo sich das angesehen hätte er diese Frage nicht stellen müssen

: Bearbeitet durch User
von foo (Gast)


Lesenswert?

Joachim B. schrieb:
> foo schrieb:
>> Sind da auch die invertierenden Schnittstellentreiber drauf?
>
> aber sich den Plan nie angeschaut !

Welchen Plan denn?
Ich sehe bis jetzt keinen.

von Joachim B. (jar)


Lesenswert?

foo schrieb:
> Welchen Plan denn?
> Ich sehe bis jetzt keinen.

Beitrag #1

die 2 Bauteile AVR und D-Sub 9 kann ich auch aus dem Layout im Kopf 
zusammensetzen, wer da einen Plan braucht.........

http://www.mikrocontroller.net/attachment/235574/avr.png

: Bearbeitet durch User
von foo (Gast)


Lesenswert?

Joachim B. schrieb:
> die 2 Bauteile AVR und D-Sub 9 kann ich auch aus dem Layout im Kopf
> zusammensetzen, wer da einen Plan braucht

Wenn du nur einen AVR kennst, und weisst das genau, daß der da steckt, 
mag das stimmen.
Ich schau mir solche Bildchen ohne den zugehörigen Schaltplan gar nicht 
erst an.

von Mike (Gast)


Lesenswert?

Joachim B. schrieb:
> foo schrieb:
>> Welchen Plan denn?
>> Ich sehe bis jetzt keinen.
>
> Beitrag #1

Mike schrieb:
> Die Frage ist, was IC1 für ein Baustein ist.

Es hat nicht jeder Lust, erstmal das große IC-Ratespiel zu starten, um 
durch Reverse Engineering auf den Schaltplan zu schließen.

von Joachim B. (jar)


Lesenswert?

foo schrieb:
> Wenn du nur einen AVR kennst, und weisst das genau, daß der da steckt,
> mag das stimmen.

Mike schrieb:
> Es hat nicht jeder Lust, erstmal das große IC-Ratespiel zu starten,

Das IC wurde sogar genannt ATmega8 (ich habs auch überlesen)

also ein großes Ratespiel war das nicht.

Daniel S. schrieb:
> ich hab hier einen Atmega8

foo schrieb:
> Ich schau mir solche Bildchen ohne den zugehörigen Schaltplan gar nicht
> erst an.

da bin ich normalerweise bei dir, hier hats mich mal gereizt genauer 
hinzuschauen......

: Bearbeitet durch User
von uwe (Gast)


Lesenswert?

> Es hat nicht jeder Lust, erstmal das große IC-Ratespiel zu starten,
>>Das IC wurde sogar genannt ATmega8 (ich habs auch überlesen)
Also ich hab gedacht, daß das IC, welches im Bild zu sehen ist der 
Pegelwandler ist und der AVR außerhalb des Bildes ist. Da ich natürlich 
nicht wußte welcher Pegelwandler es ist hat das Bild Absolut NULL 
Informationsgehalt.

von Joachim B. (jar)


Lesenswert?

uwe schrieb:
> Also ich hab gedacht, daß das IC, welches im Bild zu sehen ist der
> Pegelwandler ist und der AVR außerhalb des Bildes ist. Da ich natürlich
> nicht wußte welcher Pegelwandler es ist hat das Bild Absolut NULL
> Informationsgehalt.

und ist das schlimm ?

hier sind doch einige Experten die auf den ersten Blick sehen was ich 
nicht sehe, das grämt mich nicht. Wenn ich nix sehe UND es für mich 
uninteressant scheint dann bin ich still.

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.