Problem mit dem Senden über RS232

#1226390
Lesenswert?

Servus,

ich hab einen ATMEGA32 und ein AVR-Entwicklungsboard mit 
ISP-Schnittstelle und einer RS232 Schnittstelle!!

Wollte jetzt mal versuchen ein Zeichen vom Microcontroller zum Computer 
zu senden!!
Zum Testen hab ich als erstes eine Brücke zwischen RX und TX gesetzt und 
mit dem Terminal einen Text gesendet und es ist auch zurückgekommen, 
aber wenn ich jetzt meinen Microcontroller einbaue und mein Programm 
rüberlade kommen keine Zeichen an!!

Das Programm sieht folgender maßen aus:

Habe die Schnittstelle folgender maßen eingestellt:
UBRRH = 0x00;
UBRRL = 0x51;  Da ich mit einer Baudrate von 9600 und einem externen 
Quarz von 8MHz arbeite!!

UCSRC = 0x86; für 8 Datenbits!!
UCSRB = 0x18; für senden und empfangen!!

Dann hab ich zum senden eines Zeichen:

UDR = 'Z' geschrieben!!

Kann mir einer vielleicht sagen was ich falsch gemacht habe oder was ich 
vergessen habe!!

MFG
Thomas
#1226628
Lesenswert?

Jupp wrote:
> statt die register mit irgendwelchen nicht nachvollziehbaren zahlen zu
> laden solltest besster die bitseinzeln setzt.
>
> REGISTER = 1 << BIT1 | 1 << BIT2 ...
>
> hast du auch einen pegelwandler dran?

Das mit dem Zuordnen über die Bitmanipulation das weiß ich schon aber 
ich mach das lieber mit Zahlen!!

Einen Pegelwandler hab ich nicht dran geht direkt vom Computer zur 
eintwicklungsplatine und von dort auf einen Chip der es dan in TX und RX 
umwandelt!!

MFG
Thomas
#1226638
Lesenswert?

tja, dann geht es jetzt in Rätselraten über.
Vielleicht mal das komplette Programm? Evtl. ser. Interrupts aktiviert, 
aber keinen handler dafür?
Ich tippe aber eher auf nichtgesetzte fuse-Bits, d.h. das Teil läuft 
trotz angeschlossenem Quarz noch mit dem internen Oszillator, merkt der 
nämlich nicht selbst.
#1226640
Lesenswert?

Thomas Tz wrote:


> Das mit dem Zuordnen über die Bitmanipulation das weiß ich schon aber
> ich mach das lieber mit Zahlen!!

und erwartest, dass die Leute hier gefälligst das Datenblatt 
runterladen, damit sie sehen können, was du setzt...

> Einen Pegelwandler hab ich nicht dran geht direkt vom Computer zur
> eintwicklungsplatine und von dort auf einen Chip der es dan in TX und RX
> umwandelt

kann es sein, dass du keine Ahnung hast, was ein Pegelwandler ist?

> !!

einmal reicht völlig, und es gibt auch noch andere Satzzeichen in der 
deutschen Sprache
#1226656
Lesenswert?

H.joachim Seifert wrote:
> tja, dann geht es jetzt in Rätselraten über.
> Vielleicht mal das komplette Programm? Evtl. ser. Interrupts aktiviert,
> aber keinen handler dafür?
> Ich tippe aber eher auf nichtgesetzte fuse-Bits, d.h. das Teil läuft
> trotz angeschlossenem Quarz noch mit dem internen Oszillator, merkt der
> nämlich nicht selbst.

Kann schon sein hab die Fuses-Bits auf Ext. Crystal/Resonator High 
Freq.: Startup Time 258CK+64 gestellt und die ISP-Frequenz auf 2MHz 
gestellt!!

Kann man das nicht irgendwie feststellen ob er mit dem 8MHz Quarz läuft 
oder nicht?

MFG
Thomas
#1226662
Lesenswert?

Hier mal das ganze Programm:

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


int main (void)
{



UBRRH = 0;
UBRRL = 51;
UCSRC = 0x86;
UCSRB = 0x18;

while(1)
UDR = 's';


return 0;
}

Ich stell es noch um und bau noch die Bitmanipulation ein das es besser 
zu lesen ist!

MFG
Thomas
#1226674
Lesenswert?

ok, wenn ISP mit 2 MHz funktioniert, läuft der Chip auch mit ext. Quarz.
Und, wie schon gesagt, frage vor dem Schreiben ins UDR ab, ob die UART 
überhaupt ein neues Zeichen aufnehmen kann.
Kannst aber erstmal auch mit delay arbeiten, bei 9600Baud braucht ein 
Zeichen etwas mehr als 1ms.
Ausserdem fehlt bei dir noch eine Klammerung:
int main (void)
{



UBRRH = 0;
UBRRL = 51;
UCSRC = 0x86;
UCSRB = 0x18;

while(1)
 {UDR = 's';
 delay_ms (2);
 }

return 0;
}
#1226747
Lesenswert?

Otto wrote:
>> Nur wenn ich RX und TX unterm Betrieb verbinde
>
> RX und TX vertauscht?
>
>> kommen lauter komische Zeichen an!!
>
> Einstellung Terminalprogramm: Startbit, Stopbit, Parität?

Habs gefunden hab doch tazächlich TX und RX vertauscht!!
Trotz das ich nach Plan angeschlossen habe!!
Hab aber festgestellt das der Plan zum Entwicklungsboard nicht stimmt 
den da ist es anders herum eigezeichnet!!

MFG
Thomas

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