Forum: Mikrocontroller und Digitale Elektronik UART STK500


von Stefan (Gast)


Lesenswert?

Hallo,

ich will an meinen Mikrocontroller auf dem STK500 eine dezimale 1 oder
0 schicken. Dazu verwende ich den PC und ein Terminal-Programm, welches
über eine RS232-Schnittstelle mit dem STK500 verbunden ist.

Wie kann ich kontrollieren ob diese Daten auch wirklich an dem RX Pin
auf dem STK500 ankommen?

Gruß

von Philipp B. (philipp_burch)


Lesenswert?

Nunja, entweder mit dem angeschlossenen Controller oder einem Oszi.
Allerdings wirst du mit dem Oszi nicht erkennen können, was wirklich
ankommt, nur ob etwas ankommt (Es sei denn hast ein DSO und kannst es
entsprechend triggern).

von The Daz (Gast)


Lesenswert?

Ich wuerde den uC im STK so programmieren, dass er das empfangene Datum
ueber die LEDs ausgibt.

von Steffen (Gast)


Lesenswert?

Hallo,

gibt doch viele Möglichkeiten.

-- die Daten vom Mikrocontroller wieder zurück schicken (=> ECHO)
-- auf LCD anzeigen lassen (falls vorhanden)
-- Empfangsregister mit ensprechenden Referenzwert vergleichen
   und dann Port setzen (z.B. LED)
-- oder einfach messen, z.B. Speicheroszi (wahrscheinlich nicht
   vorhanden)

usw.

Gruß

von Stefan (Gast)


Lesenswert?

Hi,

zum testen habe ich ein Programm geschrieben welches die empfangenen
Daten (1 oder 0) an die LED's ausgibt(an bzw. ausschaltet).

Doch das hat nicht funktioniert. Jetzt habe ich gerade mit nem Osc. den
RXD Pin auf dem STK500 gegen Masse gemessen, um zu schauen ob dort
überhaupt etwas ankommt. Doch dort liegt die ganze Zeit ein Pegel von
5V an. Im Maual des STK500 ist zwar irgendwie beschrieben, das ein 5V
Converter zwischen dem RS232(SPARE) und den TXD/RXD Pins sitzt, aber so
ganz kapier ich das nicht.

Wenn ich direkt am Kabel Messe passt das Signal.... Warum kommt das da
nicht so an? Muss ich irgendwas am Board umstellen? Jumper?

Gruß

von Jojo S. (Gast)


Lesenswert?

hast du denn auch die RS232 Spare mit einem 2pol. Kabel an den richtigen
Port deines Controllers angeschlossen? Für einen Mega16/32 z.B. muss das
Kabel RXD an PD0 und TXT an PD1 verbunden werden.
Der Pegelwandler ist nötig weil die RS232 ja nicht mit den Spannungen
arbeitet die der Controller verträgt.

von Slowflyer (Gast)


Lesenswert?

Da sitzt in der Tat ein Max202. Hast du die Rx und Tx von der
Spare-Schnittstelle an die RxTx Pins des Mikrocontrollers
angeschlossen?

von Slowflyer (Gast)


Lesenswert?

hmm... da war jemand schneller

von Stefan (Gast)


Lesenswert?

Yep, hab ich......

von chris (Gast)


Lesenswert?

hi, ich würde versuchen erst was von uC zum PC zu schicken,
wenn das geht ists vielleicht einfacher, da man sich sicher ist das
wenigstes etwas funktioniert (z.b. der richtige Takt im STK 500
verwendet wird, da kann man ja zwischen internem Takt des uC und
externen Takt vom Board usw. wählen .....

chris

von Stefan (Gast)


Angehängte Dateien:

Lesenswert?

Sind auch die richtigen Pins, hab ich noch mal im Datenblatt
nachgeschaut.

Vielleicht liegt es aber auch an meinem Programm....

Hab es mal angehängt.....

von Miszou M. (mize)


Lesenswert?

Hi

#define UBRR ((FOSC/16*(BAUD))-1)
muss heißen
#define UBRR ((FOSC / (BAUD * 16L)) - 1)
oder
#define UBRR (FOSC / ( 16L*BAUD) - 1)

UCSR0C = (1<<USBS0) | (3<<UCSZ00);
Muss ins
UCSRC = (1<<URSEL)| (1<<USBS) | (3<<UCSZ0);
Geändert werden, wegen der URSEL siehe dein Datenblatt zum Controller
Ich hoffe des steht bei allen so drinnen.

Nach dem
if (UCSR0A & (1 << RXC0)) {
solltest du die empfangenen Daten auch mal an den buffer geben.
buffer = UDR;

Deine Registernamen solltest du wieder anpassen.

Gruß MISZOU

von Stefan (Gast)


Lesenswert?

Hi MISZOU,

du bist der beste! Vielen Dank! Jetzt funktioniert alles! Hab schon
echt verzweifelt!

Vielen vielen Dank euch allen für die Hilfe.....!!!

Gruß

von Alexander N. (koljan)


Angehängte Dateien:

Lesenswert?

hallo,leute
ich möchte euch alle begrüßen als Neuankommende ;) verzweifelt habe ich
ältere Einträge durchgesucht nach der Beschreibung meines
Stefans-ähnlichen Problem.Ich benutze auch stk500 mit atmega8515 und
programmiere mittels Assembler in Avr studio. Es funktioniert alles bis
auf UART/receive/transmit Sache.Ich kann es nicht die "rs232 spare"
zum  receive/transmit bringen :(  Ich benutze nullmodem kabel um pc mit
stk500 zu verbinden,auch "serial port terminal" programm,das mir
erlaubt "connect the port" und binären code zu schicken, es kommt
auch etwas an der rs232sp. an. Ich hab auch die Rx und Tx von der
Spare-Schnittstelle an die RxTx Pins des Mikrocontrollers
angeschlossen. Kann es vielleicht an der Einstellung der Avr studio
liegen oder an Assebler code?
Ich werd euch sehr dankbar wenn jemand die Zeit opfert,um die Fehler zu
finden und darauf zu deuten
code als Dateianhang,mfg danke

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.