ATtiny2313 USART - unmöglich?

Gast #2241088
Lesenswert?

Hallo!
Also ich habe ein großes Problem einem ATtiny2313 das senden via USART 
beizubringen. Anfänglich habe ich versucht die Lib von Peter Fleury zu 
verwenden (die bisher bei ATmegas immer gut funktionierte) und da das 
alles nicht zum Erfolg führte habe ich jetzt ein ganz einfaches 
Testprogramm geschrieben und auch das sendet immer nur 0x00 zu meinem 
PC.

int main (void)
{
  DDRD = 0b0000010; // Eingänge + Ausgänge

  UBRRH = 0;
  UBRRL = 28;
        // UBR = 28 19200bps @ 8868238MHz

  UCSRC = 0;
  UCSRC = 0b00000110;
  UCSRB = 0b00001000;

  UDR = 0x31; // sende '1'
  for(;;);
}

Eigentlich sollte ich eine '1' am Terminal empfangen, aber es kommt 
immer 0x00 an, am µC habe ich den externen Quarz angewählt. Auch andere 
Übertragungsgeschwindigkeiten liefern den selben Mist (nach 
entsprechender Änderung)
Kann mich jemand ein wenig erleuchten was ich falsch mache?
Danke.
Gast #2241133
Lesenswert?

UBRR ist schon korrekt.

> Kann mich jemand ein wenig erleuchten was ich falsch mache?

Nicht wirklich falsch aber doch extrem kontraproduktiv:

> UCSRC = 0b00000110;

..das bremst beim 'entschlüsseln' unnötig und man kann es viel lesbarer 
schreiben mit..
1
UCSRC = _BV(UCSZ1) | _BV(UCSZ0);

Aber der eigentlich fehler steckt woanders: Taktfrequenz (falsche 
Taktquelle, CKDIV8), Verdrahtung, falsche Einstellungen am Terminal. Geh 
mal die Checkliste [1] ∗komplett∗ durch.

HTH

[1] http://www.mikrocontroller.net/articles/AVR_Checkliste#UART.2FUSART
Gast #2241207
Lesenswert?

UDRE wird doch vom µC gesetzt oder?
Jedenfalls bin ich nun nen kleinen Schritt weiter, es wird eine "1" 
empfangen, aber auch ein zweites Zeichen 0xF8 - wieso, dafür gibts doch 
eigentlich kein Grund???

Vermutlich waren die bisherigen Probleme aufgetreten, da CKDIV8 gesetzt 
war.
Gast #2241352
Lesenswert?

> funktioniert bei Baud 300 und 600, größer 600 kommt nur Quatsch an ...
> aber 8.8 MHz und 19600 sollte doch unkritisch sein?

..so rein aus Parano^WNeugierde: Nimm für UBRR mal 25 und als Baudrate 
19200 und schau was ankommt.

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