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


von Eric S. (eazy)


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

von Karl H. (kbuchegg)


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-Tutorial#Der_UART
http://www.mikrocontroller.net/articles/AVR-Tutorial:_UART

von Eric S. (eazy)


Lesenswert?

Karl heinz Buchegger wrote:
> Schon mal die Tutorials studiert?
>
> http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Der_UART
> http://www.mikrocontroller.net/articles/AVR-Tutorial:_UART

Ja, und jetzt?

von Professor (Gast)


Lesenswert?

Lesen und dabei lernen.

von Karl H. (kbuchegg)


Lesenswert?

Eric Schmitz wrote:
> Karl heinz Buchegger wrote:
>> Schon mal die Tutorials studiert?
>>
>> http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Der_UART
>> 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.

von Eric S. (eazy)


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.

von Karl H. (kbuchegg)


Lesenswert?

Eric Schmitz wrote:
> Karl heinz Buchegger wrote:
>> Schon mal die Tutorials studiert?
>>
>> http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Der_UART
>> 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.


von Karl H. (kbuchegg)


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.

von Netbird (Gast)


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.

von Eric S. (eazy)


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?

von Karl H. (kbuchegg)


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.

von Karl H. (kbuchegg)


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?

von Eric S. (eazy)


Lesenswert?

Karl heinz Buchegger wrote:
> Über welche Programmiersprache reden wir eigentlich?

Von C

von Karl H. (kbuchegg)


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:
1
#include <avr/io.h>
2
3
/* USART-Init beim ATmega16 */
4
#ifndef F_CPU
5
#define F_CPU 3686400           /* Oszillator-Frequenz in Hz */
6
#endif
7
 
8
// Hilfsmakro zur UBRR-Berechnung ("Formel" laut Datenblatt)
9
#define UART_UBRR_CALC(BAUD_,FREQ_) ((FREQ_)/((BAUD_)*16L)-1)
10
 
11
#define UART_BAUD_RATE 9600
12
 
13
int main(void)
14
{
15
  UCSRB |= (1<<TXEN);                // UART TX einschalten
16
  UCSRC |= (1<<URSEL)|(3<<UCSZ0);    // Asynchron 8N1 
17
18
  UBRRH = (uint8_t)( UART_UBRR_CALC( UART_BAUD_RATE, F_CPU ) >> 8 );
19
  UBRRL = (uint8_t)UART_UBRR_CALC( UART_BAUD_RATE, F_CPU );
20
 
21
  while( 1 )  {
22
    while (!(UCSRA & (1<<UDRE)))  // warten bis Senden moeglich ...
23
    {
24
    }
25
 
26
    UDR = 'x';                    // ... ein 'x' senden
27
  }
28
}

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.

von Eric S. (eazy)


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!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.