Forum: Mikrocontroller und Digitale Elektronik PIC18F oder Atmel 80C51?


von Christoph Söllner (Gast)


Lesenswert?

Hi *,

ich bin verwirrt, ich wollte ja mal vor Urzeiten einen
DMX-Dimmer bauen, mit den 8Bit AVRs. Hat nicht funktioniert,
weil der Zündimpuls jittert. Nun denn, jetzt hab ich wieder
Zeit, und würde gerne eine zweite Version bauen, diesmal aber
richtig.
Kurz, ich brauche: 16k Flash, 2k RAM, 50byte EEPROM, 1x USART,
8Bit Port Zündimpulse, 7Bit Port LCD, 8Bit Buttons+LEDs und
mindestens 32MIPS. Achja, und nen C-Compiler.

Beim PIC hab ich zwar 40Mhz gelesen, aber hat der dann auch
40MIPS? Und mit einem 80C51 hab ich noch nie etwas gemacht,
wie programmiere ich den und gibts da eine (kostenlose) C-IDE
dafür? Und generell denke ich auch, dass selbst der kleinste
Atmel C51 der Overkill ist dafür, also was tun sprach Zeus?
Oder hättet ihr noch andere MCUs in peto?

Danke,
Christoph

von Jack B. (jackbraun)


Lesenswert?

Hört sich an wie ATmega 16/32:
16/32k flash, 1/2k Ram, 1k EE, 32 I/O

von Schoaschi (Gast)


Lesenswert?

40MIPS?! NAja die PICs werden zwar Teilweise mit bis zu 48MHz getaktet,
aber dieser Takt wird durch 4 geteilt. Also kommst du niemals auf deine
40MIPS. Naja... aber zb der PIC18F4520 wird mit 16MIPS angegeben.. vl
gehts ja auch damit. Ansonst solltest du dir mal die dsPICs anschauen.
Die haben bis zu 40MIPS und sind 16Biter.

8051er mit 40MIPS sind etwas teuer ;-). Ich habe die ehre mit einem
DS89C430(Von MAxim/Dallas) arbeiten zu dürfen. Dieser hat 33MIPs,
jedoch kostet dor ein Stück knapp 89Euro(bei 1k) ;-).

Aber warum brauchst du bitte 32MIPS?!

mfg Schoasch

von Christoph Söllner (Gast)


Lesenswert?

> 40MIPS?! NAja die PICs werden zwar Teilweise mit bis zu 48MHz
> getaktet, aber dieser Takt wird durch 4 geteilt. Also kommst du
> niemals auf deine 40MIPS.
Das hatte ich befürchtet.

> Naja... aber zb der PIC18F4520 wird mit 16MIPS angegeben.. vl
> gehts ja auch damit.
Nein, habe jetzt einen ATMega16, mit 16 MIPS, und der Zündimpuls
zittert, dass es nicht mehr schön ist.

> Ansonst solltest du dir mal die dsPICs anschauen.
> Die haben bis zu 40MIPS und sind 16Biter.
Hab ich, die sind zu teuer.

> 8051er mit 40MIPS sind etwas teuer ;-). Ich habe die ehre mit einem
> DS89C430(Von MAxim/Dallas) arbeiten zu dürfen. Dieser hat 33MIPs,
> jedoch kostet dor ein Stück knapp 89Euro(bei 1k) ;-).
Ja, das wär ein tolles Teil, kostet beim Reichelt 28 Öre, und das
ist mir definitiv zu viel.

> Aber warum brauchst du bitte 32MIPS?!
Weil auch bei vorhandenen Interrupt-Prioritäten eine geringe MIPS-Zahl
nicht reicht der Zündimpuls millisekündlich stimmen muss, sonst
flackert die Lampe. Habe drei Interrupts:
Nulldurchgang, Zündtimer, und USART-Receive bei 250Kbit/s und 16Mhz
reichen definitiv nicht aus; Zumindest nicht bei meinen features:
PreHEat, 2 Adressen für jeden Lichtkanal, 8 Kanäle, LCD, Online-Debug
des DMX-Signals...

Hm ich werde mir jetzt mal die 20MHz Dinger AVRs beim Reichelt or-
dern und die DMX-Adressen auf 256 unsigned 8bit int beschränken.
Vielleicht hilft das ja schon.

Danke

von Christoph Söllner (Gast)


Lesenswert?

Oh, was mir noch eingefallen ist, kann ich AVRs übertakten?
Also aus 20MHz -> 24 oder so?

Danke

von peter dannegger (Gast)


Lesenswert?

Du brauchst bestimmt keine 32MIPS, 1ms ist ne elend lange Zeit, das
schafft ein AVR dicke.

Allerdings kann es bei ungeschickter Programmierung zu Jitter kommen
dadurch, daß der AVR leider keine Prioritäten hat.

In dieser Hinsicht ist ein 8051 (z.B. AT89C51ED2) wirklich günstiger,
da er 4 Interruptprioritäten hat. Der maximale Jitter ist dann <1µs.

Außerdem hat er ein 5-Kanal PCA und T2 kann einen Pin togglen, d.h. man
kann auch 6 Ausgänge völlig jitterfrei realisieren.


Sobald man sehr schnelle oder jitterarme Interrupts braucht, aber
nebenbei noch andere Interrupts hat, ist der AVR leider ne Krücke.


Peter

von Christoph Söllner (Gast)


Lesenswert?

hm, also ich weiß nicht, vielleicht hab ich dich mißverstanden,
aber der Jitter tritt auf, wenn der Timer abläuft, und eigentlich
dann der Zünd-Pin getoggelt werden muß, aber gerade noch die USART
am empfangen ist, zum Beispiel.
Wie läßt sich das mit einem C51 beheben?

Und gibt es einen C51, der nicht ganz so teuer ist? der Mega16
kostet 4 EUR, der von Dir beim reichelt 13,00; das muß auch anders
(=billiger) gehen ^^...
Christoph

von peter dannegger (Gast)


Lesenswert?

"Wie läßt sich das mit einem C51 beheben?"

Wenn Du dem Timer eine höhere Priorität gibst, dann unterbricht er
einfach den UART-Interrupt.
D.h. für den Timerinterrupt wäre es so, als gäbe es gar keinen
UART-Interrupt.

Es können also das unterbrochene Main und bis zu 3 unterbrochene
Interrupts auf dem Stack liegen.

Wer wen unterbrechen darf, legst Du einmalig nach dem Reset in den
Prioritätsregistern fest.


Peter

von peter dannegger (Gast)


Lesenswert?

P.S.:

Vergleiche nicht die MC-Preise, sondern vergleiche die Preise für das
komplette Gerät.

Und dann überlege nochmal, ob man sich für wenige % Unterschied den
Kopf heiß machen muß.


Im Prinzip sollte aber auch ein AT89S8253 reichen.


Peter

von Christoph Söllner (Gast)


Lesenswert?

> Vergleiche nicht die MC-Preise, sondern vergleiche die Preise für
> das komplette Gerät.
Hab ich, die MCU ist das teuerste, da ich außer MCU immer die
gleichen Teile brauchen werde 4EUR <-> 12 EUR (ich bin ja nur ein
armer Student, und bräuchte für die C51 wieder einen Programmierer
und eine C-IDE; für den AVR hab ich das STK und CodeV.)

> Und dann überlege nochmal, ob man sich für wenige % Unterschied
> den Kopf heiß machen muß.
Ja. Wenn die Lampe flackert, ist der Dimmer unbrauchbar. Und auf
das UI aus Display, Klartextmeldungen und den eingebauten Features
lege ich Wert ^^. Im Handel zahlt man für ne 6 Kanal-Version 240 EUR,
mit diesen Features, ich hätte (und brauche für mich) aber 8 in einer
Kiste...

> Im Prinzip sollte aber auch ein AT89S8253 reichen.
Hm das mit dem PCA hat mich auf eine Idee gebracht, hab schon
wieder eine Frage gestellt...

Danke Dir,
Christoph

von peter dannegger (Gast)


Lesenswert?

"Hab ich, die MCU ist das teuerste"

Bei mir ist immer die Platine das teuerste und dann das Gehäuse,
Netzteil, Display, Tasten usw.


Peter


P.S.:
Für den AT89C51ED2 brauchst Du keinerelei Programmer, geht über die
UART.

von Schoaschi (Gast)


Lesenswert?

Hast du dir auch die 8051er von Analog angesehen. Also ADuC841 usw. ich
weis zwar nicht wieviel die kosten, aber die wären auch etwas Flotter.

Programmer brauchst du zb beim DS89C430 und beim ADuC nicht, denn die
haben einen Bootloader.

Und hast du schon mal geschaut wieviel es kost3en würde wenn du bei
Microchip direkt bestellst?

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
Noch kein Account? Hier anmelden.