Hallo, ich möchte an meinem 128er einen HW-UART benutzen (egal ob 1 oder 2). Laut Bascom Hilfe würde mit folendem Code automatisch der erste benutzt: $regfile = "m128def.dat" $crystal = 16000000 $baud = 19200 Do Print "möp" Waitms 50 Loop End Leider spuckt er nichts an seinem TxD Pin aus (mit nem Oszillot geprüft). Woran kann das liegen? Wie kann ich den 2ten HW-UART benutzen? Bisher krieg ich nur Fehlermeldungen, wenn ich folgendes versuche: $regfile = "m128def.dat" $crystal = 16000000 $baud = 19200 Do Print #2, "möp" Waitms 50 Loop End Kann es daran liegen, dass ich fälschlicherweise meinen ISP zuerst an MISO und MOSI hatte, anstatt an RxD und Txd? Da kann doch eigentlich nichts kaputtgehen... P.S. Mit meinem Mega8 läuft das schon ohne Probleme... Ratlose Grüße
Vielleicht funktioniert das Programmieren an sich nicht? Laß doch mal parallel oder alternativ zum Print-Befehl einen Ausgang an- und ausschalten (toggle) - wenn Du dann immer noch nichts auf dem Oszi siehst, hast Du woanders ein Problem.. :-)
Versuchs mal mit: $regfile = "m128def.dat" $crystal = 16000000 $baud = 19200 Config Serialout1 = Buffered , Size = 20 Open "COM2:" For Binary As #1 Do Print #1 , "MÖÖÖÖP" waitms 100 loop Sollte funktionieren.... :-)
Ja, das probiere ich gerade und noch nichtmal das klappt richtig! Mit dem Mega8 war das alles kein Problem, wo ist denn jetzt der riesen Unterschied zum Mega128? Was ich probiert habe, ist, dass ich den internen Oszillator auf 1,2,..8 MHz gestellt habe (per fuse bits). Dann habe ich per toggle einen port geschaltet und kam mit externem 16Mhz Quarz auf maixmal 1,1Mhz am port (per toggle). Kommt mir langsam vor, aber vielleicht liegt das ja an bascom. Wenn ich das ganze jetzt aber manuell machen will: Do portc.0 = 0 waitms 10 portc.0 = 1 waitms 10 loop geht es nicht. Muss ich noch etwas anderes beim mega128 beachten als beim mega8?
Also das togglen funktioniert, aber port an, port aus geht nicht, da macht er nur einen impuls von ein paar ns, ansonsten ist der port dauerhaft an. Bei michas code geht auch gar nichts, der TxD bleibt einfach tot. Der MAX232 ist aber richtig angeschlossen, das hab ich mehrfach geprüft und gemessen. Hab jetzt erstmal wieder auf den internen 1MHz umgeschaltet. Ich bin echt am Ende mit meinen Idden...
Also wenn du nicht mal nen Port an bzw. ausschalten kannst, dann würd ich da mal den Hebel ansetzen und nicht den 2ten vor dem 1ten Stockt bauen. Kannst du überhaupt vernünftig flashen? Benutzt du die richtigen TDI/TDO Ports (ist beim Atmega128 anders als bei den anderen)? Sepp
> Muss ich noch etwas anderes beim mega128 beachten als beim mega8?
Naja, erste Vermutung wäre gewesen: Falsche Anschlüsse für den
Programmer benutzt. Aber da Du sagst, dass es mit dem Programmieren an
sich klappt, scheidet das wohl aus...
> Benutzt du die richtigen TDI/TDO Ports
Beim Mega128 heißen die "PDI" und "PDO"...
Ja, das mit dem Print hab ich auch erstmal auf eis gelegt. Damit hatte ich gleich angefangen, weil ich das aufm Mega8 schon ohne probleme alles gemacht hab.. Am Anfang hatte ich die MISO und MOSI Pins am 128 benutzt, aber das ist falsch, das hab ich dann auch gelesen. Jetzt hab ich es so wie im Datenblatt auf S. 304: MOSI = PE0, also Pin 2 MISO = PE1, also Pin 3 Ponyprog meldet auch keine Fehler und die fuse bits kann ich auslesen und schreiben, von daher gehe ich davon aus, dass der ISP schonmal fehlerfrei geht.
Ich seh grad dass UART und ISP die gleichen beiden Pins haben, von daher würd ich den ISP-Adapter abziehen wenn du mit dem Programmieren fertig bist und dann UARTen willst. Welche Ports hast du denn versucht ein und aus zu schalten? Sepp
Oh ja .. den sollte man ausmachen, findet man in den Fuses. Hatten wir auch schon mal Probleme. Den Kompatibilitätsmodus ausmachen.
Ja, da habe ich mir jumper eingebaut. Portc.0 und porte.7 und den gesamten portc auch nochmal..
JAAA!!!!!!! :D Oh man.. 6 stunden sag ich nur... DANKE! Es war das Kompabilitäts Ding!
> M103 Kompatibilitätsbit? > Aha - und was ist das? Die M103 Compatibility Fuse ist ein fieses kleines Fusebit, das dafür sorgt, dass der Mega128 sich so verhält als wäre er ein Mega103. Das bedeutet, dass bestimmte Funktionen nicht verfügbar sind. Dieses Fusebit ist im Auslieferungszustand gesetzt. Wenn Du den Mega128 als solchen verwenden willst, dann muss dieses Bit gelöscht werden (also auf "unprogrammed" gesetzt werden)
Das Bit ist echt ein fieses kleines Drecksbit, das sollte sich ATMEL mal was überlegen. Genauso dass die ISP Pins nicht wie bei den anderen uC´s auf MISO/MOSI liegen. Sepp
Richtig Sepp, anders herum wäre ein Schuh draus geworden. Wenn ein 128er Ersatz für den 103er sein soll, dann bitte das Bit setzen. Wegen dem seriellen Brennen habe ich mal einen Appl. Ing von MSC gefragt. Der meinte, im Zusammenhang mit den PEN-Pin ist sowas wie fernprogrammierung möglich. Deshalb auch die USART0 als Programmierschnittstelle. MW
Ok, jetzt geht auch der UART wunderbar, ich bedanke mich nochmal recht herzlich für die Hilfe!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.