Mikroprozessorumstieg von PIC auf AVR

H

Heiko Weinbrenner

Guest
Hallo!

Ich habe nun doch entschlossen den PIC "sausen" zu lassen (16F84)- Grund war
unter anderem, dass er nur einen Timer hat und zu wenig Pins (ja, man kann
sie manchmal auch doppelt belegen...). Nun sehe ich in diesem Preissegment
(eher günstiger) auch gerade den AT Mega 8515 Low-Power, der kann schon um
einiges mehr und verbraucht auch nicht gerade viel Strom. Außerdem braucht
der nicht 4 Takte für eine Operation, sondern nur einen (meistens).
Als Software gibts das AVR-Studio. Ich sehe die Umgewöhnung vom PIC auf AVR
als nicht so groß ein. Ein 8051er ist mir ein zu großer Stromfresser und die
Pro-Takt-Leistung liegt auch noch auf Intel-Niveau (Dallas' Prozessoren sind
wohl ausgenommen)...

So- jetzt gehts mit den Fragen los:

Mit 8kByte Flash-Programmspeicher kann man ja schon was mit C anfangen- da
gibts dann zum Beispil WinAVR. Lässt sich das denn in das AVR-Studio (also
Studio als IDE) einbinden? Gibt es sonst ein schönes IDE?

Wie sieht es mit einem Programmieradapter zum Selberbauen aus? Am besten
natürlich auch aus dem AVR-Studio zu benutzen. Ich weiß, dass es Schaltpläne
zu Hauf gibt, aber welcher hat sich bewährt? Was gibt es sonst für ein
schönes Programmierprogramm + schönem Selbstbau-Adapter?

Hmm... Gibt es sonst noch etwas, worauf ich achten muss?

Bitte kein Flamewar über Prozessorhersteller anfangen.

MfG, Heiko.
 
Hallo Heiko,

Ein 8051er ist mir ein zu großer Stromfresser und die
Pro-Takt-Leistung liegt auch noch auf Intel-Niveau (Dallas' Prozessoren sind wohl ausgenommen)...
Dallas ist inzwischen veraltet, die F120 Serie von Cygnal
ist viel besser. Der 89F120 schafft 100MIPS bei 3.3V und
braucht 25mA (bei 50MIPS). Die meisten Befehle werden in 1
oder 2 Takten bearbeitet.

Gruss
Michael
 
Aguja <aguja@despammed.com> schrob:

, d.h. Du kannst ihn jetzt noch als
"Restposten" bei Reichelt und Co. kaufen, es werden aber keine neuen
mehr hergestellt.
Ja, so wie ich hier gelesen hab, ist das ja wohl nix neues bei Atmel.

Besser ist es also, gleich ein aktuelles Modell zu lernen (kennst Du
eines, klappts auch mit fast allen anderen!), der Nachfolger heißt
ATMega8515.
? Da hat sich wohl der Fehlerteufel eingeschlichen.
Der Nachfolger des Mega8515 ist der Mega8515?

Hmm, den AVR-Flash von prouc.de... ;-)
Ist der auch gut? ;)
Sieht ja schön einfach aus.

Akgekündigte Typen (siehe oben), Fuse-Bits (siehe Thread weiter oben).
Abgekündigte Typen scheints bei Atmel ja ziemlich oft zu geben, da muss man
wohl mit leben.
Von den Fuse-Bits hab ich schon gelesen, da muss man wohl aufpassen.

Danke!

MfG, Heiko.
 
Michael Koch <astroelectronic@gmx.net> schrob:

Dallas ist inzwischen veraltet, die F120 Serie von Cygnal
ist viel besser. Der 89F120 schafft 100MIPS bei 3.3V und
braucht 25mA (bei 50MIPS). Die meisten Befehle werden in 1
oder 2 Takten bearbeitet.
Hmm, hat sich da doch was getan.
Wie siehts mit dem Preis aus?

Danke.

MfG, Heiko.
 
Hallo Heiko,

Hmm, hat sich da doch was getan.
Wie siehts mit dem Preis aus?
Preise findest du auf der Cygnal Webseite: www.cygnal.com
Das Entwicklungskit kostet so etwa 150 USD.

Gruss
Michael
 
Heiko Weinbrenner wrote:


Mit 8kByte Flash-Programmspeicher kann man ja schon was mit C anfangen- da
gibts dann zum Beispil WinAVR. Lässt sich das denn in das AVR-Studio (also
Studio als IDE) einbinden? Gibt es sonst ein schönes IDE?
Man kann es zwar einbienden, aber so richtig rund ist das nicht.
Zudem ist das AVR Studio weder schön noch fehlerarm. Ich benutze
es eigentlich nur zum debuggen, wobei man das natürlich auch mit
dem Gnu debugger machen kann.
IDE's für GCC gibt's vermutlich mehr als Eulen in Athen.
Ich benutze aus Faulheit meistens den PFE, der bei WinAVR enthalten
ist. Wenn man einmal das makefile richtig angepasst hat, dann
geht's ganz gut.


Wie sieht es mit einem Programmieradapter zum Selberbauen aus? Am besten
natürlich auch aus dem AVR-Studio zu benutzen. Ich weiß, dass es Schaltpläne
zu Hauf gibt, aber welcher hat sich bewährt? Was gibt es sonst für ein
schönes Programmierprogramm + schönem Selbstbau-Adapter?
Da gibt es einmal den Programmieradapter, den Atmel damals beim
STK200/300 verwendet hat, und der immer noch gut funktioniert. Es gibt
ihn in einer LPT und einer RS232 Variante. Läuft gut mit den meisten
freien Programmierprogrammen, z.B. PonyProg. Schaltplan siehe dort
oder bei www.olimex.com.
Bei www.embedit.de gibt es den Programmieradapter für 9,90.
Dafür kann man ihn fast nicht selbst bauen, sofern man nicht alle
Teile gerade rumliegen hat. Kennt noch jemand eine günstigere
Quelle?

Empfehlenswert für die Megas (ab 16) ist ein JTAG Debugger, den
kann man sich auch selbst bauen, siehe
http://home.sch.bme.hu/~cell/atmel/AVR_JTAG/avr_jtag.zip

Hmm... Gibt es sonst noch etwas, worauf ich achten muss?
Wie immer ist aller Anfang schwer und hinterher fragt man sich,
warum man eigentlich solche Probleme gehabt hat.
 
Hallo Michael,

"Michael Koch" <astroelectronic@gmx.net> schrieb im Newsbeitrag
news:3F8A45E1.E70C9838@gmx.net...

Dallas ist inzwischen veraltet, die F120 Serie von Cygnal
ist viel besser. Der 89F120 schafft 100MIPS bei 3.3V und
Und Du vertraust einer Firma, die noch nicht einmal eine funktionierende
Web-Site zusammenbringt :)?

Gruss, Kurt

--
MBTronik, Kurt Harders
http://www.mbtronik.de
 
Hallo Heiko,

"Heiko Weinbrenner" <nospamtome@ish.de> schrieb im Newsbeitrag
news:3f89b11e$1@news-fe-01...

Ich habe nun doch entschlossen den PIC "sausen" zu lassen (16F84)-
Grund war
unter anderem, dass er nur einen Timer hat und zu wenig Pins (ja, man
kann
sie manchmal auch doppelt belegen...). Nun sehe ich in diesem
Preissegment

Hast Du Dir mal den 16F627/628 angeschaut? Fuer die A-Type basteln wir
gerade an einem preiswerten Programmiergeraet.

Gruss, Kurt

--
MBTronik, Kurt Harders
http://www.mbtronik.de
 
Hallo Kurt,

Und Du vertraust einer Firma, die noch nicht einmal eine funktionierende Web-Site zusammenbringt :)?
die Seite hat bislang immer funktioniert, nur heute nicht.
Versuch's später nochmal.

Gruss
Michael
 
Joerg Wunsch <j@ida.interface-business.de> schrob:

Es gibt 1001e Variante von simpel-Parallelport-ISP. Beim WinAVR mit
dabei sind schon allein die Opensource-Programme avrdude und uisp. Du
brauchst eigentlich nur einen DB25-Stecker, einen 6-pin Pfostenstecker
(empfohlene Atmel-ISP-Steckverbindung, siehe Appnote 910) und ein
bißchen Draht. Ja, und einen Rechner, der noch einen Parallelport
besitzt. ;-)
Hmm... Also mit einem Seriellen-Port-Interface gibt es da nichts?
Atmel selbst benutzt doch die serielle Schnittstelle.

Anm.: Win_Avr ist mir unter XP direkt abgestürzt, läuft daher nur im
Kompatibilitätsmodus und versucht eine nicht mehr vorhandene Webseite zu
öffnen. Hab ich da was übersehen?

Und die Programmer, die bei Winavr dabei sind, sind Kommandozeilen basiert.
Das ist mir doch sehr unkomfortabel geworden (ja, so weit ist es
gekommen...).

Wobei sie in aller Regel durch pinkompatible neue ersetzt werden. Das
ist einfach die logische Konsequenz daraus, daß ein Chiphersteller
seine Fertigungslinien weiterentwickelt. Als Nebeneffekt werden die
Chips dann u. a. auch billiger (weil die Chipfläche kleiner wird),
außerdem hatten die AT90Sxxx berichteterweise mehr EMV-Probleme als
die neuen ATmegas. Du verlierst also nicht unbedingt dabei.
Ja, ist ja bei den PC-Prozessorherstellern genau so.

Also mir soll es egal sein.

Danke!

MfG, Heiko.
 
Erik Hermann <erikhermann@amacando.de> schrob:

Man kann es zwar einbienden, aber so richtig rund ist das nicht.
Zudem ist das AVR Studio weder schön noch fehlerarm. Ich benutze
es eigentlich nur zum debuggen, wobei man das natürlich auch mit
dem Gnu debugger machen kann.
Ok.

IDE's für GCC gibt's vermutlich mehr als Eulen in Athen.
Ich benutze aus Faulheit meistens den PFE, der bei WinAVR enthalten
ist. Wenn man einmal das makefile richtig angepasst hat, dann
geht's ganz gut.
PFE?
Ich hab mir jetzt mal WinAvr installiert.
Bei mir ist da nur das Programmers Notepad, aber das ist ja schon mal ein
schöner Editor.

Da gibt es einmal den Programmieradapter, den Atmel damals beim
STK200/300 verwendet hat, und der immer noch gut funktioniert. Es gibt
ihn in einer LPT und einer RS232 Variante. Läuft gut mit den meisten
freien Programmierprogrammen, z.B. PonyProg. Schaltplan siehe dort
oder bei www.olimex.com.
Bei www.embedit.de gibt es den Programmieradapter für 9,90.
Dafür kann man ihn fast nicht selbst bauen, sofern man nicht alle
Teile gerade rumliegen hat. Kennt noch jemand eine günstigere
Quelle?
Jetzt hab ich wieder was gelesen: nur für 5V Modelle- da ich aber die
Low-Power-Variante ins Auge gefasst habe, müsste ich da wohl ein paar
Änderungen vornehmen.

Empfehlenswert für die Megas (ab 16) ist ein JTAG Debugger, den
kann man sich auch selbst bauen, siehe
http://home.sch.bme.hu/~cell/atmel/AVR_JTAG/avr_jtag.zip
Auch runtergeladen, aber noch nicht angeguckt.

Wie immer ist aller Anfang schwer und hinterher fragt man sich,
warum man eigentlich solche Probleme gehabt hat.
Das ist mir bei dem PIC und 8051er schon aufgefallen.

Danke!

MfG, Heiko.
 
Kurt Harders <news@kurt-harders.de> schrob:

Hast Du Dir mal den 16F627/628 angeschaut?
Jetzt schon.
Sieht auch gut aus. Ist aber auch wieder "nur" ein 18-"Beiner".

Fuer die A-Type basteln wir
gerade an einem preiswerten Programmiergeraet.
Ja, ich habe nur ein Programmiergerät für den 16F84 und auch nur Software
dafür, daher bin ich auch bis jetzt an den gebunden.
Ich hab ja auch noch "ein paar" 16F84 hier, die kann man ja als Controller
für irgendetwas nehmen (PS2->Parallel, DCF77 Dekoder oder sowas). Nur als
größeren "Steuermann" ist der zu "klein".

Beim PIC hab ich bis jetzt noch keinen kostenlosen C-Compiler gefunden (bei
den ca. 30 HW-Befehlen und nur 1kByte Flash beim 16F84 wird sich das eh
nicht lohnen).
Auch deshalb wollte ich mal bei Atmel gucken, der C-Compiler ist frei.

Danke!

MfG, Heiko.
 
Heiko Weinbrenner <nospamtome@ish.de> wrote:

? Da hat sich wohl der Fehlerteufel eingeschlichen.
Der Nachfolger des Mega8515 ist der Mega8515?
Nein, Herr Aguja hat nicht richtig gelesen und beim Stichwort 8515
sofort auf ,AT90S8515' geschaltet. In der Tat ist dieser aber durch
den ATmega8515 abgelöst worden, Du bist also auf der sicheren Seite.

Hmm, den AVR-Flash von prouc.de... ;-)

Ist der auch gut? ;)
Naja, Agujas Eigenwerbung halt.

Es gibt 1001e Variante von simpel-Parallelport-ISP. Beim WinAVR mit
dabei sind schon allein die Opensource-Programme avrdude und uisp. Du
brauchst eigentlich nur einen DB25-Stecker, einen 6-pin Pfostenstecker
(empfohlene Atmel-ISP-Steckverbindung, siehe Appnote 910) und ein
bißchen Draht. Ja, und einen Rechner, der noch einen Parallelport
besitzt. ;-)

Abgekündigte Typen scheints bei Atmel ja ziemlich oft zu geben, da
muss man wohl mit leben.
Wobei sie in aller Regel durch pinkompatible neue ersetzt werden. Das
ist einfach die logische Konsequenz daraus, daß ein Chiphersteller
seine Fertigungslinien weiterentwickelt. Als Nebeneffekt werden die
Chips dann u. a. auch billiger (weil die Chipfläche kleiner wird),
außerdem hatten die AT90Sxxx berichteterweise mehr EMV-Probleme als
die neuen ATmegas. Du verlierst also nicht unbedingt dabei.

Daß die Pinkompatibilität durchaus funktioniert, zeigt Atmels eigener
JTAG ICE: die Platine war für einen AT90S8535 ausgelegt plus einen
AT90S1200 als Bootlader (für die Firmware). Mittlerweile steckt auf
gleicher Platine ein ATmega16, da der auch selbst einen Bootlader
implementieren kann, wird der AT90S1200 einfach nicht mehr bestückt.
Vermutlich haben sie noch genügend alte Platinen... (Zwischenzeitlich
war ein ATmega163 drauf, das war so 'ne Art Vorläufer des 16er.)
--
J"org Wunsch Unix support engineer
joerg_wunsch@interface-systems.de http://www.interface-systems.de/~j/
 
Und Du vertraust einer Firma, die noch nicht einmal eine funktionierende Web-Site zusammenbringt :)?
da die Selection-Guide Seite momentan nicht geht, hier der
direkte Link zum F120:

http://www.cygnal.com/products/C8051F120.htm

Gruss
Michael
 
Heiko Weinbrenner wrote:
Jetzt hab ich wieder was gelesen: nur für 5V Modelle- da ich aber die
Low-Power-Variante ins Auge gefasst habe, müsste ich da wohl ein paar
Änderungen vornehmen.
Nö, geht auch mit 3,3V. Benutze ich täglich ohne Probleme.

Wie immer ist aller Anfang schwer und hinterher fragt man sich,
warum man eigentlich solche Probleme gehabt hat.


Das ist mir bei dem PIC und 8051er schon aufgefallen.
Das scheint auch eines von Murphy's Gesetzen zu sein. Fängt man
mit einem neuen uC an, dann geht erst mal alles schief. Hat man
lange genug Lehrgeld bezahlt, dann geht auf einmal alles wie
von selbst. Macht man dann nach längerer Zeit den Einstieg nochmal,
dann geht alles einwandfrei, und man kann überhaupt nicht nach-
vollziehen, woran es damals gehangen hat.
 
Heiko Weinbrenner wrote:
Ja, ich habe nur ein Programmiergerät für den 16F84 und auch nur Software
dafür, daher bin ich auch bis jetzt an den gebunden.
Sollte aber auch mit einem 16F87x laufen. Der 877 ist ja auch schon ganz
nett, viele Pins, viel Peripherie und dank Selbstprogrammiermöglichkeit
kann man einen Bootloader verwenden, das ist recht bequem.
 
Aber sicher doch!
http://www.lancos.com/siprogsch.html mit passendem Programm für Win und
Linux.
Ferner gibt einige Derivate die sogar noch einfacher aufgebaut sind.

Aber rate ich Dir, dich auch mal mit dem Thema Bootloader zu befassen.
http://www.microsyl.com/AVR/MegaLoad/megaload.htm
 
Heiko Weinbrenner <nospamtome@ish.de> wrote:

Es gibt 1001e Variante von simpel-Parallelport-ISP.

Hmm... Also mit einem Seriellen-Port-Interface gibt es da nichts?
Atmel selbst benutzt doch die serielle Schnittstelle.
Ja, AVR910 wird zumindest von avrdude unterstützt, vermutlich auch von
uisp (das kenne ich nicht so gut). STK500 wird ebenfalls von beiden
unterstützt. AVR910 Protokoll ist nicht sonderlich effektiv, da es
ein request-response Protokoll ist. Die DFÜler wußten bereits in den
frühen 90er Jahren, daß derartige Protokolle sch***e sind, aber Atmel
hat den Fehler trotzdem nochmal gemacht. (Das Problem liegt in der
Latenz, die durch den FIFO heutiger UARTs begründet wird: um den FIFO
auszunutzen, wird noch zusätzlich gewartet, bevor die Antwort dann
doch zurückgegeben wird.)

Insbesondere große Chips lassen sich daher mit einem AVR910-Typ
Programmiergerät nicht sonderlich schnell programmieren. Meiner
Erinnerung nach ist STK500 Protokoll etwas schneller.

Anm.: Win_Avr ist mir unter XP direkt abgestürzt,
WinAVR kann gar nicht abstürzen. :) Es ist nämlich nicht der Name
für ein bestimmtes Programm, sondern nur der Name für eine Sammlung
von Komponenten.

Welche der Komponenten ist Dir denn nun abestürzt? Der Compiler?

... läuft daher nur im Kompatibilitätsmodus und versucht eine nicht
mehr vorhandene Webseite zu öffnen.
Zumindest für den Compiler kann ich mir nicht vorstellen, wie der
,,eine Webseite öffnen'' könnte...

Und die Programmer, die bei Winavr dabei sind, sind Kommandozeilen
basiert. Das ist mir doch sehr unkomfortabel geworden (ja, so weit
ist es gekommen...).
Mir wäre es hinreichend unkomfortabel, wenn ich jedesmal
klickerdicklick machen müßte. Außerdem ist es offenbar
fehlerträchtig, wie die vielen Leute mit zerwürgten Fuse-Bits belegen.
Mir ist es da deutlich lieber, daß ich einfach ťmake programŤ sagen
kann. Geschmackssache.

Wobei sie in aller Regel durch pinkompatible neue ersetzt werden.

Ja, ist ja bei den PC-Prozessorherstellern genau so.
Nö, dort ändert sich typischerweise dann jedesmal die komplette
Infrastruktur (Pinout, Speicherbusse, usw. usf.). Bloß
softwarekompatibel sind sie lange noch gehalten worden.
--
J"org Wunsch Unix support engineer
joerg_wunsch@interface-systems.de http://www.interface-systems.de/~j/
 
On Mon, 13 Oct 2003 12:39:03 +0200, "Heiko Weinbrenner"
<nospamtome@ish.de> wrote:

Hi!

Ich hab mir jetzt mal WinAvr installiert.
Bei mir ist da nur das Programmers Notepad, aber das ist ja schon mal ein
schöner Editor.
Ja, bin ich - als Atmel-Einsteiger - auch sehr zufrieden damit und
auch recht schnell mit klargekommen. Den "MAKE"-Befehl, der den
Compiler rattern lässt, kannst Du ins Tools-Menü einbinden, die
Antwort vom Compiler bekommst Du direkt ins Editor-Programm und wenn
Du auf eine Fehlermeldung klickst, springt der Cursor automatisch in
die entsprechende Programmzeile. Das ist schon was anderes, als ich
von Borland C (unter Dos) und Mikrocontrollercompilern der gleichen
Zeit gewohnt war :)

Einzig mit dem Makefile muss man sich evtl auseinandersetzen, wenn
mans (wie ich bis vor wenigen Wochen) noch nicht kennt. Am besten, Du
versuchst erstmal eins der mitgelieferten Beispiele zu compilieren -
bei mir hat das natürlich nicht auf Anhieb geklappt, weil ich einen
anderen AtMega hatte als im Beispiel, und andere Pfade als im
ursprünglichen Makefile. Also schau einfach mal ins Makefile, wirst
schon rausfinden, was Du da evtl ändern musst.

Zum Programmieren nehm ich PonyProg (lancos.com, wurde hier schonmal
genannt), den Schaltplan für den Adapter (nicht viel mehr als ein
Treiber) findest Du dort auch. Damit bekommst Du sowohl das Programm
in den Atmel als auch die FuseBits gesetzt.

Alles in allem sollte man es binnen einem Wochenende eigentlich
schaffen, das erste kleine eigene Projekt zu compilieren und im Atmel
zum Laufen zu bringen.

Gruß,
Michael.
 
Joerg Wunsch <j@ida.interface-business.de> schrob:

WinAVR kann gar nicht abstürzen. :) Es ist nämlich nicht der Name
für ein bestimmtes Programm, sondern nur der Name für eine Sammlung
von Komponenten.
Anm.: win_avr.exe ist auch der Name des Programmers von Prouc- das war
gemeint.
Jetzt sehe ich, dass das ganze doch AVR-Flash heißen soll.

Mir wäre es hinreichend unkomfortabel, wenn ich jedesmal
klickerdicklick machen müßte. Außerdem ist es offenbar
fehlerträchtig, wie die vielen Leute mit zerwürgten Fuse-Bits belegen.
Mir ist es da deutlich lieber, daß ich einfach ťmake programŤ sagen
kann. Geschmackssache.
In der Tat. Ich mag lieber Klickediklick- hab ja nicht umsonst
Klickediklick-Betriebssystem. ;)
In DOS habe ich früher schon genug rumgewurschtelt. Jetzt kann ich ja zum
Abreagieren noch in eine Dosbox springen ;)

Natürlich hätte ich es dann auch gerne, dass solche Sachen wie Fuse-Bits
richtig, unmissverständlich "visualisiert" werden...
Naja, wenn man es weiß, kann man es ja verkraften.

Nö, dort ändert sich typischerweise dann jedesmal die komplette
Infrastruktur (Pinout, Speicherbusse, usw. usf.). Bloß
softwarekompatibel sind sie lange noch gehalten worden.
Naja, ich meinte so Erweiterungen wie MMX oder 3DNOW- der Befehlssatz war
und ist abwärtskompatibel, es sind halt nur Erweiterungen hinzu gekommen.
AMD Prozessoren haben auch sehr lange den Sokel A behalten (nun ist es Zeit
für was neues).

MfG, Heiko.
 

Welcome to EDABoard.com

Sponsor

Back
Top