www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik beeinflusst die isp-frequenz die baudrate? uart funzt nicht!


Autor: hello world (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

beeinflusst die isp-frequenz die baudrateneinstellungen?muss ich da 
außer den "1/4 ..." beachten? hier mein code für den ATMega32 und 
ATMega8515:

#include <avr/io.h>
#include <util/delay.h>

#ifndef F_CPU
/* In neueren Version der WinAVR/Mfile Makefile-Vorlage kann
   F_CPU im Makefile definiert werden, eine nochmalige Definition
   hier wuerde zu einer Compilerwarnung fuehren. Daher "Schutz" durch
   #ifndef/#endif

   Dieser "Schutz" kann zu Debugsessions führen, wenn AVRStudio
   verwendet wird und dort eine andere, nicht zur Hardware passende
   Taktrate eingestellt ist: Dann wird die folgende Definition
   nicht verwendet, sondern stattdessen der Defaultwert (8 MHz?)
   von AVRStudio - daher Ausgabe einer Warnung falls F_CPU
   noch nicht definiert: */
#warning "F_CPU war noch nicht definiert, wird nun nachgeholt mit 
16000000"
#define F_CPU 16000000L    // Systemtakt in Hz, das L am Ende ist 
wichtig, NICHT UL verwenden!
#endif


void sendUart(unsigned char c)
{
  while (!(UCSRA & (1<<UDRE)))  /* warten bis Senden moeglich 
*/
    {
    }

    UDR = c;
}



int main(void)
{
    UCSRB |= (1<<TXEN);                // UART TX einschalten
    UCSRC |= (1<<URSEL)|(3<<UCSZ0);    // Asynchron 8N1

    UBRRH = 0;
    UBRRL = 11;

  while(1)
  {
    sendUart('@');
    _delay_us(10);
  }


  return 0;
}


mit hilfe eines logicanalyzers habe ich herausgefunden, dass man mit 
"UBRRL = 11;" in etwa die baudrate hinbekommt. laut datenblatt soll dort 
aber eine 51 eingetragen werden...kann mir jemand weiterhelfen???

thx...

Autor: Hubert.G (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
SPI und UART haben nichts miteinander zu tun. 16MHz und UBRR 51 sind 
19k2.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> beeinflusst die isp-frequenz die baudrateneinstellungen?

Wovon? Vom ISP? Ja. Von irgendwas, das später mal läuft? Nein.

> muss ich da außer den "1/4 ..." beachten?

Wie meinen?

> #include <avr/io.h>
> #include <util/delay.h>
>
...
> #define F_CPU 16000000L    // Systemtakt in Hz, das L am Ende ist

F_CPU muß vor den includes definiert sein.

> mit hilfe eines logicanalyzers habe ich herausgefunden, dass man mit
> "UBRRL = 11;" in etwa die baudrate hinbekommt. laut datenblatt soll
> dort aber eine 51 eingetragen werden...kann mir jemand weiterhelfen???

Also willst du 19200 Bit/s. Offensichtlich läuft dein AVR nicht mit 16 
Mhz Takt.  Ein Wert von 11 würde eher zu einem Takt von ca. 4 Mhz 
passen. Vermutlich sind die Fuses falsch eingestellt.
Dein Delay dürfte nicht viel bringen, da die Übertragung eines Bytes 
sowieso länger als 10 Mikrosekunden dauert.

PS: Deine Shift-Taste scheint nicht richtig zu tun.

Autor: hello world (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
habe das STK500 board. die fuse-bits sind im anhang. habe einen 16mhz 
quartz auf dem board und will nicht den internen osc. benutzen, da der 
ja nicht so zuverlässig schwingt...

Autor: Dieter Werner (dds5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der interne Oszillator arbeitet schon zuverlässig, aber es kann sein, 
dass die erzeugte Frequenz nicht genau genug ist um mit der UART 
arbeiten zu können.

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.