Mega128 und Hardware-UART (Bascom)

Gast #498073
Lesenswert?

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
Gast #498143
Lesenswert?

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.... :-)
Gast #498144
Lesenswert?

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?
Gast #498184
Lesenswert?

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...
Gast #498196
Lesenswert?

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
Gast #498197
Lesenswert?

> 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...
Gast #498201
Lesenswert?

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.
Gast #498210
Lesenswert?

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
Gast #498218
Lesenswert?

> 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)
Gast #498227
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren