PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit ATmega8 und max232



Björn
16.02.2005, 20:27
Hallo,
ich habe einen ATmega8 und einen max232.
Diese Programm soll laufen:


$regfile = "m8fdef.dat"
$crystal = 16000000
$baud = 9600

Do
Print "test"
Waitms 250
Loop

Am PC hab ich baudrate 9600 eingestellt.
Ich verwende ein 16Mhz Quarz.
Den jumper zwischen max und der sub-9 buchse habe ich weggelassen, deshalb erste Frage schonmal: muss vom max pin 7 oder 8 an den pin 3 der Buchse?
Oder ist das Programm/Einstellung fehlerhaft?
Grüße,
Björn[/quote]

16.02.2005, 22:34
Hi,

in deinem Programm fehlt ein end, was sicher nicht der fehler ist und es muss m8def.dat heissen. wenn du einen quarz verwendest, hast du die fuses eingestell? wenn er noch auf internal 1mhz steht, läuft derin progg nur noch mit 1/16 der geschwindigkeit. Tausch mal pin2 und 3 am mega8 bzw an der subd, vielleicht hast du einen dreher drin?

Björn
17.02.2005, 13:04
Hi,
sorry das m8def war nur ein abschreibe-Fehler.
Also die fuses hab ich eingestellt wie auf einem Screenshot den mir Trabukh geschickt hat.
Björn

Björn
17.02.2005, 17:59
woran kann das denn liegen dass nichts ankommt?
Bin mir ziehmlich sicher dass der schaltkreis richtig ist.
Björn

engineer
18.02.2005, 09:24
Schaltkreis ? Vermutest Du wirklich ein Softwareproblem?

Björn
18.02.2005, 10:20
Weiß nicht es kommt nichts an

Björn
18.02.2005, 17:01
Nochmal ausführlicher:
Es kommt kein Text an - LED-Test funktioniert.
Er scheint auch zu merken das etwas am Port dran ist - zumindest meckert er nicht wie wenn ich das Kabel abmache.

Björn
21.02.2005, 16:31
hallo Leute,

funktioniert leider immer noch nicht :(
Wie kann ich denn mit meinem Multimeter die Verbindung AVR <-> Max und Max <-> Rechner testen (Also Messstellen und Nor. Werte)?

Grüße,
Björn

darwin.nuernberg
21.02.2005, 17:07
Leg mal ein LED (mit Vorwiderstand Typisch 560R auf die TTL-Seite und sende einen etwas längeren Text.

Wenn die LED blinkt (sehr schnell und unscheinbar) dann ist zumindest für zunächst die AVR-Seite Hardwaremässig in Ordnung.

Jetzt kann es nur noch am MAX liegen.

Was für Kondesnatoren verwendest Du und sind die (falls Elkos) richtig gepolt? Ich nehme immer 1uF Kondensatoren keine Elkos (da kann sowas schon mal nicht passieren).

Vergleiche mal mit meiner Applikation (Anhang).
Wie gesagt die Kondensatoren 1uF.

Welches Terminalprogramm verwedndest Du?
Da das Microsoft interne Hyperterminal fehlerhaft empfangene Daten alsolut unterdrückt solltes Du ein anderes Programm verwednen um zu sehen ob Du garnichts oder schicht nur Müll empfängst.
Letzteres könnte auf eine falsche Baudrate oder falsches Handshake (8N1) 8-Daten, keine Parity 1-Stoppbit hinweisen.

Zum kompletten Vergleich:
schau Dir doch mein Protobed ATmega8 (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=6220) an.

Björn
21.02.2005, 17:21
Hi,
hab gerade keine Widerstände zu Hand - geht das nicht mit nem multimeter?
die Polung ist meines Erachtens richtig - Der lange draht ist +. die weiße seite mit dem balken -.
Björn

darwin.nuernberg
21.02.2005, 17:55
Zum Multimeter:

Digital Multimeter (DMM) brauchen etwas bis ein Messwertergebniss vorliegt (Sample and Hold).
Wenn dann auch noch Autorange vorhanden und eingeschaltet ist, hast du so gut wie keine Chance was zu erkennen.
Die Pegel änder sich zu schnell.

Analogmultimeter könnten da evt. etwas mit dem Zeiger zucken (aber wer kauft denn noch ein Analoges Meßgerät in userer Bequemgesellschaft, zumal man ja da noch dabei denken muß {welche Skala, welcher Meßbereich und Parallaxenfehler})

Besser wäre da ein Logiktester. Der ist sowieso (meiner Meinung nach) fast unverzischtbar spez. bei Eigenentwicklungen. So eine LED ist eigentlich nichts anderes als ein Logigtester simpelster Bauart. Natürlich darst Du auch ein Luxoriöseres Gerät zulegen (ab 15 bis 30 Euronen)

Wieso hast Du keinen Widerstand.
Du hast doch den Widerstand jetzt in einen Laden zu gehen und welche zu kaufen oder 8-[

Grundausstattung sollte schon sein.

Björn
27.02.2005, 15:09
Hallo,

also folgendes Programm


$regfile = "m8def.dat"
$crystal = 7372800
$baud = 9600

Config Portb = Output
Portb.2 = 1

Do

Print "YEAAHH _ MASTEREYE - Einlanger Text muss her sonst geht das nicht weil"
Print "Der Test susd hsdajkhsdfdssssssssssssssdajkhsdfdssssssssssssssda jkhsdf"
Print "sdajkhsdfdssssssssssssssdajkhsdfdssssssssssssssdaj khsdfdsssssssssssss"
Print "sdajkhsdfdssssssssssssssdajkhsdfdssssssssssssssdaj khsdfdsssssssssssss"
Print "sdajkhsdfdssssssssssssssdajkhsdfdssssssssssssssdaj khsdfdsssssssssssss"
Print "sdajkhsdfdssssssssssssssdajkhsdfdssssssssssssssdaj khsdfdsssssssssssss"
Print "sdajkhsdfdssssssssssssssdajkhsdfdssssssssssssssdaj khsdfdsssssssssssss"
Waitms 2000

Loop
End

hat be LED an GND und TxD(des AVR) folgendes ergeben:
Die LED an PortB.2 zum Test leuchtet,
die andere LED gar nicht.
Die LED ist natürlich heile.
Was heißt das denn für mich, der AVR ist ja nicht ganz kaputt aber ganz das richtige macht er ja auch nicht - oder ist das Programm falsch?
Es sei noch gesagt dass ich jetzt ein 7,37... Quarz verwende.
Björn

Björn
02.03.2005, 15:27
Hallo :D

Kann mir keiner sagen was ich mit dem Testergebnis anfangen kann?
Hat der ATmega einen Schaden oder was?
Ich komme einfach nicht weiter :(

Björn

PicNick
02.03.2005, 15:45
Drei Versuche vor dem Suizid:
1 RX / TX vertauschen (Pin-stecker umdrehen) und gucken
2 Ich hatte mal einen Lötfehler IM PC <> Board Kabel (empfangen ging, senden nicht)
3 COM port/Kabel testen: Kabel vom AVR abstecken, 2 u. 3 (längere Seite) verbinden
Terminal: local Echo off
schreiben, wenn Kabel funktioniert, siehst du, was du schreibst, sonst nicht.