Adruino Every USART3

OP #6955768
Lesenswert?

Hallo,
ich habe ein Arduino Every Board, bei dem ich vom Atmega4809 über dem 
SAM, welcher als USB-Schnitstellenanbindung funktioniert, Daten an ein 
Terminal senden möchte. Das Board meldet sich als COM6 an, jedoch kommt 
im Terminal nur Müll an. Ich habe verschiedene Baud-Raten versucht und 
auch die Pegel zum SAM mal invertiert (wegen des Levelshifters). Leider 
ohne Erfolg. Auf welcher Baudrate muss der SAM denn angesprochen werden? 
Ich programmiere das Ding ohne die Arduino-Lib -und IDE.

Auf dem Oszi sehe ich, dass das was am Pin des SAMs ankommt, mit dem was 
ich sende übereinstimmt. Aber der SAM weigert sich, die Daten an das 
Terminal bzw. die COM-Schnittstelle zu übergeben. Ich spreche auf 9600 
Baud mit ihm.

Ich habe folgenden Code zum Initialisieren:
1
#define USART0_BAUD_RATE(BAUD_RATE) ((float)(F_CPU * 64 / (16 * (float)BAUD_RATE)) + 0.5)
2

3
  //RS-232
4
  /*  
5
    PB04 = TXD0
6
    PB05 = RXD0
7
  */
8
  //Remap Pins
9
//  PORTB.PIN4CTRL |= PORT_INVEN_bm;
10
  PORTB.DIRSET = PIN4_bm;
11
  PORTMUX.USARTROUTEA |= PORTMUX_USART3_ALT1_gc;
12
  USART3.BAUD = (uint16_t) USART0_BAUD_RATE( 9600 );    // Baudrate 9600k
13
  USART3.CTRLC |= USART_CHSIZE_8BIT_gc;  // 8Bit Size
14
  USART3.CTRLB |= USART_RXEN_bm | USART_TXEN_bm;      // Enable Reciever/Transmitter

Ich habe den globalen Prescaler deaktiviert vom 4809, er läuft also auf 
20MHz.
Moderator (Firma: Titel) Persönliche Seite #6955788
Lesenswert?

Ingo L. schrieb:
> Baudrate 9600k
Echt jetzt?

> Auf welcher Baudrate muss der SAM denn angesprochen werden?
Welche hast du denn im Terminal für die COM6 eingestellt?

> Auf welcher Baudrate muss der SAM denn angesprochen werden?
Ich würde mal einfach vom PC-Terminal laufend ein Zeichen ausgeben und 
am Ausgang des SAM messen, welche Bitzeit der da verwendet und daraus 
die Baudrate berechnen...
OP #6955797
Lesenswert?

Lothar M. schrieb:
>> Baudrate 9600k
> Echt jetzt?
Nee. 9600, sorry

> Welche hast du denn im Terminal für die COM6 eingestellt?
Die Selbe wie vom Sender

> Ich würde mal einfach vom PC-Terminal laufend ein Zeichen ausgeben und
> am Ausgang des SAM messen, welche Bitzeit der da verwendet und daraus
> die Baudrate berechnen...
Himmel, das is ne sehr gute Idee! Ich mach mich gleich dran...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren