Hallo Leute,
ich habe ein kleines MCS51 Lern- und Experimentierboard mit einem
AT89S8253 Chip. Dieses Board hat im Chiprom einen Bootloader, durch den
Programme über RS232 im IntelHex-Format ins RAM (von Neumann) geladen
und dort ausgeführt werden.
Dieses Board habe ich jetzt umgerüstet auf USB. Dazu verwende ich eine
modifizierte CDC-Software von VUSB "http://www.recursion.jp/avrcdc/" in
einem ATTiny2313.
Das downloaden von Programmen funktioniert gut, aber das debuggen mit
dem Keil-ISD51 hat gezickt. Grund war der schnelle Datentransfer
zwischen 51er und VUSB (375000Baud). Der CDC bekam die Daten deutlich
schneller, als er sie über USB wegschicken konnte.
Nun habe ich in der Datei "ISD51.A51" von Keils ISD51 (ist Bestandteil
von µVision" eine Verzögerung eingebaut und der Debugger läuft damit
einwandfrei. Im Macro "SBYTE" wird ein Unterprogramm aufgerufen, welches
vor dem Senden von Zeichen kurz wartet.
SBYTE MACRO ; Transmit Byte in ACC via serial UART
JNB_TI $
CLR_TI
acall UWait ;Zeitverzögerung aufrufen
WR_SBUF ; MOV SBUF,A
ENDM
Und hier das Unterprogramm:
UWait: ; Verzögerung für VUSB
PUSH 0
PUSH ACC
MOV A,#6
LWLoop:
MOV r0,#200
DJNZ R0,$
DJNZ ACC,LWLoop
POP ACC
POP 0
RET
P.S. Hatte es auch mit billigen RS232-USB Kabeln probiert, da stellten
sich beide Teilnehmer tod. Mit dem VUSB bin ich jetzt zufrieden, es
liefert die Versorgung für mein Board und Download wie debuggen laufen
über die USB-Schnittstelle
Gruß. Tom