PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : BASCOM-Terminalemulator-Stk500 funktioniert nicht



tueftlerq7
01.04.2010, 16:20
Hallo.
bevor ich mit meinem Problem komme, ersteinmal paar Einstellungen.

STK500
Jumper: Default
Prozessor: ATMEGA88
ISP6PIN->SPROG2
Takt: Intern 8MHZ (im ATMEL88)
Anschluss: rs232 CTRL
Baud: 115200

Bascom
Programmer: STK500 native driver (STK500.exe funktioniert nicht)
Clock 125000
Timeout 100

Mein Problem:
Daten zum STK500 ATMEL88) schreiben wie auch lesen kein Problem!

Aber, wenn ich im Bascom mit "Imput" oder "Print" arbeite, erscheint im AVR Terminal emulator keine Anzeige/keine reaktion!
Was mache ich falsch? Was muß gemacht werden das es funktioniert?

Bisher habe ich mit dem Lernpaket Mikrokontroller Technik mit Bascom (Franzis) gearbeite. Mit dem Terminalemulator kein Problem!!! Daten übertragen, paar Sk. später erschien auf dem Terminal die Auffoderung Daten einzugeben.
Dann habe ich mir das STK500 angeschaft......???????

Ich bitte um Hilfe. Sonst komme ich nicht weiter!!!!
Meinen Dank im Voraus

Viele Grueße

Sauerbruch
02.04.2010, 00:44
Das im Auslieferungszustand gesetzte CKDIV8-Fusebit hast Du gelöscht?

tueftlerq7
02.04.2010, 08:10
Halo Sauerbruch,
meinen Dank für die Hilfe!

Mit AVR-Studio habe ich die Fusebits ausgelesen. CKDIV8 ist gesetzt (Haken). In der Funktion des Terminal emulators. Auch nach Löschen von CKDIV8 hat sich nichts bgeändert!
Kann es am Header des jeweiligen Programmes hängen? Irgend etwas vergessen?

Gruß
Tueftler

Sauerbruch
02.04.2010, 08:46
Kann es am Header des jeweiligen Programmes hängen? Irgend etwas vergessen?

Lass´ uns doch mal den Code incl. Header sehen!

tueftlerq7
02.04.2010, 09:29
Hallo Sauerbruch,
Hier der Bascom-Code (PWM-Anst.)

'Bascom Hardware-PWM

$regfile = "m88def.dat"
$crystal = 8000000
$baud = 115200

Dim Duty As Word

Config Pinb.1 = Output
Config Pinb.2 = Output

Config Timer1 = Pwm , Prescale = 8 , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down

Enable Interrupts


Do

Input "Datenbyte (0-255): " , Duty
Print "Duty = " ; Duty
Pwm1a = Duty
Pwm1b = Duty

Loop
End

Das Prog. läßt sich absolut sicher übertragen! Die LED an PINb.2 PINB.2 leuchten. Nur auf dem Terminal erscheint nicht die "Input" Auffoderung, Werte ein zu geben. Keine Reaktion.

Nochmals meinen Dank für die Hilfe!

Gruß
Tueftler

Sauerbruch
02.04.2010, 10:09
Meine Erfahrung mit UART ist zwar recht überschaubar, aber zwei Dinge liest man immer wieder:

1. kann die Ungenauigkeit des internen RC-Oszillators dazu führen, dass eine kritische Abweichung von der erwarteten Baudrate entsteht

2. lassen sich aus einer definierten Taktfrequenz nicht alle beliebigen Baudraten ganz ohne Fehler erzugen.

Einen Baudraten-Rechner findest Du z.B. hier:

http://www.gjlay.de/helferlein/avr-uart-rechner.html

Bei einem Takt von 8 MHz liegen die nächsten Baudraten 8% über oder 3,5% unter dem Sollwert von 115.200 Baud, und das ist schon ganz schön viel. 5800, 9600, 19200 und 38400 Baud lassen sich dagegen mit einem Fehler von nur 0,2% erzeugen. Versuchs doch mal für´s erste damit, vielleicht klappt´s ja!

Richard
02.04.2010, 11:52
Stimmt, mit einen externen Quarz klappt das besser.
Außerdem kommt es gelegentlich vor das man erst einmal
mit der Mous ins Terminal Fenster klicken muss um es
"einzuschalten"....

Gruß Richard

tueftlerq7
02.04.2010, 13:51
Hallo,
ich habe die Baudzahl auf 19200 reduziert. Ich benutze den Internen RC-Oszilator mit 8Mhz. Verwende den ISP-Mode.
Kann es sein, das das STK500 defekt ist?
Trotz alle dem es funktioniert nicht!!!! Ich bin mit meiner Weissheit am Ende!!
Es wäre sehr schön wenn Dir/Euch noch etwas dazu einfallen würde. Nach meiner Erfahrung sind es oft Kleinigkeiten die man Übersieht!
Ich hoffe auf Eure Hilfe
Danke
Gruß
Tüftler

Sauerbruch
02.04.2010, 14:15
Okay, dann müssen wir noch ein wenig weitersuchen :-)

Mit so etwas noblem wie dem STK500 hatte ich bisher noch nichts zu tun - aber das Franzis-Board kommuniziert doch ausschließlich über USB mit dem PC, oder?

Falls die Kommunikation zwischen dem STK500 und dem PC über ein 9-pol-Kabel erfolgt - verwendest Du denn tatsächlich auch ein "Nullmodem"-Kabel?

tueftlerq7
02.04.2010, 15:14
Hallo,
Verwendest Du ein 0-Modemkabel? Ich sage Ja! Das Beschreiben und Lesen des Flash-Speichers vom Atmega88 funktioniert! Also gehe ich davon aus, das es das richtige RS232 Kabel ist. Es lag ja beim STK500 bei.
Es ist ja nur, nur!! das dieser Verdammte Terminal emulator nicht funktioniert. Auf Grund dessen, dass nur diese Sache nich funktioniert, gehe ich mal vorsichtig von aus, das die Hardware I.O. ist. Ev. muß ein Jumper auf dem STK500 gesetzt werden. Zur Zeit ist alles Standard eingestellt. Ist es eine Einstellung in dem BASCOM? Ich weiß es nicht! Ich hoffe auf euch Wissende.

Nochmals meinen herzlichen Dank für die Mühe.

Gruß
Tüftler

tueftlerq7
02.04.2010, 15:25
Hallo,
Verwendest Du ein 0-Modemkabel? Ich sage Ja! Das Beschreiben und Lesen des Flash-Speichers vom Atmega88 funktioniert! Also gehe ich davon aus, das es das richtige RS232 Kabel ist. Es lag ja beim STK500 bei.
Es ist ja nur, nur!! das dieser Verdammte Terminal emulator nicht funktioniert. Auf Grund dessen, dass nur diese Sache nich funktioniert, gehe ich mal vorsichtig von aus, das die Hardware I.O. ist. Ev. muß ein Jumper auf dem STK500 gesetzt werden. Zur Zeit ist alles Standard eingestellt. Ist es eine Einstellung in dem BASCOM? Ich weiß es nicht! Ich hoffe auf euch Wissende.

Nochmals meinen herzlichen Dank für die Mühe.

Gruß
Tüftler

Richard
02.04.2010, 16:08
Ich stelle mal 2 Bilder von meinen Bascom Einstellungen rein, bei
mir klappt es so jedenfalls. Hast Du eine Anleitung vom STK500.
ansonsten könnte ich Dir eine senden. Ich verwende wenn es geht
immer den Tack vom STK500 oder einen externen Quarz. mit internen
Ozzilator klappt es meistens (bei mir) nur mit 2400.........wenn überhaupt.

tueftlerq7
02.04.2010, 19:17
Hallo Richard,
Danke für Deine Info!! Ich habe leider nur 1. Bild "bascom2.JPG" bekommen. Darauf ist unter OPTIONEN der Simulator abgebildet. Die Einstellungen auf dem Bild sind nach meiner Meinung nicht richtig!
"Use intergrated Simulator" muß deaktiviert werden! Sonst wird der BASCOM-Simulator verwendet. Du willst ja, wie ich es auf dem Bild erkenne, das AvrStudio Toul laden.
Hier bin ich bezüglich meines Problems nicht weiter gekommen.
Nochmals Danke für die Mühe!!
Hoffe auf eine Lösung!!


Gruss
Tüftler

Dnerb
02.04.2010, 22:22
Wie hast Du das STK500 verkabelt?

Wo hast Du das/die RS232-kabel angeschloßen?

Welche Verbindungen am STk500 gebrückt etc.

Eine genaue Beschreibung und dazu noch ein Bild wäre hilfreich.

tueftlerq7
03.04.2010, 00:23
Hallo,
das übermitteln von Bildern ist mir leider nicht möglich.
Deshalb folgt eine genaue Beschreibunbg!

STK500

Das STK500 ist mit einem RS232 Kabel (Orginal, lag dem STK500 bei)
mit dem PC und der RS232-Buchse CTRL (mitte Platine) verbunden.

Folgende Jumper sind gesetzt: VTARGET, AREF, RESET, XTAL 1, OSCSEL(2-3), BSEL2

Kabel 6. Adr.: ISP6PIN-SPROG2 (Grün)
Kabel 10. Adr.: PORT.B-LEDS, PORT.D-SWITCHES

CRYSTAL: 10Mhz Quarz
Der Rest ist frei!

Software

AVR-Studio 4.18.700 (Habe ich nichts eingestellt (Benutze ich nur für die "Fuse-Bits)
BASCOM 1.11.9.8
Einige (ich glaube die wichtigsten) Bascom-Einstellungen

Programmer: STK500 native driver, Clock 125000, Timeout 100,
Monitor: 19200baud
Simulator: User integrated Simulator (Set), Program (nichts), Parameter FILE.OBJ
Communication: Handshake: NONE, Emulation: DEC VT100, 19200baud

Wie Du aus den anderen Beschr. herausgelesen hast, ist das Beschreiben und Lesen des
Prozessors kein Problem! Aber die Nutzung vom BASCOM-AVR Terminal emulator funktioniert nicht. Keine Anzeige, nichts....

Ich bitte um Hilfe

Nochmals meinen Dank für die Mühe

Gruß
Tüftler

Dnerb
05.04.2010, 09:34
Hallo,

ich hoffe Du bist inzwischen nicht verzweifelt. Ich hatte keine Zeit vor den Compi zu kommen.

Die Schnittstelle RS232 CTRL ist "nur" für die Kommunikation von AVR-Studio/Bascom-Programmierschnittstelle mit den beiden AVRs die direkt auf dem STK500 bestückt sind.
Diese AVRs steuern das STK500, Einstellungen für Spannung, Baudrate (für Programmierung via ISP) und diese AVRs Programmieren auch die AVRs die auf die Sockel gesteckt werden.

Wenn Du mit Deinem Atmega88 mit dem PC kommunizieren willst, dann mußt Du von den entsprechenden Portpins Deines Atmega88 mit einem 2-pol Kabel an die Anschlüße "RS232 Spare RxD TxD" gehen. (Zwischen den Anschlüßen von Port D und Port E auf dem STK500.)

Mit einem zweiten RS232 Kabel gehts dann an den PC zu einem 2ten Com-Port. (USB nach RS232 funktioniert in der Regel auch.)

Eine RS232 für die Programmierung des ATmega (RS232 CTRL) und eine RS232 für die Kommunikation mit dem PC. (RS232 Spare)
Natürlich kannst Du das Kabel auch nach dem Programmieren umstecken.
Allerdings mußt Du darauf achten das dann z.B. AVR-Studio den Com-Port nicht blockiert. Wenn Du allerdings über Bascom Programmierst, dann brauchst Du Dir keine gedankten machen, Bascom dann ist der Port nach dem Proggen frei.

Zusätzlicher tipp der schon gegeben wurde: für die Übertragung von mehr als ein paar Zeichen empfehle ich bei 115200 Baud dringend einen Bauratenquarz! Kann man ganz bequem beim STK500 einstecken und per Jumper aktivieren. Dann kann man auch größere Datenmengen Fehlerfrei übertragen.
Ich mache bei meinen Schaltungen regelmässig einige MB bei 115200 Baud (RS232) und 230400/460800 Baud (USB nach RS232)

Wenn Du weitere Fragen hast, bitte in diesen Thread.

Gruß Dnerb

tueftlerq7
05.04.2010, 10:55
Hallo Dnerb,
genau was Du geschrieben hast ist der Kern des Problems!! Durch Probieren und dem Zufall bin ich auch zum gleichen Ergebniss gekommen!
Ich Arbeite jetzt mit 2. RS232 Kabel (In/Out). Funktioniert super!

Meinen Dank an Dich und an alle, die mir geholfen haben!

Gruß
Tüftler

Dnerb
05.04.2010, 11:00
Dann ist ja gut. :-)

SChreib doch beim nächsten mal wenn Du eine Lösung gefunden hast diese auch in den Thread rein. Der nächste mit dem gleichen Problem kommt bestimmt.

Gruß Dnerb

Richard
05.04.2010, 12:12
G***** Auf die Idee das der µC nicht mit der 2. Schnittstelle
vom STK verbunden ist bin ich nicht gekommen. Das war für
mich jetzt einfach normal weil ich zum Testen immer eine 2.
serielle Verbindung dran habe.

Gruß Richard

tueftlerq7
06.04.2010, 17:43
Hallo Dnerb,
ich hatte das Problem gerade ne 1/4Std. vorher gelöst.
Selbstverständlich hätte ich es ins Netz gestellt.

Hallo Richard,
was, nach meiner Meinung, im Manual fehlt, ist ein klar strukturierter Plan für die Grundeinstellungen, für einen Anfänger, bis hin zum ersten Experiment.

Gruß

Tüftler

Richard
06.04.2010, 19:52
Des wegen und weil ich kein "Plattdeutsch" kann habe ich mir
auch eine Anleitung in D besorgt. Ganz blöd ist die Beschreibung
der isp Frequenz, das hat mir mein Händler erst erklären müssen.
die MUSS mindestens 1/4 der Ossilator Frequenz betragen, kann/darf
aber weitaus höher sein.....Ich armer Mensch bin verzweifelt weil ich
die nie genau auf 1/4 stellen konnte. :-)

chr-mt
06.04.2010, 20:10
Ganz blöd ist die Beschreibung
der isp Frequenz, das hat mir mein Händler erst erklären müssen.
die MUSS mindestens 1/4 der Ossilator Frequenz betragen, kann/darf
aber weitaus höher sein
Genau andersrum :)
Die Oszillatorfrequenz darf gerne um vieles höher sein als die ISP Frequenz.
Kannst bei einem 16 MHz Takt gerne mit 4KHz ISP Frequenz flashen.
8MHz ISP Frequenz gehen aber nicht.
Also ISP Frequenz immer kleiner als ein viertel der Taktfrequenz.

Gruß
Christopher

Richard
06.04.2010, 20:39
Schääääämmmmm.......Ich hab es gerade ausprobiert, Du hast recht!
Aber die Plattdeutsche Fehlermeldung ist schon echt hart. Auf alle Fälle
ist das STK500 aber klasse (obwohl ich jetzt keine Vergleichsmöglichkeit
habe). Selbst wenn man mal Ärger mit den Fuse Bit`s hat, die "Hochvolt"
Programmierung richtet das schon wieder. :-)

Danke für die Berichtigung!

Gruß Richard