Forum: Mikrocontroller und Digitale Elektronik SIO beim STK200 (terminal-funtion) - PROBLEM


von Falk W. (Gast)


Lesenswert?

hallo,

ich möchte an meinem STK200 über die serielle schnittstelle eine 
zeichenkette senden, die ich dann an einem anderen gerät (pc, hyper 
terminal) empfange und umgekehrt emfangene zeichen anschließend als echo 
zurückschicken.

hier die daten der verbindung:
baud: 9k6
bits: 8
parität: keine
stopbits: 1
protokoll: hardware
verbindung: nullmodemkabel (rs232-subd-9pol)

und hier das problem: es tut sich nichts

frage: woran kann das liegen?

und hier der sourcecode:
; Testet die Serielle Schnittstelle
;
; Sendet auf der Schnittstelle mit 9k6 8N1 einen
; Text und echot dann eingehende Zeichen zurück.
;
; Hardware: Verbindung zwischen Schnittstellen
; Win-Ansteuerung: mit HyperTerminal (siehe Anleitung)
;
.NOLIST
.INCLUDE "8515def.inc"
.LIST
;
; Konstanten
;
.EQU  fq=4000000 ; Quarzfrequenz
.EQU  baud=9600 ; Baudrate
.EQU  bdteiler=(fq/(16*baud))-1 ; Baud-Teiler
;
; Register
;
.DEF  mpr=R16 ; Universalregister
.DEF  nc=R17 ; Zähler
.DEF  c=R18 ; Zeichen
;
;Reset-/Interrupt-Vektoren
  RJMP  main
;
main:  LDI  mpr,bdteiler ; Baudgenerator
  OUT  UBRR,mpr ; Teiler setzen
  LDI  mpr,0b00011000 ; Enable TX und RX
  OUT  UCR,mpr ; an UART Control Register
;
; Sende alle Grossbuchstaben
;
  LDI  c,'A' ; erster Buchstabe
  LDI  nc,90-65+1 ; Anzahl Buchstaben
tloop:  SBIS  USR,UDRE ; Springe, wenn Senderegister leer
  RJMP  tloop ; Warte noch ein Weilchen
  OUT  UDR,c ; Buchstabe an Senderegister übergeben
  INC  c ; nächster Buchstabe
  DEC  nc ; Zähler Anzahl Buchstaben zu senden abwärts
  BRNE  tloop ; nächster Buchstabe
;
; Warte bis Zeichen empfangen, Echo zurück, für immer
;
rloop:  SBIS  USR,RXC ; Teste RXC-bit auf vorliegendes Zeichen
  RJMP  rloop ; Kein Zeichen vorhanden, warte
  IN  c,UDR ; Hole Zeichen vom UART ab
rwait:  SBIS  USR,UDRE ; Warte bis Sender bereit
  RJMP  rwait ; Sender noch nicht frei
  OUT  UDR,c ; Sende Zeichen aus
  CPI  c,0x0D ; Return-Zeichen?
  BRNE  rloop ; Kein Return, einfach weiter
  LDI  c,0x0A ; Lade Linefeed
  RJMP  rwait ; Sende noch Linefeed hinterher

von Falk W. (Gast)


Lesenswert?

Merke: immer erst dieses dongle entfernen ;-)

naja, jetzt wird auf jeden fall schonmal was übertragen aber die 26 
zeichen (a-z) werden nicht so übertragen wie es sein sollte und 
anschließend gibt das ein dauer-echo obwol ich nichts übertrage (und für 
störungen ist das zu periodisch).

hier mal das protokoll:

_¯^W×®®«k+ë 
Öþ¬Õµ•uU5õªjª5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ
5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ 
5-õ5-õ5-
õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5- 
õ5-õ5-õ5
-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5 
-õ5-õ5-õ
5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5-õ5

die ascii-zeichen werden hier wohl anders interpretiert, aber man kann 
erkennen das die a-z nicht gleichmäßig verändert sind (bei wiederholung 
aber das gleiche bild geben) und das echo ist auch zu sehen.

von W.Meyer (Gast)


Lesenswert?

Hi.

In der Beschreibung zu meinem STK300-Board steht fogendes.
A standard (straight-throug) lead is required, NOT a null-modem
cable. Auf Deutsch: Ein 1:1-Kabel ist gefordert, kein Null-Modem.
Vielleicht liegt's daran. Jedenfalls hat das bei mir geholfen.

Wolfgang.

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.