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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.