- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 9 von 9

Thema: USART funktioniert nicht

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    Hallo Bibermann,

    ich hatte grade erst ein ähnliches Problem auf einem anderen System.
    es kam nur ein Backspace an (aber auch falsch), jedoch keine Reaktion auf Buchstaben.
    Das sieht doch recht ähnlich bei Dir aus.
    Da habe ich doch tatsächlich "vergessen" die Baudrate von 9600 auf 115200 zu stellen,
    bzw. die Zeile auskommentiert.
    Das liegt SEHR wahrscheinlich an der Baudrate. Und ein Quarz mit 15 MHz ist schon eher ungewöhnlich,
    Da stehen unter Umständen die Teilerregister nicht richtig bzw. lässt sich der Teiler evtl. nicht so einstellen,
    das der Baudratenfehler klein genug wird ? Typische Quarze sind ja eher 12 und 16 MHz
    Aber ich sehe grade, der läuft tatsächlich mit 15 MHz.
    https://www.mikrocontroller-elektron...boter-bausatz/


    Mit dem HTerm arbeite ich auch ab und zu, hab da eigentlich noch keine schlechten Erfahrungen gemacht.
    Ist zwar alt, aber kommuniziert auch mit meinen SiLabs Bausteinen über die entsprechenden USB-Treiber.

    Beim I2C-Bus spielt die Geschwindigkeit keine große Rolle. Der läuft meiner Meinung nach auch noch mit einem 1 Hz Takt,
    nach oben hin je nach angeschlossenem Bauteil auch im MHz Bereich.

    Siro
    Geändert von Siro (04.12.2018 um 14:45 Uhr)

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    03.02.2011
    Beiträge
    5
    Hallo Forum,
    habe mir in der Zwischenzeit zwei identische Schaltungen aufgebaut. PC <--> MCU ->LCD. Als Schnittstelle zwischen PC und MCU habe ein CP2102 Modul. Als Schnittstelle zwischen MCU und LCD ein I2C-LCD Interface. In der einen Schaltung ist ein Atmega 328P, in der anderen Schaltung ein Atmega 1284P. Beide MCUs werden durch einen 16 MHz Quarz getaktet. Mein Testprogramm empfängt Strings (max. 16 Zeichen wegen der Zeilenlänge LCD), retouniert die Eingabe zum PC und stellt den Stringinhalt auf dem LCD dar. Ich habe dieses Programm zweimal erstellt, unter Berücksichtigung der unterschiedlichen Registerbezeichnungen und da. Beim Atmega1284P nutze ich den USART0. In der Schaltung mit dem Atmega 328P funktioniert alles einwandfrei. In der Schaltung mit dem Atmega1284P wird nichts empfangen und somit auch nichts dargestellt denn gesendet. Nur die Sende-LED auf dem USB TTL Wandler signalisiert den Sendevorgang vom PC. Muss u.U. beim Atmega1284P PD0 und PD1 als Ausgang bzw. Eingang initialisiert werden?

    Bibermann

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    03.02.2011
    Beiträge
    5
    Hallo,
    Habe mir einen Quarz 14,7456 MHz gekauft, leider war diese Änderung ebenfalls ohne Erfolg. Habe heute den Systemtakt für den ATmega 1284P auf 8 MHz reduziert. Mit der reduzierten Taktung funktioniert die USART Schnittstelle. Ich bekomme im Moment zwar noch nicht den kompletten String, sondern nur vier Zeichen übertragen. Diese Problem werde ich auch noch lösen.

    Bibermann

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.707
    .. Habe mir einen Quarz 14,7456 MHz gekauft, leider war diese Änderung ebenfalls ohne Erfolg ..
    Na ja, es kommt auf mehrerlei an: z.B. die >>genaue<< Formel zur Berechnung der UBRRn-Werte für Deine jeweils gewünschte Baudrate (und das ist ne INTEGER-Rechnung - da kann ne Menge Rest übrigbleiben) und den Prozessor- bzw. Quarztakt. Dazu macht es Sinn, besonders bei Problemen - oder wenns mal eng zu werden scheint, sich ein Rechenblatt dazu zu erstellen. Meine Rechnungen liefern mir dazu (klick) dann auch die jeweils errechnete Abweichung - und bei mehr als 1,5 % .. 2 % Fehler kann man Schwierigkeiten erwarten.

    Ich weiß nicht wie Dein NIBOBURGER tickt - wenn der mit dem 1284er auf UART0 und UART1 aktiv ist - dann sind aus meiner Erfahrung Schwierigkeiten sowieso vor"programmiert". Aber nochmal: ne Kontrollrechnung mit Anzeige der Abweichung zeigt oft was Sache ist.
    Ciao sagt der JoeamBerg

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.252
    Für mich sieht das schwer nach falscher Baudrate aus.
    Entweder läuft der 128 mit internem Takt, oder die Baudrate wird an einem Punkt erneut und damit falsch eingestellt.

    Lass das Ganze doch mal im Simulator des AVR Studio laufen und guck da, wie die Register des USART 0 eingestellt sind.
    Dann Kontrollieren ob das mit der gewünschten Baudrate zusammen passt.

    Als einfach Test kann man auch einfach den TXD Pin und den RXD pin der USB Bridge brücken, ohne aktiven Controller natürlich!!!, ob wenigstens dieser richtig arbeitet.

Ähnliche Themen

  1. STK500 USART Funktioniert nicht
    Von Wiederstand im Forum C - Programmierung (GCC u.a.)
    Antworten: 15
    Letzter Beitrag: 09.01.2011, 14:46
  2. UART/USART vom ATMega32 will einfach gar nicht
    Von Bamboocha im Forum C - Programmierung (GCC u.a.)
    Antworten: 8
    Letzter Beitrag: 04.06.2010, 10:21
  3. Intr. + USART+ Atmega32 lib funktioniert nicht
    Von MrTaco im Forum C - Programmierung (GCC u.a.)
    Antworten: 0
    Letzter Beitrag: 30.11.2009, 18:19
  4. Prüfungstress, Usart geht nicht
    Von SebZilla im Forum AVR Hardwarethemen
    Antworten: 21
    Letzter Beitrag: 14.06.2009, 08:06
  5. 18f1320 USART sendet aber empfängt nicht
    Von stalky13 im Forum PIC Controller
    Antworten: 1
    Letzter Beitrag: 20.06.2007, 19:06

Berechtigungen

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

LiFePO4 Speicher Test