mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik [OT]: Wieder einmal RS232


Autor: Niki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich weiss, diese Frage ist etwas OT aber zum Glück ist dieses Forum ja 
nicht so ver-"Usenet"-et.

Es geht wieder mal um RS232 und die Fähigkeit es zu empfangen.
Ich habe einen M68k Mikrocontroller und einen eigenwilligen Linkport. 
Jedenfalls ist es so dass ich einen RS232 Treiber basteln will und das 
über Interrupts machen muss/will.
Jedenfalls hab ich einen Quarz, der geht mit ca 520kHz, und ein 
zugehöriger Interrupt wird genau mit dieser Frequenz aufgerufen.

D.h. der Interrupt wird 520 000 mal / sekunde augerufen. Ist das genug 
um einen interruptbasierten RS232 Treiber bauen zu können (der eben auf 
der Interrupt Handling Routine basiert)? Es ist klar das mehr als 9600 
Baud nicht möglich sind aber damit wäre ich schon glücklich.

D.h. ich würde 9600mal / Sekunde zumindest was zu tun bekommen. Kann nur 
hoffen das das reicht...


Leider muss ich das ganze UART softwaremässig bauen, d.H. da fallen noch 
einige Zeilen Code an die wieder Zeit brauchen werden...


Was meint ihr, lohnt es sich überhaupt es aus zu probieren?

Oder ist das mit dieser Frequenz sowieso zu langsam??


Vielen Dank für eure Tipps...

Niki

Autor: Rudolf Sosnowsky (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Niki,

Du hast einen Interrupt, der alle 2 µs aufgerufen wird? Nicht wirklich, 
oder?

Einen Software-Uart macht man am geschicktesten mit einem 
Interrupt-Eingang, z.B. direkt auf den Timer. Die Flanke des Start-Bits 
triggert Deinen Interrupt, und dann brauchst Du nur zur Mitte der 
Bitzeiten den Pegel am Port einlesen. Damit ist ein primitiver Empfang 
(ohne Sampling mit Majoritätsentscheidung etc) möglich. Wenn Du hingegen 
keinen Interrupt für das Startbit frei hast, mußt Du eben pollen, bis Du 
die Pegeländerung merkst, und dann mit dem oben beschriebenen Verfahren 
weiter machen. Die Poll-Freqeunz muß ausreichend hoch sein, damit Du 
nicht zu spät im Startbit abtastest und Fehler bei den folgenden 
Datenbits bekommst.

Gruß, Rudolf.

Rudolf Sosnowsky +++ LC Design
EPSON Technology Partner
Internet http://www.LC-Design.de

Autor: Niki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

erstmal danke für deine Antwort...

Doch leider will ich nichts an der Hardware ändern und es gibt denk ich 
keinen Interrupt der dann getriggert wird wenn was passiert. Folglich 
muss ich irgendwie pollen. Und wenn das mit dem Hauptprogramm main() 
nicht geht muss es wohl über Interrupts gehen. Und als timer Interrupt 
hätte ich diesen. Also wollte ich fragen ob es möglich wäre mit Hilfe 
dessen zu pollen...

->Niki<-

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das sind ungefähr 5 Interrupts pro Bit. Für den Empfang sollte das 
gehen, das Software-UART für das EZ-Kit lite verwendet nur 3 Ints pro 
Bit. Ob es auch zum Senden genau genug ist, weiß ich nicht. Evtl. musst 
du eine andere Baudrate nehmen, damit der Fehler kleiner wird.

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.