Forum: Mikrocontroller und Digitale Elektronik AVR-NET-IO RS232


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Bert (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,
hab gerade ein kleines Problem mit dem Atmega32 auf dem Board von 
Pollin.
Ich wollte mir vom Atmega einige Werte als ASCI-Zeichen über die 
serielle Schnittstelle ausgeben lassen. MAX232 ist ja soweit vorhanden, 
sollte also eigentlich nicht so schwer sein dachte ich.
Hab dann einen kleinen Code geschrieben, die Schnittstelle eingestellt 
und das Programm auf den Controller gespielt. Allerdings gibt der 
Controller den String nicht aus wenn ich mit einem PortSniffer meinen 
Com-Port beobachte. Gibt es hier noch andere Dinge zu beachten?Der Code 
ist einwandfrei, hab auch schon mehrere Beispiele ausprobiert, ohne 
Erfolg.

von ... (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
wenn der code tun würde, würde es funktionieren. wir kennen deinen KOT 
nicht. du hast ihn auch nicht angehängt .... unsere kristall kugeln sind 
im urlaub

von Bert (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Sorry hatte ich vergessen, hier der KOT
1
#include <avr/io.h>
2
3
#define  TAKT      3680000
4
#define UART_BAUDRATE  9600
5
6
// Berechnung der Konfigurationsparameter
7
#define UART_SETTING  ((TAKT/16L/UART_BAUDRATE)-1)
8
9
10
void setup_uart()
11
{
12
  /* Baudrate einstellen */
13
  UBRRH = (char) (UART_SETTING >> 8);
14
  UBRRL = (char) (UART_SETTING);
15
16
  /* Empfänger und Sender einschalten */
17
  UCSRB = (1<<RXEN) | (1<<TXEN);
18
19
  /* Asynchron, 8N1 */
20
  UCSRC = (1<<URSEL) | (3<<UCSZ0);
21
}
22
23
void uart_putchar(char c)
24
{
25
  // Warten bis Buffer bereit ...
26
  while (!(UCSRA & (1 << UDRE)))
27
    ;
28
29
  // Senden...
30
  UDR = c;
31
}
32
33
void uart_putstring(char *str)
34
{
35
  unsigned char i;
36
37
  for (i=0;i<255;i++) /* Maximal 255 Zeichen ausgeben ... */
38
  {
39
    if (str[i] != 0)
40
      uart_putchar(str[i]);
41
    else
42
      break; // Ende des Strings erreicht
43
  }
44
}
45
int main(void)
46
{
47
  setup_uart();
48
  uart_putstring("AVRBUCH.DE - RS232 [OK]...\r\n\r\n");
49
  while (1)
50
  {
51
  }
52
  return 0;
53
}

: Bearbeitet durch Moderator
von holger (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>Gibt es hier noch andere Dinge zu beachten?

Du lieferst zu wenig Informationen. Das kann alles mögliche sein.
Benutzt du ein Nullmodemkabel?

von c-hater (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Bert schrieb:

> #define  TAKT      3680000

Shure? 3,68MHz ist zumindest nicht ganz üblich...

Beschreibe bitte, wie du zu diesem Takt kommst. In allen Einzelheiten.

von Bert (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Nein einen USB Seriell Wandler, mit dem war eine Verbindung im 
Auslieferungszustand des Boards möglich also sollte dieser 
funktionstüchtig sein.

von holger (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>Shure? 3,68MHz ist zumindest nicht ganz üblich...

Das NET-IO hat einen 16MHz Quarz.

von holger (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>Allerdings gibt der
>Controller den String nicht aus wenn ich mit einem PortSniffer meinen
>Com-Port beobachte.

Vieleicht gibt der Controller den String ja doch aus und
du bist nur mit dem falschen COM Port verbunden. Oder
dein Portsniffer funktioniert nicht. Was für ein Portsniffer überhaupt?

Nimm HTERM, stell den richtigen COM Port und Baudrate ein und sieh nach
was da kommt.

von Bert (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Stimmt ist 16MHz gewesen, das habe ich soweit angepasst und auch mal den 
HTerm PortSniffer ausprobiert, einstellungen gemacht jedoch kommt keine 
Kommunikation zustande.

von holger (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>jedoch kommt keine
>Kommunikation zustande.

Hast du auch auf Connect gedrückt?
Was heisst keine Kommunikation?
Kommt gar nichts, oder was falsches?

Lass dir doch nicht alles aus der Nase ziehen.

von Bert (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Keine Kommunikation heisst halt das ich vom Controller nichts empfange 
obwohl ich ja eigentlich vom Programm her eine Zeichenfolge sende.
Klar hab ich auf Connect gedrückt ganz so schlimm steht es um mich dann 
doch nicht.

von holger (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Nimm die HEX Datei im Anhang und probier die mal.

von Karl H. (kbuchegg) (Moderator)


Bewertung
0 lesenswert
nicht lesenswert
Nimm mal ein anderes Testprogramm
1
...
2
int main(void)
3
{
4
  setup_uart();
5
6
  while (1)
7
  {
8
    uart_putchar( 'x' );
9
  }
10
  return 0;
11
}

Und dann beginnst du am Prozessor mal mit einer LED (+330Ohm, gegen 
Masse verbunden) nachzusehen, ob es am TxD Pin vom µC blinkt. Dieses 
Blinken verfolgst du zum MAX232 wo es am TxIn Pin reingeht und am TxOut 
Pin wieder rauskommt. Von dort verfolgst du es bis zum RS232 Anschluss. 
Dort muss es anliegen und aufs Kabel gehen und am PC an dessen RxD 
Anschluss wieder rauskommen.

: Bearbeitet durch Moderator
von Karl H. (kbuchegg) (Moderator)


Bewertung
0 lesenswert
nicht lesenswert
Der SChnelltest geht übrigens so:
Nimm den µC aus dem Sockel. Mit einem Stückchen Draht verbindest du im 
Sockel den TxD Pin mit dem RxD Pin.

Dann startest du am PC dein Terminalprogramm (lässt es verbinden) und 
klimperst auf der Tastatur. Wenn das was du tippst im Terminal wieder 
erscheint, dann machst du den Gegentest: du nimmst die Drahtbrücke 
wieder raus. Damit muss dann auch das Echo vom Getippten aufhören. Wenn 
dem nichts so ist, dann hast du ein Hardwareproblem. Wahrscheinlich ein 
falsch gekreuztest RS232 Kabel. Du könntest dich auch beim Aufbau rund 
um den MAX232 verlötet haben. Stell dann diese Sachen erst mal richtig. 
Dieser 'Schnelltest' muss funktionieren. Er testet die komplette 
Übertragungskette vom PC zum µC und wieder zurück.


Wenn dieser Test nicht wie erwartet funktioniert, dann ist deine LED 
wieder ein gutes Hilfsmittel. Dazu brauchst du noch einen Stein, um ihn 
am PC auf die Tastatur zu legen. Mit dem Blinken der LED verfolgst du 
wieder die Zeichen, diesmal ausgehend vom PC die komplette Kette, bis du 
weißt wo sie verschwinden.

: Bearbeitet durch Moderator
von holger (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>Wahrscheinlich ein falsch gekreuztest RS232 Kabel.

Nein, hat er nicht. Mit der Originalsoftware ging es ja.

Ich würde evtl. mal alle Programme die auf diesen USB-RS232
Adapter zugreifen schliessen, das Teil abziehen, 10s warten
das Ding dann wieder anschliessen. Noch mal versuchen.

von Karl H. (kbuchegg) (Moderator)


Bewertung
0 lesenswert
nicht lesenswert
holger schrieb:
>>Wahrscheinlich ein falsch gekreuztest RS232 Kabel.
>
> Nein, hat er nicht. Mit der Originalsoftware ging es ja.

Hab ich das überlesen oder wo hast du die Information her?

von holger (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>Hab ich das überlesen oder wo hast du die Information her?


Beitrag "Re: AVR-NET-IO RS232"

von Karl H. (kbuchegg) (Moderator)


Bewertung
0 lesenswert
nicht lesenswert
holger schrieb:
>>Hab ich das überlesen oder wo hast du die Information her?
>
>
> Beitrag "Re: AVR-NET-IO RS232"

Ah, danke.
Das ändert die Sache natürlich.

von Bert (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Erstmal Danke für eure Unterstützung und Hilfe!!
Werd das gleich das nächste Mal ausprobieren wenn ich Zeit hab werd mich 
dann wieder melden.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.