Forum: Mikrocontroller und Digitale Elektronik Wechsel von ATMega16 auf 128 Probleme?!?


von Thomas (Gast)


Lesenswert?

Halli hallo an Alle,

ich bin seit kurzem von einem Atmega16 auf einen Atmega 128
umgestiegen, aufgrund des größeren internen EEProms. Ich habe beim
ATmega16 hauptsächlich die I/O-Ports ganz normal genutzt. Jetzt wollte
ich mein Programm umschreiben, aber es scheint nicht zu funktionieren.
Kann es sein das man irgendetwas Besonderes beachten muss, wenn man die
I/O-Ports als Ausgänge benutzen will?...

Vielen Dank für Eure Infos...

Ciao Thomas

von Christof Krüger (Gast)


Lesenswert?

Kristallkugel ist leider (mal wieder) in Reperatur... du musst schon
genauer werden. Programmierst du mit C oder ASM? Was bedeutet "scheint
nicht zu funktionieren"?

von Thomas (Gast)


Lesenswert?

Hi Christof,

ich bin mit Absicht nicht genauer geworden, denn wenn ich jetzt alles
erklären würde, könnte ich hier ne 50seitige Ausführung schreiben. Ich
programmiere in C. Und ich wollte nur wissen ob man da was beachten
muss. Ich meine so funktionieren die Ports schon alle. Wahrscheinlich
nur nicht immer richtig...???

Ahoi Thomas

von Gunter (Gast)


Lesenswert?

Hi Thomas,

schau mal im M128 Manual unter
"ATmega103 Compatibility Mode".
Der ist per Default EIN-geschaltet und bringt einige Besonderheiten
z.B.:
"Port G serves alternate functions only (not a general I/O port)"

hth
Gunter

von Thomas (Gast)


Lesenswert?

HI Gunther,

vielen Dank...diesen Modus habe ich schon ausgeschalten...
versuche heute im Laufe des Tages nochmal meinen Fehler zu finden...

Danke Euch

Ciao Thomas

von juergen klauck (Gast)


Lesenswert?

hi !!
vieleicht bei oberen io ports nicht sts fuer out genommen?
hat mich gut nerven gekostet ;-}

von Thomas (Gast)


Lesenswert?

Hi Jürgen,

klingt interessant...was genau meinst Du damit? Was ist denn sts und ab
welchen Ports? Vielleicht könntest Du mir etwas schnell antworten...wäre
wichtig...falls es mein Problem lößt.

Danke Thomas

von m. merten (Gast)


Lesenswert?

Gegenüber dem mega16 liegen beim mega128 einige I/O-Register und Ports
nicht mehr im standard I/O Bereich 0x00-0x3F sondern im SRAM Bereich
0x60-0x100. Ebenso sind daher bei einigen Peripherie-Registern keine
direkten Bit-Manipulationen mehr möglich. Ältere C-Compiler hat da bei
der Code-Generierung ihre Probleme, ist aber bei den aktuellen
Versionen bei allen behoben. Wenn du in ASM kodierst sind natürlich die
Änderungen  "zu Fuß" erforderlich, oder du ersetzt die kritischen
Befehle durch entsprechende prozessorunabhängige Macros.

von Thomas (Gast)


Lesenswert?

Hi Jürgen,

vielen Dank für Deine schnelle Antwort...
ich benutze WinAVR...in der neusten Version. Ich hoffe da wird soweit
alles von selbst erledigt. Gestern habe ich auch alle Signale nochmal
mit dem Oszi genau nachgemessen und wenn ich mich nicht getäuscht
habe,sind diese identisch mit denen vom ATmega16...und trotzdem
funktioniert die Applikation nicht :-(. Den Mega 16 habe ich auf dem
STK500. Den Atmega128 auf eine eigene Platine gebaut.Gibt es vielleicht
da noch eine Fehlermöglichkeit, dass auf dem STK500 die Ports mit
externen Pull Ups oder so versehen sind....oder irgendsowas?
Versteh es selbst nicht, finde keinen richtigen Unterschied. Verwende
hauptsächlich erstmal die Ports A-D...

Danke Thomas

von m. merten (Gast)


Lesenswert?

Alle Vcc GND AVcc AGND Anschlüsse korrekt angeschlossen und Abblock C`s
verwendet?

von juergen klauck (Gast)


Lesenswert?

hallo Thomas!
die antworten kammen ja von mr. merten, aber wenn du nur die unteren
ports benutzt scheint es ja vieleicht wirklich ein hardware problem zu
sein.
ich muss ja puenklich feierabend machen ;-}
koennte dir das helfen ??
http://www.ethernut.de/en/download.html   ------ enut130f.zip
eagle light gibts umsonst bei cadsoft!!!
viel glueck juergen

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
Noch kein Account? Hier anmelden.