[Atmega32] USART sendet nicht

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 28 11 2024  10:47:19      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte


Autor
[Atmega32] USART sendet nicht

    







BID = 587446

pippo

Gesprächig



Beiträge: 183
ICQ Status  
 

  


Im Moment will ich einfach nur, dass der uC irgendwas an den PC schickt und wenn es nur Müll ist, aber es kommt nix. Im Anhang ist der Schaltplan, im übrigen schon der 2. Entwurf, da die 1. Platine keine Sockel und Messpins hatte

Hier ist noch der Codeauszug:



Code :


void USART_init(void);
void uart_putc(char);

int main() {

uint8_t bytes=0;

DDRB = (1 << DDB0) | (1 << DDB1);
PORTB|=(1<<PB0);

USART_init();
uart_putc(bytes);
}


void USART_init(void){
/* Set baud rate */
UBRRH = (unsigned char)(115200>>8);
UBRRL = (unsigned char)115200;
/* Enable receiver and transmitter */
UCSRB = (1<<RXEN)|(1<<TXEN);
/* Set frame format: 8data, 1stop bit */
UCSRC = (1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1);
}

void uart_putc(char c){

while(!(USR & (1<<UDRE)));
UDR = c;
}



Das externe BaudrateQuarz mit 7,28Mhz wurde über die Fuses aktiviert und wird auch verwendet. Zur Verbindung mit dem PC verwende ich ein Nullmodemkabel, hab die Kontakte 2 und 3 aber bei 1 Stecker getauscht. Bin jetzt aber an einer Stelle, an der ich nicht mehr weiter weiß. Such seit Wochen das Internet ab.



BID = 587468

Jornbyte

Moderator



Beiträge: 7178

 

  

Software nicht angesehen.
Hardware: an der 9Pol Sub-D Pin 2 und 3 tauschen.

_________________
mfg Jornbyte

Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.

BID = 587470

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach


Zitat :
aber es kommt nix
Woher weisst du das ?
Häng mal eine LED an die Ausgangsleitung und schau ob sie flackert.

Es ist genausogut möglich, dass der PC nicht zuhört, weil die Handshake-Leitungen nicht bedient werden.
Das muss man zwar auch nicht unbedingt, aber dann sollte man das dem PC-UART während der Initialisierung sagen.


_________________
Haftungsausschluß:



Bei obigem Beitrag handelt es sich um meine private Meinung.



Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.



Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !

BID = 587484

Houwdy

Stammposter



Beiträge: 408
Wohnort: Graz
Zur Homepage von Houwdy ICQ Status  

Welchen Sinn hat das Gatter zwischen µC und Max 232, wenn du dein Projekt mit Code Vision AVR in c machst kannst du mit Getchar und Putchar die RS 232 bei richtiger Konfiguration ansprechen sonsten heist das Register UDR in welches du deinen Wert schreiben musst... soweit muesste es funktionieren..

du koenntest ja einfach mal

while (1) {

putchar 'a';
delay_ms(1000);

}

ps achtung pseudocode

_________________
lg Marian Guggenberger

Lieber polyglott als monogam!

BID = 587522

pippo

Gesprächig



Beiträge: 183
ICQ Status  

@ Jornbyte
Warum sollte ich die Pins tauschen? Richtig angeschlossen sind sie doch.


@ perl
Weil am PC nix angekommen ist ging ich davon aus. Wenn ich ne LED hinhäng, so leuchtet sie dauern, wenn eine Verbindung vom uC zum PC besteht und geht aus, sobald ich den Stecker zieh. Sehr seltsam.


@ Houwdy
Es befindet sich noch eine 2. Schnittstelle auf der Platine, deshalb das Gatter


BID = 587534

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach


Zitat :
Wenn ich ne LED hinhäng, so leuchtet sie dauern, wenn eine Verbindung vom uC zum PC besteht und geht aus, sobald ich den Stecker zieh. Sehr seltsam.
Nicht seltsam, sondern das bedeutet, dass die Leitung vom PC mit dessen Sendedaten gespeist wird.
Wie Jornbyte schon sagte: 2 und 3 vertauschen.

Am besten nimmst du 2 antiparallele LEDs mit einem Vorwiderstand von vielleicht 5..10kOhm.
Dann kannst du an der einen LED die Ruhepolarität beobachten und die andere blitzt kurz auf, wenn Daten fliessen.
Das dann mit roten und grünen LEDs für alle Schnittstellenleitungen aufgebaut (ausser Masse natürlich), ergibt einen richtigen kleinen Schnittstellentester.

[ Diese Nachricht wurde geändert von: perl am 11 Feb 2009 23:26 ]

BID = 587537

pippo

Gesprächig



Beiträge: 183
ICQ Status  

Ach sorry, mein Fehler. Ich meinte das Programmierkabel, also die ISP-Schnittstelle.

Ich hab den uC jetzt aber komplett vom Strom weg und wieder angeschlossen, nun ists wider ok und unabhängig vom Programmierkabel.

Jetzt ist es so, dass die LED zu leuchten beginnt, sobald ich die Funktion USART_init aufrufe. Alle Zeilen und Funktionen, die mit dem Senden zu tun haben, sind auskommentiert


Edit: Sch..., das Signal ist ja invertiert und somit ganz normal, dass die LED dauernd leuchtet. Hab das ganz vergessen. Ich geh jetz besser ins Bett.

[ Diese Nachricht wurde geändert von: pippo am 12 Feb 2009  0:09 ]

BID = 587565

hajos118

Schreibmaschine



Beiträge: 2453
Wohnort: Untermaiselstein

Nur zum Test:
Die ser. Sendeleitung mal direkt mit dem Treiber (unbenutzter Kanal) verbinden und dessen Ausgang über 2. SUB9 an PC anschliessen.
Evtl. kann der 232-Treiber nicht mit CMOS Bausteinen (oder nur mit pull-up/pull-down)

_________________
Interpunktion und Orthographie dieses Beitrags sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.
Wer einen Fehler findet, darf ihn behalten!

BID = 587683

pippo

Gesprächig



Beiträge: 183
ICQ Status  

Problem gelöst. Ich traus mich fast net sagen, dass ich das erst jetz gemerkt hab. Bitter. Der Sub-D Stecker ist in der Eagle Libary falsch dargestellt. Eagle zählt die Pins von links nach rechts wenn man von hinten draufsieht, leider wird aber von rechts nach links gezählt.

Und dafür hab ich jetz 2 Platinen gebraucht

BID = 587686

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach

Eagle weiss das eigentlich, wie es richtig ist, aber vielleicht hast du den Stecker auf der falschen Seite der Platine eingebaut oder Männchen und Weibchen vertauscht.
Beidesmal gibts es dann das spiegelverkehrte Lochmuster.

_________________
Haftungsausschluß:



Bei obigem Beitrag handelt es sich um meine private Meinung.



Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.



Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !

BID = 587690

pippo

Gesprächig



Beiträge: 183
ICQ Status  

Hmm, da könntest sogar recht haben Das muss tatsächlich die Buchse sein, aber da ich nichtmal was dafür. Das Symbol für den "Stecker" hab ich damals von der Ingenieurin bekommen, die uns in Eagle eingeführt hat


Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 19 Beiträge im Durchschnitt pro Tag       heute wurden bisher 3 Beiträge verfasst
© x sparkkelsputz        Besucher : 182416900   Heute : 1397    Gestern : 7490    Online : 460        28.11.2024    10:47
5 Besucher in den letzten 60 Sekunden        alle 12.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0328650474548