mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Kommunikation STK500 & MS-Terminal über serielle Schnittst.


Autor: Eric Schmitz (eazy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo miteinander,

ich besitze das STK500 Board (mit Atmega16).
Gibt es ein Programm das die Verbindung zu einem PC über die serielle 
Schnittstelle herstellt? Man kann das MS-Terminalprogramm dafür 
verwenden, oder? Bloß, wie gehe ich vor um eine Kommunikation zu 
realisieren?
Was stelle ich wo ein? Wie übertrage ich Daten?
Ich habe bisher noch nie mit dem Terminal gearbeitet und bin deshalb ein 
blutiger Anfänger.

Der Sinn der Sache: Ich möchte über einen NTC an einem Analogeingang die 
Temperatur messen. Die Ermittlung der Temperatur aus der Spannung soll 
über eine Tabelle vorgenommen werden. Die Temperatur soll periodisch 
gemessen und auf dem PC angezeigt werden. Das Messintervall soll auf dem 
PC einstellbar sein.

Falls ihr Tipps & Tricks hierfür habt, vielen Dank!


Gruß Eric

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eric Schmitz wrote:

> Gibt es ein Programm das die Verbindung zu einem PC über die serielle
> Schnittstelle herstellt?

Schon mal die Tutorials studiert?

http://www.mikrocontroller.net/articles/AVR-GCC-Tu...
http://www.mikrocontroller.net/articles/AVR-Tutorial:_UART

Autor: Eric Schmitz (eazy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger wrote:
> Schon mal die Tutorials studiert?
>
> http://www.mikrocontroller.net/articles/AVR-GCC-Tu...
> http://www.mikrocontroller.net/articles/AVR-Tutorial:_UART

Ja, und jetzt?

Autor: Professor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lesen und dabei lernen.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eric Schmitz wrote:
> Karl heinz Buchegger wrote:
>> Schon mal die Tutorials studiert?
>>
>> http://www.mikrocontroller.net/articles/AVR-GCC-Tu...
>> http://www.mikrocontroller.net/articles/AVR-Tutorial:_UART
>
> Ja, und jetzt?

Wenn dir das keine Anhaltspunkte gibt, wie man da
loslegen könnte, dann ist Programmieren wahrscheinlich
nichts für dich.
Nicht traurig sein, sowas gibt es.

Autor: Eric Schmitz (eazy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger wrote:
> Wenn dir das keine Anhaltspunkte gibt, wie man da
> loslegen könnte, dann ist Programmieren wahrscheinlich
> nichts für dich.
> Nicht traurig sein, sowas gibt es.

Ja ok.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eric Schmitz wrote:
> Karl heinz Buchegger wrote:
>> Schon mal die Tutorials studiert?
>>
>> http://www.mikrocontroller.net/articles/AVR-GCC-Tu...
>> http://www.mikrocontroller.net/articles/AVR-Tutorial:_UART
>
> Ja, und jetzt?

Jetzt steckts du das RS232 Kabel zwischen µC und PC an,
brennst dein erstes UART Programm in den µC und siehst zu,
dass du die Kommunikation ins Laufen kriegst.
Genauso wie es Millionen anderer Programmierer vor dir
auf der ganzen weiten Welt schon gemacht haben.


Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach eines hab ich noch vergessen:
Im Handbuch vom STK500 nachsehen, welche Verbindungen am
Board gesteckt werden müssen, damit die RS232 Signale auch
am entsprechenden Stecker rauskommen.

Autor: Netbird (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Eric,

im Thread " Projekt Mikrocontroller" habe ich vor einigen Tagen einige 
Tipps gegeben, wie man mit Bascom ein solches Problem lösen kann. Aus 
Deiner Frage geht leider nicht hervor, welche Vorkenntnisse im 
Programmieren Du hast, dann wüssten wir mehr, um Tipps zu geben.

Das STK500 + AVR-Studio (mitgeliefert) + Bascom ist ein hervorragendes 
Gespann, um Dein Projekt gut zu lösen (auch wenn es gleich 
wahrscheinlich wieder Beiträge gibt, die Dich von C++, Assembler ... 
überzeugen wollen; aber das musst DU dann selbst wissen. Und ohne 
einiges Lernen/ Probieren wird's nicht funktionieren.

Für die einzelnen Programmierelemente in Bascom gibt es in der 
BAscom-Hilfe oder unterstützenden Büchern oder Internetseiten Hilfen ...
Bascom hat für die Datenkommunikation ein Terminal, Du kannst aber auch 
Hyperterm (in Windows) oder ähnliches nehmen.

Autor: Eric Schmitz (eazy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Netbird wrote:
> Hallo Eric,
>
> im Thread " Projekt Mikrocontroller" habe ich vor einigen Tagen einige
> Tipps gegeben, wie man mit Bascom ein solches Problem lösen kann. Aus
> Deiner Frage geht leider nicht hervor, welche Vorkenntnisse im
> Programmieren Du hast, dann wüssten wir mehr, um Tipps zu geben.
>
> Das STK500 + AVR-Studio (mitgeliefert) + Bascom ist ein hervorragendes
> Gespann, um Dein Projekt gut zu lösen (auch wenn es gleich
> wahrscheinlich wieder Beiträge gibt, die Dich von C++, Assembler ...
> überzeugen wollen; aber das musst DU dann selbst wissen. Und ohne
> einiges Lernen/ Probieren wird's nicht funktionieren.
>
> Für die einzelnen Programmierelemente in Bascom gibt es in der
> BAscom-Hilfe oder unterstützenden Büchern oder Internetseiten Hilfen ...
> Bascom hat für die Datenkommunikation ein Terminal, Du kannst aber auch
> Hyperterm (in Windows) oder ähnliches nehmen.


Im bin ein Anfänger mit etwas Vorkenntnisse. Ich habe schon Prgramme für 
das STK500 Board geschrieben (Lauflicht, Blinklicht etc.) für Atmega16.
Nun möchte ich wissen wie ich mit Hyper Terminal von Windows mit dem 
STK500, Atmega16 kommuniziere.
Mein Wissensstand ist so: Board mit PC verbinden, Hyper Terminal 
aufrufen.
Die Einstellungen wie unter dem Link von "Buchegger" bekomme ich auch 
noch hin. Aber dann ist auch Schluss! Gibt es irgendwo eine detailierte 
Anleitung wie die Kommunikation genau funktioniert. Mit dem UART bin ich 
ein wenig überfordert. Welche Einstellungen nehme ich unter AVR Studio 
vor?
Muss ich mit dieser Software auch parallel arbeiten?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eric Schmitz wrote:

> Im bin ein Anfänger mit etwas Vorkenntnisse. Ich habe schon Prgramme für
> das STK500 Board geschrieben (Lauflicht, Blinklicht etc.) für Atmega16.
> Nun möchte ich wissen wie ich mit Hyper Terminal von Windows mit dem
> STK500, Atmega16 kommuniziere.
> Mein Wissensstand ist so: Board mit PC verbinden, Hyper Terminal
> aufrufen.

OK

> Die Einstellungen wie unter dem Link von "Buchegger" bekomme ich auch
> noch hin.

OK

> Aber dann ist auch Schluss! Gibt es irgendwo eine detailierte
> Anleitung wie die Kommunikation genau funktioniert. Mit dem UART bin ich
> ein wenig überfordert. Welche Einstellungen nehme ich unter AVR Studio
> vor?

AVR Studio hat damit überhaupt nichts zu tun.
Es ist dein Mega16 auf dem STK500 der Zeichen zum PC schickt.
Also wirst du wohl ein Programm schreiben muessen, dass genau
das macht: Den UART initialisieren und Zeichen rausschicken.
Im angegebenen Link sind alle Zutaten dafür vorhanden.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eric Schmitz wrote:
> Im bin ein Anfänger mit etwas Vorkenntnisse. Ich habe schon Prgramme für
> das STK500 Board geschrieben (Lauflicht, Blinklicht etc.) für Atmega16.

Über welche Programmiersprache reden wir eigentlich?
Und bevor noch lange nachgefragt werden muss: Mit welcher
Taktfrequenz betreibst du den Mega16?

Autor: Eric Schmitz (eazy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger wrote:
> Über welche Programmiersprache reden wir eigentlich?

Von C

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eric Schmitz wrote:
> Karl heinz Buchegger wrote:
>> Über welche Programmiersprache reden wir eigentlich?
>
> Von C

Dann ist das AVR-GCC Tutorial das Tutorial deiner Wahl.
Aus den dortigen Bausteinen lässt sich zb. dieses
Programm zusammensetzen:
#include <avr/io.h>

/* USART-Init beim ATmega16 */
#ifndef F_CPU
#define F_CPU 3686400           /* Oszillator-Frequenz in Hz */
#endif
 
// Hilfsmakro zur UBRR-Berechnung ("Formel" laut Datenblatt)
#define UART_UBRR_CALC(BAUD_,FREQ_) ((FREQ_)/((BAUD_)*16L)-1)
 
#define UART_BAUD_RATE 9600
 
int main(void)
{
  UCSRB |= (1<<TXEN);                // UART TX einschalten
  UCSRC |= (1<<URSEL)|(3<<UCSZ0);    // Asynchron 8N1 

  UBRRH = (uint8_t)( UART_UBRR_CALC( UART_BAUD_RATE, F_CPU ) >> 8 );
  UBRRL = (uint8_t)UART_UBRR_CALC( UART_BAUD_RATE, F_CPU );
 
  while( 1 )  {
    while (!(UCSRA & (1<<UDRE)))  // warten bis Senden moeglich ...
    {
    }
 
    UDR = 'x';                    // ... ein 'x' senden
  }
}

Du musst noch deine tatsächlich benutzte Quarzfrequenz als F_CPU
eintragen. Dann stellst du Hyperterminal auf 9600 Baud ein
(wie im Tutorial) und wenn dann noch das serielle Kabel
stimmt (gekreuzt / nicht gekreuzt), dann sollte Hyperterminal
wie wild lauter 'x' hinmalen.

Autor: Eric Schmitz (eazy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger wrote:
> Mit welcher Taktfrequenz betreibst du den Mega16?

Mit 1 MHz.

Danke für das Programm ich werde das demnächst ausprobieren. Ich melde 
mich bei Schwierigkeiten. Vielen Dank Buchegger!

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.