FT232RL mit Attiny841

Gast #4442599
Lesenswert?

Hallo,
ich habe hier einen Attiny841 mit einem Ft232RL verbunden.
Nun möchte ich Daten darüber austauschen, allerdings bekomme ich keine 
richtigen Werte zurück bzw. Empfange ich nur Müll.
Ich habe jetzt schon verschiedene Sachen ausprobiert, aber irgendwie 
bekomme ich es nicht hin. Wahrscheinlich ist es ein ganz einfacher 
Fehler ...

Hier einmal der Code für die USART Routinen:
1
void USART_Init( uint16_t baudrate )
2
{
3
  REMAP |= (1<<U0MAP);
4
  /* Set baud rate */ 
5
  UBRR0H = (baudrate>>8); 
6
  UBRR0L = baudrate;
7
  /* Enable receiver and transmitter */
8
  UCSR0B |= (1<<RXCIE0) | (1<<RXEN0) | (1<<TXEN0);
9
  /* Set frame format: 8data, 2stop bit */
10
  UCSR0C |= (1<<UPM01) | (1<<USBS0) | (1<<UCSZ01) | (1<<UCSZ00);
11
}
12

13
void USART_Transmit( uint8_t data )
14
{
15
  /* Wait for empty transmit buffer */
16
  while ( !( UCSR0A & (1<<UDRE0)) );
17
  /* Put data into buffer, sends the data */
18
  UDR0 = data;
19
}
20

21
uint8_t USART_Receive( void )
22
{
23
  /* Wait for data to be received */
24
  while ( !(UCSR0A & (1<<RXC0)) );
25
  /* Get and return received data from buffer */
26
  return UDR0;
27
}

und noch meine Initialisierung und die Main Routine:
1
int main(void)
2
{
3
    init();
4
    while (1) 
5
    {
6
  USART_Transmit(55);
7
    }
8
}
9

10
void init(void)
11
{
12
  cli();
13
  USART_Init(64);
14
  sei();
15
}
Eigentlich stammen die USART Routinen aus dem Datenblatt und müssten so 
funktionieren.

Zurück bekomme ich eine dezimale 63, obwohl es ja eigentlich eine 55 
sein sollte.
Der Attiny läuft mit 10MHz.

Danke
Angehängte Dateien:
Gast #4442612
Lesenswert?

>Zurück bekomme ich eine dezimale 63, obwohl es ja eigentlich eine 55
>sein sollte.

Falsche Baudrate weil vermutlich die Taktfrequenz nicht stimmt.

>Der Attiny läuft mit 10MHz.

Hast du das auch mal mit einer blinkenden LED geprüft?
Gast #4442639
Lesenswert?

Habe das mit der Taktfrequenz gerade überprüft indem ich den internen 
Oszillator gewählt habe und den UBRR Wert geändert habe.
Allerdings bekomme ich immer noch die selben Werte zurück.
Delay ist jetzt auch mit 10ms vorhanden, allerdings bringt das auch 
nichts, nur das der FT nicht mehr so gequält wird :D

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