-         

Ergebnis 1 bis 10 von 10

Thema: Probleme mit UART beim AT90S2313?

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    16.11.2004
    Beiträge
    68

    Probleme mit UART beim AT90S2313?

    Anzeige

    Moin,

    ich betreibe an einer seriellen Schnittstelle zwei Mikrocontroller mit 115200bps. Der eine ist ein ATmega8515, der andere ein AT90S2313. Beide besitzen den gleichen Quarz mit 3,6864 MHz. Wenn ich nun vom PC Daten sende, so kommen sie beim ATmega korrekt an, nicht aber beim 2313. Wodran kann das liegen? Auch wenn ich nur den AT90S2313 an der seriellen Schnittstelle betreibe, liefert dieser falsche Werte. Einen Programmfehler schließe ich aus, da er bei geringeren Frequenzen einwandfrei arbeitet.
    Laut Datenblatt müßte er aber 115200bps schaffen!

    Gruß,

    jörn

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.11.2004
    Ort
    Karlsruhe
    Beiträge
    223
    hast du mal geschaut ob der 2313 mit der richtigen Geschwindigkeit sendet? Oder invertiert dein Pegelwandler evw. aus Versehen beim 2313? Wenn ich das richtig im Kopf habe sind auch die Werte für UBRR zwischen den beiden µCs unterschiedlich.

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.03.2004
    Ort
    Paderborn
    Alter
    33
    Beiträge
    614
    Übertragungsprobleme, die erst bei höheren Frequenzen auftreten, können auch ein Hinweis auf zu lange oder nicht ausreichend abgeschirmte Leitungen sein.

    Die Genauigkeit, mit der eine Baudrate erzeugt wird, ist auch wichtig für die Übertragungsqualität. Haben beide Quarze die gleichen Toleranzen?

    Funktioniert eigentlich nur der Empfang beim 2313 nicht oder kann der auch nicht senden?
    it works best if you plug it (aus leidvoller Erfahrung)

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    hallo, schau dir den quarz noch einmal genau am oszi an.
    vielleicht ist die toleranz zu gross. oder du gehst beim senden eine etage tiefer. ich nehme ab diesen übertragungsraten wires-lan.
    mfg pebisoft

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    16.11.2004
    Beiträge
    68
    Ich habe noch einmal lange herumprobiert und dabei festgestellt, dass es meistens geht, wenn nur der AT90S2313 angeschlossen ist. Schließt man den ATmega wieder dazu, so geht es wieder meistens nicht.
    Das Senden hat eigentlich funktioniert.
    Kann es sein, dass der ATmega dem 2313 irgendwie das Signal abgräbt oder so beeinflußt, dass dieser es nicht mehr vernünftig empfangen kann? Gibt es einen Möglichkeit, den Pin dann so zu sperren, als ob er praktisch nicht angeschlossen wäre, oder ist der Innenwiderstand beim Lesen und bei einem als Ausgang konfigurierten Pin gleich?

    jörn

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    Ich habe noch einmal lange herumprobiert und dabei festgestellt, dass es meistens geht, wenn nur der AT90S2313 angeschlossen ist. Schließt man den ATmega wieder dazu, so geht es wieder meistens nicht.

    Schliesst du die beiden Controller einfach parallel an den seriellen Anscchluss an oder wie meinst du das mit "schliesst man den anderen wieder dazu"?

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    16.11.2004
    Beiträge
    68
    ja, die liegen beide parallel an Ein- und Ausgang des MAX232. Da sie aber nicht senden, kann es zumindest da nicht zu einer Kollision kommen.

    Jörn

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.11.2004
    Ort
    Karlsruhe
    Beiträge
    223
    hmm, das ist aber irgendwie nicht so toll -- bist du dir sicher dass der Max in der Lage ist beide TTL-Schnittstellen zu treiben?

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    16.11.2004
    Beiträge
    68
    Mittlerweile nicht mehr so richtig. Wie schließe ich denn mehrere Mikrocontroller an nur eine serielle Schnittstelle?

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.03.2004
    Ort
    Paderborn
    Alter
    33
    Beiträge
    614
    ich nehme ab diesen übertragungsraten wires-lan.
    Der Punkt interessiert mich. Hast du irgendwo eine Dokumentation zu einer WLAN-Implementierung für AVRs? Wie groß ist etwa der Aufwand dafür?
    Mittlerweile nicht mehr so richtig. Wie schließe ich denn mehrere Mikrocontroller an nur eine serielle Schnittstelle?
    Der Ausgang desMax232 kann mehrere mA liefern. Die Eingangswiderstände der AVRs sind ausreichend groß...
    Der Pullup am Eingang sollte natürlich nur bei höchstens einem aktiviert sein(obwohl 2x 100kOhm eigentlich auch noch unkritisch sein sollten.). Wenn es bei höheren Frequenzen Probleme gibt, schau dir mal die Kapazitäten der Eingänge an.
    Gibt es einen Möglichkeit, den Pin dann so zu sperren, als ob er praktisch nicht angeschlossen wäre, oder ist der Innenwiderstand beim Lesen und bei einem als Ausgang konfigurierten Pin gleich?
    Nein, der Innenwiderstand ist alles andere als gleich: Wenn der Pin als Ausgang konfiguriert ist, ist der Innenwiderstand recht gering(schließlich kann der Ausgang bis zu 20mA liefern.). Zum Empfangen musst du die Pins sowieso als Eingang konfigurieren. Der Innenwiderstand ist dann im MOhm-Bereich(es sei denn, du hast den Pullup an, der hat ca. 100kOhm).
    it works best if you plug it (aus leidvoller Erfahrung)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •