www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Pin-Kompatibler Chip zu Mega32 mit mehr Speicher?


Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,
mein Mega32 ist voll, jetzt suche ich einen pin und register kompatiblen 
Chip mit mehr Speicher, leider werde ich bei der AVR-Auflistung nicht 
schlau. Ich suche im TQFP-Design....weiß da jemand was? Vielen Dank.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Atmega644PA

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ATmega1284P
128kB Flash,
16kB SRAM


Peter

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auf auf die Gefahr hin, daß ich jetzt gehauen werde und an das Datenblat 
verwiesen werde: Besagte Chips sind auch Register-Kompatibel? Also meine 
mühsam angesammelte Bascom/Assembler Routine für RS232 etc kann 
übernommen werden?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Auf auf die Gefahr hin, daß ich jetzt gehauen werde und an das Datenblat
>verwiesen werde: Besagte Chips sind auch Register-Kompatibel?

Hiermit erledigt;) Es ist doch nicht zu viel verlangt
dort in Register Summary selber zu vergleichen, oder?

Die sind nicht Register kompatibel.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also die neue Atmel Seite ist ganz großer Mist, man findet rein 
garnichts.
Und dann diese winzige Schlüsselloch-Ansicht auf nem 1920-er Monitor. 
Skalieren ist wohl ein Fremdwort für Atmel.


Hier der Link:
http://www.atmel.com/dyn/resources/prod_documents/...

Ich hab ihn nur deshalb finden können, weil ich weiß, daß es ihn früher 
gab.
Ein Neuling hat absolut keine Chance, irgendwas zu finden.
Und noch dazu die völlig unsinnige Unterscheidung Tiny und Mega, sind 
beides 100% AVRs, die Tiny habe nur weniger Pins.
Das ist mit Abstand die schlechteste Webseite.
Schäm dich, Atmel!


Peter

Autor: Klaus De lisson (kolisson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Max (Gast) ,

ich denke, du machst einen Gedankenfehler!
Die bisherigen Aussagen bezüglich M644 oder gar M1284 sind
erstmal vollkommen richtig. Diese sind Pinkompatibel.

>Besagte Chips sind auch Register-Kompatibel? Also meine
>mühsam angesammelte Bascom/Assembler Routine für RS232 etc kann
>übernommen werden?

Da kann man nur sagen, dass diese Ersatztypen eben nicht vollkommen
Registerkompatibel sind.

Für deine Bascom Programme ist das kein Problem, da du diese
Quelltexte ja einfach neu kompilieren kannst.

Bei ASM mit einem Assemblercompiler verhält es sich genauso.

problematisch wird es erst dann, wenn du nur ein HEX-File hast,
welches für einen anderen MC compiliert wurde, oder wenn dein ASM.Code
z.B. ein Inline Code ist oder du dir dein Assmbler selbst assemblert 
hatst.

Gruss Klaus

p.s.
Es gibt da auch solche Infosheets von Atmel bezüglich
der Migration.

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe im Bascom direkt register angesprochen (naja, der die Software 
mal erstellt hat wohl eher;) )

Sowas zb:
Reset Ucr.3
Reset Ucr.4
Ucsrb.txen = 1
Ucsrb.txen = 1
If Ucsra.rxc = 1 Then              Get_byte = Udr

Jetzt stellt sich die Frage, ob das so einfach übernommen werden kann...

Autor: Trööt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Normalerweise (unterstreiche das Wort doppelt) müsste es genügen, wenn 
Du am Anfang des Bascom-Programmes den neuen Prozessor einträgst. Dann 
müsste nämlich Bascom die Registeradressen entsprechend umhängen. 
Vorrausgesetzt Du verwendest eine Version von Bascom, die den neuen 
Prozessor schon kennt und die für ihn nötige Parameterdatei mitgebracht 
hat.

Du wirst aber nicht umhin kommen, es einfach auszuprobieren und dann zu 
schauen, was eventuell nicht funktioniert. Man nennt das auch Debugging. 
;-)

Gruß

Trööt.

Autor: Lehrmann Michael (ubimbo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter Dannegger schrieb:
> Also die neue Atmel Seite ist ganz großer Mist

Nicht nur die Website ...

Autor: Chris L. (kingkernel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Register heissen in den Größeren Controllern auch anders. So wird 
aus UDR im mega32 ein UDR0 im mega644.

Autor: Detlev T. (detlevt)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter Dannegger schrieb:
> Und noch dazu die völlig unsinnige Unterscheidung Tiny und Mega, sind
> beides 100% AVRs, die Tiny habe nur weniger Pins.

Die Namen als solche sind sicher Marketing-Geklapper. Es gibt aus meiner 
Sicht aber schon deutliche Unterschiede. Tinys haben keine 
Hardware-Multiplikation, keinen UART (vom 2313 einmal abgesehen) und 
auch keine separaten SPI/TWI-Schnittstellen, sondern ein 
Universal-seriell-Dingsbums, und auch vergleichsweise wenig SRAM.

Dass grundsätzliche Struktur und der Befehlssatz vom kleinsten Tiny bis 
zum größten Mega praktisch gleich sind, ändert nichts daran, dass es 
doch deutlich unterschiedliche Einsatzbereiche für diese beiden 
"Familien" gibt.

Zur ursprünglichen Frage: Atmel würde sicher den Controllern nicht 
unterschiedliche Namen geben, wenn sie identisch wären. Irgendwelche 
Unterschiede wird es schon geben.

Autor: Klaus De lisson (kolisson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Autor: Max (Gast) ,

ich habe hier mal das Gefühl, dass die beteiligten Redner
nicht soviel über Bascom wissen.

natürlich sind solche Zugriffe wie Reset Ucr.3" sehr systemnah
und werden beim Umstieg evt. Probleme machen.
Insbesondere für die Timer  gab es einige Umbenennungen.
Allerdings sollte es auch für dich möglich sein, im Vergleich der
Datenblätter die entsprechenden Befehle abzuändern.

Gruss Klaus

.. du kannst ja beim compilieren mal einfach nen anderen processor 
angeben.
Dann bekommst du ja die fehlermeldungen.

Autor: Detlev T. (detlevt)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klaus De lisson schrieb:
> ich habe hier mal das Gefühl, dass die beteiligten Redner
> nicht soviel über Bascom wissen.
>
> natürlich sind solche Zugriffe wie Reset Ucr.3" sehr systemnah
> und werden beim Umstieg evt. Probleme machen.

...und das gilt für alle Compiler, das ist kein BASCOM-spezifisches 
Problem. Nur wenn man die Bibliotheken benutzt, "weiß" der Compiler, was 
man mit der Hardware machen will und kann sich darauf einstellen. Man 
kann nicht beides haben: Extrem hardwarenah programmieren und von der 
Hardware abstrahieren.

Selbst innerhalb einer Linie (z.B. ATMEGA48/88/168/328) sind die 
Controller nicht immer binär-kompatibel. Da bin ich reingefallen, als 
ich ein ATMEGA88-Compilat auf einem ATMEGA328 ausführen lassen wollte. 
Weil mehr als 8kB mit dem rjmp-Befehl nicht abzudecken sind, sind ab dem 
ATMEGA168 die Einträge für die Interruptvektoren nämlich doppelt so 
groß. Und damit ändert sich natürlich auch deren Position im Speicher.

Es bleibt einem leider nichts anderes übrig, die Datenblätter genau zu 
vergleichen, wenn man einen Controller durch einen anderen ersetzen 
will.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Es bleibt einem leider nichts anderes übrig, die Datenblätter genau zu
>vergleichen, wenn man einen Controller durch einen anderen ersetzen
>will.

Oder, wenn vorhanden, die 'Migration Notes' zu konsultieren.

MfG Spess

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Max schrieb:
> Sowas zb:
> Reset Ucr.3
> Reset Ucr.4
> Ucsrb.txen = 1
> Ucsrb.txen = 1
> If Ucsra.rxc = 1 Then              Get_byte = Udr

Wenn BASCOM doch schon Bitnamen unterstützt (txen, ...) warum sollte man 
dann noch so Sachen wie "Reset Ucr.3" schreiben?

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mh, wie würdest du es denn dann schreiben?

Autor: Charly B. (charly)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Max schrieb:
> Mh, wie würdest du es denn dann schreiben?

genauso wie zb beim:
Ucsrb.txen = 1
nur halt:
Ucr.wasweisich = 0

mit set u. reset waehre i vorsichtig, speziell
in arrays macht bascom probleme damit und da
sucht man stunden

wenn du immer registernamen verwendet hast sollte
die prozesseorumstellung quasi problemlos funktionieren

viel erfolg

vlG
Charly

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also aus  Reset Ucr.3 wird denn Ucr.3=0 (0 Ist doch reset,oder)?

Autor: Klaus De lisson (kolisson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
yes

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andre Leute würden den Hardware-Krams sauber wegkapseln und müssten dann 
nicht an 100 Stellen im Programm suchen, ob noch irgendwo irgendwelche 
Register vergessen wurden...

Autor: Charly B. (charly)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
FAST richtig

die 3 hat auch einen Namen im Register, das spart die
spaeter das nachguggen und iss f. 'fremde' auch besser
lesbar

also nochmal:

Ucr.NameVonBit3 = 0

vlG
Charly

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.