mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 8535 durch Mega16 ersetzen


Autor: Volker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

meine kleine Applikation ist das letzte Jahr über beständig gewachsen. 
Langsam geht mir der Speicher im 8535 aus. Kann ich diesen durch z.B. 
einen Mega16 in der Schaltung ersetzen? Pinkompatibel scheinen sie ja zu 
sein, muss ich etwas besonderes beachten? Auf der Atmel Homepage konnte 
ich leider keine Infos dazu finden.
Vielen Dank für die Tipps :-)

Volker

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du mußt nur die Interrupt Tabelle anpassen (Mega 16 mehr Einträge und 2 
Worte Länge pro Eintrag für JMP xxxx anstelle von RJMP beim 8535). 
Ebenso mußt du evtl. einige RCALL und RJMP Befehl bei 
Assemblerprogrammierung durch CALL umd JMP ersetzten, da der MEGA16 >8 
Flash hat und daher mit RCALL und RJMP nicht mehr der komplette Speicher 
adressierbar ist. In einigen Fällen ist auch eine Anpassung der UART 
RX/TX Routinen erforderlich, da dieser nunmehr über ein FIFO verfügt.

Autor: Ralf Engel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe z.Z. das gleiche Problem. Ich habe testweise Code verfasst für den 
8535 (Interruptroutine lässt eine LED im Sekundentakt aufblinken, 
außerdem ist am Port C (Datenbus) und Port A (Kontrollbus) ein 
graphisches LCD angeschlossen. Das funktioniert mit 8535 ganz gut, nun 
sollen noch ein paar zusätzliche Routinen rein. Der gleiche Code läuft 
aber auf dem Mega16/32 nicht mehr richtig. Interrupttabellen sind 
angepasst, ansonsten gleicher Code und nach Austausch des AVR blinkt 
zwar die LED, aber das LCD dreht total am Rad. Ich habe keinen 
speziellen Code benutzt, Takt ist 4 MHz, alle Delays sind mit Schleifen 
programmiert.

Gibt's da noch andere Inkompatibilitäten, evt. mit den Ports?

Das LCD funktioniert, sobald der 8535 wieder drinsteckt, ohne 
Probleme...

Gruß   R A L F

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du auch auf externen Takt umgestellt ?
Normaler Auslieferungszustand: interner 1 MHz Oszillator enabled

Autor: Volker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klingt ja erstmal nicht unmöglich :-) Ich habe eigentlich alles in C 
programmiert. Es sollte beim AVR-GCC doch eigentlich reichen den 8535 
druch den Mega16 zu ersetzen (Registerdef. usw), dann müsste es 
rascheln? Die UART Routinen stehen noch aus und ich würde die dann 
gleich auf dem Mega16 entwickeln, um so besser, dass der nen 
integrierten Fifo hat.

Viele Grüsse

Volker

Autor: Ralf Engel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, bin mal ein gutes Stück weiter:

wichtig bei der Migration von 8535 auf mega16/32 sind die Fuses! Bei mir 
war z.B. das Problem, dass das Flag JTAGEN gesetzt war und dadurch der 
PORT C blockiert war. Das ist im Auslieferungszustand per default so! Am 
besten alle Fuses mal durchgehen anhand des Datenblattes und überprüfen, 
ob sie richtig gesetzt sind. Die meisten Brennprogramme erlauben das 
Auslesen und Setzen der Fuses.

Dummerweise habe ich mir dabei die Clock-Einstellungen alle auf 0 
gesetzt (externer Takt) und kann nun nicht mehr auf den AVR zugreifen. 
Die sollten bei Quarzbetrieb alle auf 1 gesetzt sein. Mal sehen, wie ich 
das wieder rückgängig mache :-(


Gruß   R A L F

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.