PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Terminal Fehler mit myAVR-Board



FlashCube
25.04.2006, 20:10
Hi

Ich habe ein myAVR board (www.myavr.de) mit ATmega8L chip den ich in Bascom programmiere.

folgendes problem:
Wenn ich mit print etwas im terminal ausgeben will kommt nichts an.
Das Kabel habe ich schon getestet (Rx mit Tx verbunden): funktioniert wunderbar.
Die Terminal einstellungen sind auch auf standart.
Komischerweise kann ich was empfangen wenn ich den Tx-pin vom Chip direkt mit einem Draht mit dem Rx-Loch des Kabelsteckers verbinde.
Allerdings kommt dann nur irgentwas kryptisches an ;(

also folgender code:

$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600
Do
Print "Test"
Wait 1
Loop

und im terminal kommt das hier an:
...StTëUStTëUStTëUStTëUStTë...

ansonsten funktioniert der chip super...
ich wäre sehr dankbar für ein paar nützliche tips... bin nämlich schon am verzweifeln... danke

Jahn Kohlhas
25.04.2006, 20:41
tu mal die quarzfrequenz richtig im programm deklarieren das ist wichtig sonst berechnet bascom die baudrate falsch ;-)

§crystal = 3686400

FlashCube
26.04.2006, 07:25
eigentlich sollten die 8MHz stimmen... der chip stand nämlich auf "internal 8MHz"... jetzt hab ich ihn auf "external" gestellt und er reagiert nicht mehr! ;(
"could not identify chip"... hab ich ihn jetzt gefetzt?

Jahn Kohlhas
26.04.2006, 10:16
also soweit ich weiß hat der m8 einen internen 1MHz oscillator und keine 8MHz... wenn du den internen osci nimmst musst du diesen kalibrieren um einen saubere baudrate zu erhalten... die myAVR-boards werden so weit ich weiß standardmäßig auf externen quarz geschaltet und auch so ausgeliefert... du hast an den fusebits rumgefingert? hast du das mit dem programm von myavr gemacht oder mit bascom... wenn du es mit bascom gemacht hast ist die wahrscheinlichkeit groß das du die falsche kombination der bits gewählt hast und dann ist der m8 erst mal für dich tot :-( denn ich denk mal du hast ihn auf external oscillator gestellt und das ist definitiv falsch denn du hast keinen externen oscillator dran sondern einen externen quarz !!! sollte das so sein kommst du so erst mal nicht weiter... es sei denn du willst dein myavrbord umbauen

gruß jahn

hrei
26.04.2006, 10:26
also soweit ich weiß hat der m8 einen internen 1MHz oscillator und keine 8MHz...

Der M8 hat einen internen 8MHz Resonator.

Henrik

FlashCube
26.04.2006, 10:52
ich hab die fusebits mit dem bascom programmer umgestellt...
wie gesagt stand es vorher auf "internal 8MHz" und damit hat eigentlich alles funktioniert (auch servos)...
umgestellt hab ich ihn auf "external irgentwas"... ich weiss leider nicht mehr, was da genau stand, weil ich ja jetzt garnicht mehr zu den fusebits komme ;(... aber es war glaube ich der erste eintrag in der auswahlliste...
auf was hätte ich es denn stellen müssen?

kann man den chip nicht irgentwie hardwaremäßig resetten..?

Jahn Kohlhas
26.04.2006, 12:01
hm, alos im m8 datenblatt von Atmel steht das hier

The device is shipped with CKSEL = “0001” and SUT = “10” (1 MHz Internal RC Oscillator, slowly rising power).

man kann ihn umschalten auf 2, 4, oder 8 MHz aber das hat nix mit der werkseinstellung zu tun die liegt definitiv bei 1MHz ... dann muss er das teil ja schon mal umgeschalten haben... und wenn ist hier auch wieder die kalibrierung nötig, erschwerend kommt dazu das 8MHz ansich schon mal keine saubere baudrate zuläßt...

warum bist du nicht beim exterenen Quarz geblieben? der ist doch OK und du kannst lupenreine 0% fehler-baudraten erzeugen

wenn du die erste einstellung in bascom genommen hast die wo extern dran stand hast du External Clock ausgewählt und das ist falsch :-( das hat mit einem externen Quarz nix zu tun... die richtige einstellung wäre die letzte gewesen external XTAL das ist ein externer Quarz...

mensch an den fuse bits probiert man nicht rum! erst datenblatt lesen dann wenn man sich gaaaaanz sicher ist schraubt man an den fusebits... die foren sind voll von threads wo leute genau in dieses falle getappt sind :-(

lösung wäre du lötest den quarz aus und baust dir eine taktquelle die ein TTL taktsignal erzeugt und hängts die an an XTAL1 (glaub ich... einfach ins datenblatt gucken) oder eben ein neuer m8...

gruß Jahn

FlashCube
26.04.2006, 12:35
alles klar...
fehler sind dazu da um aus ihnen zu lernen...
hab mir schon neue chips bestellt... (zur sicherheit gleich mal 3)...
ich hatte es auf intern gestellt, weil mit dem quaz die servos glaub ich nicht funktioniert hatten...

danke für eure hilfe!

Jahn Kohlhas
26.04.2006, 13:04
wieso sollen die servos mit dem quarz nicht funktionieren? ... das wäre ja gleich mal die nächste baustelle zum helfen ;-)

FlashCube
26.04.2006, 13:17
;)
ich sag bescheid, wenn die neuen chips mit dem quarz die servos nicht steuern können...

bis dann ;)

FlashCube
08.05.2006, 17:11
So... neuer Chip - neues Glück (hoffentlich)...

Mein MyAVR-Board ist also neu bestückt... aber das terminal funktioniert immer noch nicht ;(
Ich hab das Fusebit auf 1111:1111 - External XTAL gestellt... das sollte doch nun richtig sein?

mit folgendem code habe ich es versucht:

$regfile = "m8def.dat"
$crystal = 3686400
$baud = 9600
Config Portb = Output
Do
Print "hallo"
Portb.0 = 1
Wait 1
Portb.0 = 0
Wait 1
Loop
End

Die LED an Portb.0 blinkt auch ganz brav im sekundentakt, nur leider kommt das "hallo" nicht an...
das einzige was ankommt ist irgentein kryptischer müll... und das auch nur wenn ich den Tx-pin mit einem Kabel an den 2. Pin des seriellen Steckert verbinde...
Die Compiler einstellungen sind die gleichen wie im code und er zeigt mir auch "0.00% Error" bei der Communication an...

Ich weiss nicht weiter...

Jahn Kohlhas
08.05.2006, 20:01
die fuse-einstellung ist so ok, hast du mal mit quickProg von myAVR das testprogramm drauf gebrannt und das board durchgetestet? um mit der seriellen zu arbeiten brauchst du nichts zu verbinden RxD und TxD ind bereits verbunden... stimmen die einstellung für das terminal mit der baudrate im programm überein? bascom hat manchmal einfach andere defaultwerte...

gruß Jahn

FlashCube
12.05.2006, 16:04
Hi

Ich habe das Testpragramm auf mit meinem PC und dem Laptop ausbrobier und beide mal hat alles funktioniert bis auf die Kommunikation über den COM-Port... ich hab auch nochmal ein paar kritische Lötstellen mit dem Multimeter getestet... alles ok...
Ich weiss nicht weiter... kann es sein dass die fusebits standartmässig falsch eingestellt sind?...

FlashCube
12.05.2006, 18:26
JUHU!
PROBLEM GELÖST:

Ich hatte ein Null-Modem-Kabel benutzt... das war falsch...
Denn dadurch waren Rx und Tx vertauscht...

danke für eure Mühe...