STk500 (RS232) ->(USB)PC keine korrekte Übertragung

OP #1144255
Guten Tag zusammen,

beginne gerade die ersten Schritte mit einem STK500 mit ATMEGA8 und 
versuche eine Serielle Kommunikation zwischen STK500 und einen PC, via 
USB->RS232 Schnittstelle zu bewerkstelligen.
Problem: Am PC werden seltsamme Zeichen dargestellt und mir gehen 
langsam die Ideen aus !

Das Programm kommt aus dem AVRBUCH.de, heißt "SERIELLMINIMAL"
Der Text "AVRBUCH.DE - RS232 [OK]..." sollte vom PC empfangen werden.
Das wird angezeigt Anhang AVR_Terminal.

Was bisher probiert wurde:

1. beide USB-> RS232 Adapter geprüft mit Looptest PIN 2 +PIN 3 gebrückt 
;Zeichen werden korrekt gesendet und empfangen (Dargestellt mit AVR_TERM 
und alternativ HTERM)

2.Verbindungskabel RxD auf PD0 von PORTD, TxD auf PD1 von PORTD

3. Lauflicht in das STK500 Programmiert (Funktioniert)

4. Benutze XP SP2,AVR Studio 4.15 Build 623, ATMEGA8

5. STK RS 232 Ctrl  bei mir auf COM8 (im Gerätemanager sichtbar),
   STK RS 232 SPARE bei mir auf COM9 (im Gerätemanager sichtbar)

Vielen Dank für die Hilfe :-)

/*
  Serielle Kommunikation
  Minimale Ausführung

  ATMEGA8/16/32 und kompatibel
  STK500 mit dem STK500 Oszillator (3.68 MHz)
  Baudrate: 9600 (8N1)

  Roman Mittermayr
  AVRBUCH.DE
*/

#include <avr/io.h>

#define  TAKT      3680000
#define UART_BAUDRATE  9600

// Berechnung der Konfigurationsparameter
#define UART_SETTING  ((TAKT/16L/UART_BAUDRATE)-1)


void setup_uart()
{
  /* Baudrate einstellen */
  UBRRH = (char) (UART_SETTING >> 8);
  UBRRL = (char) (UART_SETTING);

  /* Empfänger und Sender einschalten */
  UCSRB = (1<<RXEN) | (1<<TXEN);

  /* Asynchron, 8N1 */
  UCSRC = (1<<URSEL) | (3<<UCSZ0);
}

void uart_putchar(char c)
{
  // Warten bis Buffer bereit ...
  while (!(UCSRA & (1 << UDRE)))
    ;

  // Senden...
  UDR = c;
}

void uart_putstring(char *str)
{
  unsigned char i;

  for (i=0;i<255;i++) /* Maximal 255 Zeichen ausgeben ... */
  {
    if (str[i] != 0)
      uart_putchar(str[i]);
    else
      break; // Ende des Strings erreicht
  }
}


int main(void)
{
  /* RS232 einschalten ... */
  setup_uart();

  /* Willkommensnachricht senden ... */
  uart_putstring("AVRBUCH.DE - RS232 [OK]...\r\n\r\n");

  while (1)
  {
  }

  return 0;
}
Angehängte Dateien:
Gast #1144262
Wo kann ich das sehen ?

Ist das die Einstellung unter FUSES -> SUT_CKSEL?
Da steht bei mir: Int. RC Osc. 1 MHz; Start-up time: 6 CK + 64 ms; 
default value

Das dichteste wäre etwas mit 4MHZ
Gast #1144271
>Int. RC Osc. 1 MHz; Start-up time: 6 CK + 64 ms;
>default value

Dein Controller ist noch jungfreulich/nackich...
Du mußt ihn auf die externe Clock per Fuses programmieren.CKSEL = 0000?
Die Start-up-Time sollte im Moment egal sein.
Gast #1144281
>Glaube mit den FUSES war ich falsch, unter HW Settings stehen die 3.686
>MHz
Nee, die Fuses kümmern sich um die Konfiguration des Controllers (in 
deinem Fall hat er noch die Werkseinstellungen mit dem internen 1MHz 
RC-Oszillator), und die HW-Settings um die Einstellungen des STK500.
Hier im Forum schwirrt irgendwo auch das STK500-Handbuch in Deutsch 
herum...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.