Hallo zusammen.
Für ein neues Projekt (RGB Cube) möchte ich endlich mal einen Atmega mit
256kB verwenden. Muss ich da etwas bestimmtes beachten?
1. Verläuft die Grundbeschaltung wie bei kleineren Atmega (z.B.
Atmega8)? Das heißt Quarz mit zwei mal 22pF, ISP über MISO MOSI & Co
oder gibt es da Unterschiede oder Zusätze, die ich beachten muss? Im
Grunde soll der Atmega vernünftig laufen, über ISP (10 poliger
Wannenstecker) programmierbar sein und alle PortPins auf Wannenstecker
führen. Ich ätze die Platine und frage lieber, bevor ich etwas vergesse
:)
2.
Gibt es einfache Sprungbefehle ala jmp und call oder ähnlich, mit denen
ich in Funktionen und zurück springen kann? Hatte über Probleme mit
Adressgrößen und SPrungweiten gelesen... Sonst würde ich einen Atmega
mit 128 kB nehmen, wenn das sonst zu aufwendig wird.
3.
Ich programmiere den Atmega256xx in Assembler mit AVR Studio 4. Das
sollte kein Problem für ACR STudio sein, gell? Blöde frage...
Liebe Grüße und vielen Dank,
Dirk
@ Dirk (Gast)
>Für ein neues Projekt (RGB Cube) möchte ich endlich mal einen Atmega mit>256kB verwenden. Muss ich da etwas bestimmtes beachten?
Mehr oder weniger.
>1. Verläuft die Grundbeschaltung wie bei kleineren Atmega (z.B.>Atmega8)?
Ja.
>Gibt es einfache Sprungbefehle ala jmp und call oder ähnlich, mit denen>ich in Funktionen und zurück springen kann?
Ja sicher.
>Ich programmiere den Atmega256xx in Assembler mit AVR Studio 4.
Einen Controller mit 256kB Flash per Assembler programmieren ist nicht
sonderlich sinnvoll. Bei solchen Größen nimmt man C.
> Das>sollte kein Problem für ACR STudio sein, gell? Blöde frage...
In der Tat.
MFG
Falk
Hallo Falk.
Schonmal danke für die ersten Infos.
Warum kein Assembler? Komme damit ganz gut klar und weiß gerne, wieviel
Takte der Mikrocontroller nun wirklich braucht.
Ein großer Teil des Flashspeichers fülle ich ja mit Bilddaten. Die
eigentlichen Funktionen und Programmabläufe sind insgesamt vielleicht
1-2 kByte groß. Also so unübersichtlich wird es sicher nicht.
Gruß,
Dirk
Dirk schrieb:> ISP über MISO MOSI & Co> oder gibt es da Unterschiede oder Zusätze, die ich beachten muss?
Das geht da nicht, da werden die UART-Pins verwendet.
Hi
>Grundsätzliches zum Atmega256
Einen ATMega256 gibt es nicht. ATMega2560 oder ATMega2561.
> ISP über MISO MOSI & Co
Kommt auf den ATMega an:
ATMega2560 MSIO, MOSI und Co
ATMega2561 TXD0, RXD0, SCK
MfG Spess
Also mit einem Atmega 2560 sollte ich meine geliebte ISP Schnittstelle
nutzen können, gell?
Vielen Dank für den Hinweis. Denn 12 Euro sind schon ärgerlich für nenn
Controller, der sich dann nicht programmieren lässt.
Jetzt kenn ich auch endlich mal einen Unterschied zwischen ATmega2560
und 2561.
Dankeschön!
Dirk
@ Dirk (Gast)
>Warum kein Assembler?
Weil man bei 256kB Programm mal fix den Überblick verliert.
>Komme damit ganz gut klar und weiß gerne, wieviel>Takte der Mikrocontroller nun wirklich braucht.
Braucht man nur selten. Und auch in C kann man im Simulator Takte
zählen.
>Ein großer Teil des Flashspeichers fülle ich ja mit Bilddaten. Die>eigentlichen Funktionen und Programmabläufe sind insgesamt vielleicht>1-2 kByte groß. Also so unübersichtlich wird es sicher nicht.
Dann ist das OK. Wenn gleich man dann möglicherweise mit einem seriellen
EEPROM oder Flash besser dran ist.
MfG
Falk
Vielen Dank Leute für die Hilfe. Sehe mich nun Fit für erste Versuche
mit dem Atmega2560.
Aber eins interessiert mich noch. Wieso kann der nur einen 16 und keinen
20 MHZ Quarz ab? Der Atmega644 hatte das noch super hinbekommen...
MfG,Dirk
Hi
>Also mit einem Atmega 2560 sollte ich meine geliebte ISP Schnittstelle>nutzen können, gell?
Das ist die ISP-Schnittstelle. Bei den 64-poligen AVRs werden nur
statt der MISO/MOSI-Pins, TXD0/RXD0 verwendet.
MfG Spess
Hab noch nie etwas mit externen Datenbausteinen gemacht. Wie krieg ich
denn die Daten da hinein? Und wie von da in den Atmega?
Am besten wäre natürlich ich packe Bilddaten auf einen USB Stick und
schließ den an die Platine (Mikrocontroller) an. Aber wie aufwendig wird
das wohl...?
Bleib erstmal bei meinen 256kB RiesenFLASH :D Das Projekt hat Baustellen
genug.
Gruß,Dirk
Dirk schrieb:> Am besten wäre natürlich ich packe Bilddaten auf einen USB Stick und> schließ den an die Platine (Mikrocontroller) an. Aber wie aufwendig wird> das wohl...?
Vergiss es.
Wenn Du allerdings SD/MMC Karten in Erwägung ziehen würdest, dann wäre
sowas möglich. Beispiele dafür findest Du hier im Wiki/in der
Codesammlung mehr als genug.
Dirk schrieb:> Am besten wäre natürlich ich packe Bilddaten auf einen USB Stick und> schließ den an die Platine (Mikrocontroller) an. Aber wie aufwendig wird> das wohl...?
Das geht nicht, aber eine SD-Card lässt sich leicht auslesen und am PC
beschreiben. Ein Dateisystem braucht es da nicht unbedingt.
spess53 schrieb:> ... Alles im AVR zu haben ist doch wohl die einfachere Sache.
Solange die Bilddaten da nur einmal rein müssen und sich nicht mehr
ändern, hast Du sicher recht.
Bei neuen Bilddaten jedesmal den AVR neu flashen zu müssen wäre mir aber
auf Dauer zu blöd. Und die Idee mit dem USBStick kam ja schließlich vom
TO selber.
So, jetzt hat der Mikrocontroller(Atmega2560) auf jeder Seite einen GND
und ein VCC. Muss ich die alle verbinden, oder reicht es, wenn ich Masse
und 5V an eine Seite davon lege?
Gruß,
Dirk
@ Dirk (Gast)
>So, jetzt hat der Mikrocontroller(Atmega2560) auf jeder Seite einen GND>und ein VCC. Muss ich die alle verbinden,
Ja.
> oder reicht es, wenn ich Masse>und 5V an eine Seite davon lege?
NEIN!
MFG
Falk
...also immer 100 nF zwischen GND - Vcc ?
Danke für die Info!
Ich zeichne grad einen Schaltplan. Wenn ich den fertig habe, stell ich
ihn mal rein. Wäre super wenn ihr mal drüber guckt. Keine Sorge, kommt
nur das nötigste drauf. Schön Schlank...
Dirk
Wenn Du Stackoperationen ausführst darauf achten,
dass bei Unterprogrammen drei Bytes in den Stack
geschoben werden und nicht zwei.
AVCC auch anschließen.
Die Reset Beschaltung habe ich aus einem Fachbuch übernommen. AREF
brauche ich doch nur, wenn ich den AD Wandler nutzen will, oder?
Will eigentlich nur viele hundert RGB LEDs ein- und ausschaltung :)
...über Schieberegister.
Gruß,
Dirk
Beim Atmega32 hatt ich mal ein Problem, dass sich ein paar Pinne vom
PortC nicht nutzen ließen, da sie auf JTAG eingestellt waren. Habe das
nie so richtig verstanden. Gibt es beim ATmgea2560 auch dieses Problem,
dass mir an einen einem Port nicht alle Pinne zur Verfügung stehen?
Kennt jemand das Problem?
Gruß,
Dirk
Hi
>Beim Atmega32 hatt ich mal ein Problem, dass sich ein paar Pinne vom>PortC nicht nutzen ließen, da sie auf JTAG eingestellt waren. Habe das>nie so richtig verstanden. Gibt es beim ATmgea2560 auch dieses Problem,>dass mir an einen einem Port nicht alle Pinne zur Verfügung stehen?
Ja. Aber dort liegt das JTAG-Interface auf PortF. Einfach per JTAG-Fuse
oder Software deaktivieren, fertig.
MfG Spess
Dirk schrieb:> Kennt jemand das Problem?
Ja, beim 2560 sind es die Pins PF4-PF7, steht auf Seite 89 im
Datenblatt.
Man sollte auch den Rest ab Seite 296 lesen, insbesondere die Seiten 297
und 308.
Kurz: Wenn JTAG enebled ist (das ist der default), dann sind diese Pins
nicht als IO nutzbar. Disablen kann man JTAG auf zwei Arten, entweder
per JTAGEN Fuse oder programmatisch durch Setzen des JTD Bits im MCUCR
Register.
Vielen Dank euch. Denke, das kriege ich hin.
Wenn ich JTAG per Software im MCUCR Register deaktiviere, ist das dann
für immer deaktiviert, auch wenn ich mal ein anderes Programm in den
Flash brenne? Oder stellt ein Reset den alten (JTAG aktiv) Zustand
wieder her?
Fusebits lassen sich nicht per Software setzen, oder?
Woher habt ihr soviel Ahnung von Atmegas? WOW! :) Arbeitet ihr beruflich
damit? Werden Atmega Mikrocontroller viel in der Wirtschaft eingesetzt
oder sind es fast reine Hobby Controller?
Mache in einem Monat meinen Abschluss als Elektrotechniker und überlege
mich im Bereich Mikrocontroller und Programmierung zu bewerben. Berufe
mit AVRs wären natürlich mein Traum!
Gruß, Dirk
Dirk schrieb:> Wenn ich JTAG per Software im MCUCR Register deaktiviere, ist das dann> für immer deaktiviert, auch wenn ich mal ein anderes Programm in den> Flash brenne?
Nein
Dirk schrieb:> Oder stellt ein Reset den alten (JTAG aktiv) Zustand> wieder her?
Ja
Dirk schrieb:> Fusebits lassen sich nicht per Software setzen, oder?
Nein
Dirk schrieb:> Woher habt ihr soviel Ahnung von Atmegas?
Datenblatt lesen!!!
Dirk schrieb:> Arbeitet ihr beruflich damit?
Nein
Noch vergessen
Dirk schrieb:> Woher habt ihr soviel Ahnung von Atmegas?
Foren lesen :)
Insbesondere hier und die englische Variante http://www.avrfreaks.net
Dirk schrieb:> Werden Atmega Mikrocontroller viel in der Wirtschaft eingesetzt> oder sind es fast reine Hobby Controller?
LOL Hobby Controller. Wenn eine Firma extra für Hobbyisten entwickeln
würde, die alle winzigste Stückzahlen kaufen, müssten sie wahrscheinlich
dreistellige Beträge für einen Tiny verlangen.
Hi, nochmal eine Frage.
Gibt es einen Sockel für SMD mit 100 Pinnen, damit ich den Atmega 2560
nicht anlöten muss? Sollte ich den doch irgendwie verfusen oder anders
zerstören, würde ich ungern alle 100 Lötpunkte lösen...
Bei Reichelt gibts nur Sockel bis 64 Pin. Was macht ihr denn, wenn ihr
so einen großen Mikrocontroller verbaut?
Gruß,
Dirk
Hi
>Gibt es einen Sockel für SMD mit 100 Pinnen, damit ich den Atmega 2560>nicht anlöten muss? Sollte ich den doch irgendwie verfusen oder anders>zerstören, würde ich ungern alle 100 Lötpunkte lösen...
Gibt es schon. Aber den willst du nicht wirklich bezahlen. Sieh dir mal
das an:
http://www.elk-tronic.de/Products/Adapter/SolderAdapter/SolderAdapter.htm#QFP100>Bei Reichelt gibts nur Sockel bis 64 Pin.
Aber nicht für TQFP.
>Was macht ihr denn, wenn ihr so einen großen Mikrocontroller verbaut?
Keine Fehler.
MfG Spess
Mein größte Sorge sind ja die Fuse Bits. Habe da noch nicht soviel
Erfahrung. Will ja auf einen externen 16 Mhz Quarz umstellen und JTAG
deaktivieren um alle Ports komplett nutzen zu können.
Auch hab ich Angst den Controller zu "grillen" wenn ich so viele Pinne
anlöte.
Gebe ihm einfach abkühlpausen und werde nochmal Hilfe Schreien wenn ich
bei den Fuses bin und genau schreiben, was ich mit den Fusebits
bezwecken und wie ich die setze. Wäre total nett, wenn sich das dann
jemand mal anschaut, bevor ich den Atmega versaue.
Gruß,
Dirk
Hi
Bist du sicher, das du überhaupt den 100-pol. brauchst? Mit 256k-Flash
gibt es auch noch den ATMega2851 im etwas freundlicheren 64-Pin-Gehäuse.
MfG Spess
Du meinst ATMega2561, oder?
So viele Port Pins sind schon schön :)
Ist ja für nenn RGB-Cube mit 8x8x8 LEDs.
Will diese mit 8 Ports (64) Leitungen ansteuern. An jeder Leitung noch
ein 8bit-Schieberegister um auf die 512 zu kommen. Über den ULN2803
ziehe ich die LEDs dann auf Masse.
Über Multiplexing schalte ich dann abwechselnd Spannung an die einzelnen
Farbkanäle der RGB LEDs. Dafür nehme ich Mosfets. So der Plan.
Hab dann sogar noch ein paar Leitungen für Bedien- oder Anzeigeelemente
frei. 86 Portpins sind schon geil :) Will einfach mal was umfangreiches
bauen.
...und ja ich weiß, man kann Schieberegister auch kaskadieren. Will 64
Bit nunmal parallel ausgeben. Ist ein paar Takte schneller.
Gruß, Dirk