Hallo, ich habe einen AT89C5131AM, den ich mit Flip über USB programmieren kann. Funktioniert soweit bestens! Jetzt muss ich ein Gerät mit RS232 auslesen, das nur 9600Bd kennt; und schon gehen die Probleme los: Die USB Programmierung geht nur mit 12Mhz Quarz. Damit bekomme ich die 9600Bd aber nicht hin. Mit einem 11059,2MHz Quarz passt das Timing der RS232, aber USB läuft nicht mehr. Ich habe mittlerweile Schaltungen mit 16MHz oder 24MHz gefunden, die (scheinbar) funktionieren. Meine Fragen: Läuft der USB-Bootlader nur mit (12+n*4) MHz (n E 0..9) ? Wie wäre die Sache zu lösen? Externer Takt für die RS232? Ein "Quarzumschalter"? Wechselschalter aus der Hausinstallation :-)) ? Treiber/Schnittstellenkarte, die auch die 11059MHz umgehen kann? Gibts so was? Am Nähesten liegen bei 24Mhz und reload Wert 13: 9616,38 Bd. Akzeptiert das eine standard RS232 noch als 9600 Bd? Danke, Jürgen
Der 89C5131 hat nen pll für die USB frequenz also ist egal was fürn quarz du an den dranhängst. Ansosnten mit 12mhz kanst du leicht ne 9600br erzeugen ich muss bloß mal schnell gucken.
1 | Initialisierung: |
2 | orl PCON,#10000000b ;SMOD=1 bei 9600 Baud |
3 | mov BDRCON,#00011111b ;int. Baudraten-Generator für Senden und Empfangen, SPD=1 |
4 | mov BRL,#217 ;Reloadwert für int. Baudratengenerator |
5 | mov SCON,#01010000b ;8-Bit-UART (Mode 1), Empfang zulassen |
damit funktionierts zumindest hat so meine kommunikation mit jedem rechner über rs232 funktioniert
Hallo Alexander, funktioniert!!! "interner Baudratengenerator" und BDRCON war das Zauberwort! Danke, Jürgen
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.