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
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.
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
Hast du auch auf externen Takt umgestellt ? Normaler Auslieferungszustand: interner 1 MHz Oszillator enabled
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
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
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.