mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART STK500


Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Philipp Burch (philipp_burch)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: The Daz (Gast)
Datum:

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

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Jojo S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Slowflyer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Slowflyer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm... da war jemand schneller

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Yep, hab ich......

Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.....

Autor: Miszou M. (mize)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Alexander Nik (koljan)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

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.