Forum: Mikrocontroller und Digitale Elektronik PIC-Mikrocontroller - Alternativen


von Lukas (Gast)


Lesenswert?

Hallo,

ich möchte eine Spannung messen und diese am LCD ausgeben.
Nun habe ich mich ein wenig schlau gemacht und bin auf 
PIC-Mikrocontroller gestoßen - allerdings fehlt hier die Multiplikation 
und die benötige ich später noch...
Jetzt wollte ich euch fragen, welche Alternativen es zu den PICs gibt. 
Sie sollten nicht zu teuer sein, mein Problem lösen können und das 
Wichtigste wäre ausreichend Lektüre im WWW.

Vielen Danke im Voraus :)

von 6642 (Gast)


Lesenswert?

tja, AVR. Wobei beide Familien ab einer Groesse eine 
hhardwaremultiplikation haben. Das sollte aber eh kein Problem sein, da 
man sehr einfach aus Additionen und Schieben eine Multiplikation machen 
kann. Ein Compiler macht das auch so.

von Lukas (Gast)


Lesenswert?

achso, danke..... hmmm welche der beiden kannst du mir empfehlen?

von Luther B. (luther-blissett)


Lesenswert?

Lukas wrote:
> achso, danke..... hmmm welche der beiden kannst du mir empfehlen?

PIC fand ich immer doof. Alles geht über das W Register, kein ADC (add 
with carry). Hardwaremultiplikation geht erst ab PIC18.

Die AVR ISA dagegen top. Ab Atmega: 8x8 Multiplikation in 2 Zyklen (Die 
meisten PIC brauchen für jeden Befehl mindestens 4 Zyklen). Ausserdem 
gibt es einen gcc-port (d.h. C,C++ und ADA) und der kann auch in 
AVR-Studio integriert werden, falls man mit Windows unterwegs ist.

Also ich tendiere dann doch eher zu AVR.

von Winfried (Gast)


Lesenswert?

Wenn es dir um die Multiplikation geht: Die kann ein PIC Prozessor auch 
problemlos. In C programmiert steht dir das direkt zur Verfügung und in 
Assembler schreibst du dir Code, der aus Additionen eine Multiplikation 
macht.

von BrunoB (Gast)


Lesenswert?

> kein ADC (add with carry).

Schau besser noch mal nach!

> Hardwaremultiplikation geht erst ab PIC18.

Was spricht dagegen die neuesten PICs zu verwenden?

von BrunoB (Gast)


Lesenswert?

Oh, noch was:

> 8x8 Multiplikation in 2 Zyklen (Die
> meisten PIC brauchen für jeden Befehl mindestens 4 Zyklen).

Ein PIC der neuesten Generation benötigt dazu lediglich 40 ns.

von Luther B. (luther-blissett)


Lesenswert?

BrunoB wrote:
>> kein ADC (add with carry).
>
> Schau besser noch mal nach!
>
>> Hardwaremultiplikation geht erst ab PIC18.
>
> Was spricht dagegen die neuesten PICs zu verwenden?

PIC18 sind im Einzelhandel ein ganzes Stück teuerer als vergleichbare 
AVR. Die 8x8 Hardware Multiplikation ist da übrigens auch nur unsigned, 
d.h. für signed musste dann noch code dazuschreiben.

von BrunoB (Gast)


Lesenswert?

> PIC18 sind im Einzelhandel ein ganzes Stück teuerer als vergleichbare
> AVR.

Du vergleichst nicht gerade Äpfel mit Birnen, oder?

> Die 8x8 Hardware Multiplikation ist da übrigens auch nur unsigned,
> d.h. für signed musste dann noch code dazuschreiben.

Wenn Du gerade von Assembler sprichst, dann schau auch ruhig mal auf das
C- und N-Flag (neben den anderen Flags).

von Meister E. (edson)


Lesenswert?

>PIC fand ich immer doof.

Ich finde es doof, wenn sich Leute über Dinge, von denen sie keine 
Ahnung haben, negativ auslassen.

>Alles geht über das W Register, kein ADC (add
>with carry). Hardwaremultiplikation geht erst ab PIC18.

Das W-Register ist nunmal dazu da, um benutzt zu werden. Aber was meinst 
du bitte mit 'alles'?!

ADD w/Carry gibts auf jedem PIC!

>Die AVR ISA dagegen top. Ab Atmega: 8x8 Multiplikation in 2 Zyklen (Die
>meisten PIC brauchen für jeden Befehl mindestens 4 Zyklen).

Was hast denn da falsch aufgeschnappt? Die Pipeline ist bei jedem PIC 
gleich lang.

>> Hardwaremultiplikation geht erst ab PIC18.

>Was spricht dagegen die neuesten PICs zu verwenden?

Man müsste dann ja zugeben, dass es Programmierer- und 
Comnpilerfreundliche PICs gibt ;)

Gruss,
Edson

von Luther B. (luther-blissett)


Lesenswert?

Meister Eder wrote:

>>Alles geht über das W Register, kein ADC (add
>>with carry). Hardwaremultiplikation geht erst ab PIC18.
>
> Das W-Register ist nunmal dazu da, um benutzt zu werden. Aber was meinst
> du bitte mit 'alles'?!

Ich meine: W ist Akkumulator. Einen designierten Akkumulator zu haben 
vereinfacht vielleicht das chip-design, aber den code macht es definitiv 
umständlicher (länger, langsamer).

>
> ADD w/Carry gibts auf jedem PIC!

ADDWFC ist erst mit PIC17 dazugekommen. Wenn du es für die Vorgänger 
belegen kannst, dann bitte.

> Ich finde es doof, wenn sich Leute über Dinge, von denen sie keine
> Ahnung haben, negativ auslassen.

[sic]


>
>>Die AVR ISA dagegen top. Ab Atmega: 8x8 Multiplikation in 2 Zyklen (Die
>>meisten PIC brauchen für jeden Befehl mindestens 4 Zyklen).
>
> Was hast denn da falsch aufgeschnappt? Die Pipeline ist bei jedem PIC
> gleich lang.

Was hat das mit Pipeline zu tun? Bei 40 MHz Takt schaffen die PIC 10 
MIPS.

AVR schaffen 10 MIPS bei 10 MHz. Da kann man natürlich sagen "nimmste 
halt 'n 40 Mhz Quartz". Aber wenn du z.B. mit einer externen clock 
arbeiten willst/musst hat der AVR einfach die Nase vorn.

von Gerhard. (Gast)


Lesenswert?

"AVR schaffen 10 MIPS bei 10 MHz. Da kann man natürlich sagen "nimmste
halt 'n 40 Mhz Quartz". Aber wenn du z.B. mit einer externen clock
arbeiten willst/musst hat der AVR einfach die Nase vorn."

PIC haben eine x4 PLL - 10MHZ genuegt;-)

von Brain (Gast)


Lesenswert?

> AVR schaffen 10 MIPS bei 10 MHz.

... und PICs 16 MIPS bei 16 MHz.

von Luther B. (luther-blissett)


Lesenswert?

Gerhard. wrote:
> "AVR schaffen 10 MIPS bei 10 MHz. Da kann man natürlich sagen "nimmste
> halt 'n 40 Mhz Quartz". Aber wenn du z.B. mit einer externen clock
> arbeiten willst/musst hat der AVR einfach die Nase vorn."
>
> PIC haben eine x4 PLL - 10MHZ genuegt;-)

PIC18 haben eine x4 PLL (Achtung:Jitter!) und auch nicht alle. AVR 
können bis zu 20 MHz ab und sind dann doppelt so schnell wie ein PIC.

von Luther B. (luther-blissett)


Lesenswert?

Luther Blissett wrote:
> PIC18 haben eine x4 PLL (Achtung:Jitter!) und auch nicht alle. AVR
> können bis zu 20 MHz ab und sind dann doppelt so schnell wie ein PIC.
...der mit 40MHz läuft.

und brain: Nein.

http://www.microcontroller.com/news/microchip_pic18_40mhz.asp

"All Microchip PIC18 microcontrollers execute one instruction every 
machine cycle. A  machine cycle is 4 clock cycles.  This gives 10 MIPS 
performance @40 MHz and translates into 10 MHz access  to either 
internal or external Flash memory. With the internal 4 x PLL circuit, an 
external 10 MHz crystal can be used  to obtain an internal 40 MHz 
clock."

von Brain (Gast)


Lesenswert?

> und brain: Nein.

Doch: 16 MIPS bei 16 MHz externen Quarz!!!

siehe zum Beispiel (FIGURE 2-1, page 25):
http://ww1.microchip.com/downloads/en/DeviceDoc/41303C.pdf

> (Achtung:Jitter!)

Beschreib doch mal eine Applikation, bei der Dich das "Jittern" stört, 
bzw., bei der Du es überhaupt bemerkst?

von Sven S. (stepp64) Benutzerseite


Lesenswert?

Diese schei..... Streiterei über irgendwelche angeblichen Vorteile der 
einen oder anderen Produktfamilie geht mir tierisch auf den Sa..

Das war schon bei Video2000 gegen VHS, bei Amiga gegen PC, bei LP gegen 
CD und bei was noch alles für unsinnige Streitereien so. Was soll das 
immer? AVR ist besser als PIC? Jede Familie hat ihre Vor- und Nachteile. 
Und jede dieser Familien kann alle Probleme lösen welche die andere 
Familie auch kann. Und wie die Dinger nun auf ihre MIPS kommen ist doch 
völlig egal, Hauptsache sie schaffen es die gestellte Aufgabe in der 
vorgegebenen Zeit abzuarbeiten. Und das können beide Produktfamilien 
gleich gut!

Sven

von Brain (Gast)


Lesenswert?

> Und das können beide Produktfamilien gleich gut!

Vielleicht, aber dafür müssten sie erst einmal lieferbar sein.

von Gerhard. (Gast)


Lesenswert?

Ich bin der Ansicht dass ein Microcontroller nur gerade so schnell 
laufen muss um den Entwicklungsanforderungen zu genuegen;-)

Wenn ich also einen Videogenerator bauen will, dann ist warscheinlich 
ein PIC nicht die beste Loesung und nehme an dass ein AVR oder ARM  das 
warscheinlich besser macht (Wie einige WEB-Beispiele demonstrieren). 
Fuer viele andere Anwendungen ist es warscheinlich gleichgueltig welche 
Prozessorfamilie man nimmt und ist eher mehr von der Wahl der Peripherie 
oder anderen Erwaegungen abhaengig. Wie so oft in der wirklichen Welt, 
hat alles seine Vor- und Nachteile.

Mir gefaellt zum Beispiel an PICs besser, dass das FlashROM oder das 
EEPROM eine wesentlich bessere Lebenserwartung hat wie die AVRs. Auch 
gibt es nicht die ganze Problematik mit den Fuses. PICs kriegt man viel 
leichter als Samples. Einige AVRs sind bei uns oft monatelang auf 
Allocation und nicht rechtzeitig erhaeltlich.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Luther Blissett wrote:
> "All Microchip PIC18 microcontrollers execute one instruction every
> machine cycle. A  machine cycle is 4 clock cycles.  This gives 10 MIPS
> performance @40 MHz and translates into 10 MHz access  to either
> internal or external Flash memory. With the internal 4 x PLL circuit, an
> external 10 MHz crystal can be used  to obtain an internal 40 MHz
> clock."

Interessant und schwach zugleich. Die AVR machen zwar laengst nicht alle 
Instruktionen in einem Takt, aber viele brauchen nur einen oder auch 
zwei Takte (manche aber auch 4). Jetzt muesste man noch wissen ob der 
PIC-Befehlssatz komplex ist, denn wenn er das ist, kann der AVR trotzdem 
wieder langsam sein. Man sollte die Infos nicht so aus dem Zusammenhang 
reissen.

von Master S. (snowman)


Lesenswert?

@ Michael G.: geanu! das sehe ich auch so. sowohl bei den AVRs wie auch 
bei den PICs gibts 1000 variationen mit diverser peripherie und allen 
möglichen geschwindigkeiten. ich habe mich für PICs entschieden, andere 
für die AVRs. es ist so wie im leben: die einen haben lieber äpfel, die 
anderen birnen - beide sind schmackhaft und doch leicht unterschiedlich 
;)

von Luther B. (luther-blissett)


Lesenswert?

Brain wrote:
>> und brain: Nein.
>
> Doch: 16 MIPS bei 16 MHz externen Quarz!!!
>
> siehe zum Beispiel (FIGURE 2-1, page 25):
> http://ww1.microchip.com/downloads/en/DeviceDoc/41303C.pdf

Das ist das Datenblatt für die K20 Serie, die laufen mit bis zu 64Mhz 
(d.h. 16 Mhz*4), sind aber erst letzten September angekündigt worden und 
ich glaube nicht du kannst mir sagen wo es die zu kaufen gibt. Die 
funktionieren im übrigen auch nicht mehr mit 5V.

Ach ja, und Bank Switching brauchen die immer noch. Brouhahaha!

Ich kann
>
>> (Achtung:Jitter!)
>
> Beschreib doch mal eine Applikation, bei der Dich das "Jittern" stört,
> bzw., bei der Du es überhaupt bemerkst?

Solange der Takt nicht für ADC/DAC benutzt wird...

von Luther B. (luther-blissett)


Lesenswert?

Sven Stefan wrote:
> Diese schei..... Streiterei über irgendwelche angeblichen Vorteile der
> einen oder anderen Produktfamilie geht mir tierisch auf den Sa..

Die Streiterei war nicht beabsichtigt, der OP wollte nur wissen was wer 
empfehlen würde und dann sind einige PIC Apologeten reingesprungen, die 
die Datenblätter nicht gelesen haben.

>
> Das war schon bei Video2000 gegen VHS, bei Amiga gegen PC, bei LP gegen
> CD und bei was noch alles für unsinnige Streitereien so. Was soll das
> immer? AVR ist besser als PIC? Jede Familie hat ihre Vor- und Nachteile.
> Und jede dieser Familien kann alle Probleme lösen welche die andere
> Familie auch kann. Und wie die Dinger nun auf ihre MIPS kommen ist doch
> völlig egal, Hauptsache sie schaffen es die gestellte Aufgabe in der
> vorgegebenen Zeit abzuarbeiten. Und das können beide Produktfamilien
> gleich gut!

Hängt davon ab. Meiner Meinung nach haben AVR auch bei den 2 Euro 
Modellen Leistungsmäßig mehr Spielraum nach oben als PIC, d.h. man hat 
für eine größere Menge von Problemen die Möglichkeit auf einer Plattform 
zu bleiben. Das ist, neben solchen Tatsachen, daß hochwertige 
Entwicklungstools unschlagbar preiswert verfügbar sind, viel wert.

von Karl H. (kbuchegg)


Lesenswert?

Luther Blissett wrote:
> Die Streiterei war nicht beabsichtigt, der OP wollte nur wissen was wer
> empfehlen würde

Mann sollte Fragen, in denen die Worte 'Meinung', 'besser' und
'Empfehlung' in einem Satz vorkommen einfach nicht zulassen.
Da kommt nur Streiterei raus.
Egal ob das Thema jetzt Windows - Linux, C - C++ - Bascom - Java,
dieser Drucker - jener Drucker, AVR - PIC, morgens lange schlafen -
morgens früh aufstehen, Cola - Pepsi, McDonalds - Burger King, ....
ist, es kommt immer Streit heraus.

von Brain (Gast)


Lesenswert?

> Solange der Takt nicht für ADC/DAC benutzt wird...

Die PIC-internen ADC und DAC kommen prima mit der PLL zurecht.

Empfindliche externe Bausteine würde ich mit einem qualitativ guten 
externen Taktgenerator betreiben und nicht mit einem 
Controller-Oszillator. Je nach Anforderung findet man aber auch sehr 
robuste ADC und DAC, die nicht so leicht zu einem Fehlverhalten neigen. 
Schau dazu mal unter www.linear.com nach.

Somit ist Dein Beispiel für nicht wirklich nachvollziehbar.

> Die Streiterei war nicht beabsichtigt, der OP wollte nur wissen was wer
> empfehlen würde und dann sind einige PIC Apologeten reingesprungen, die
> die Datenblätter nicht gelesen haben.

Möchtest Du mit diesem Satz sagen, daß Du nur dann nicht streitest wenn 
alle Deiner Meinung sind?

von Andreas K. (a-k)


Lesenswert?

Michael G. wrote:

> Jetzt muesste man noch wissen ob der
> PIC-Befehlssatz komplex ist, denn wenn er das ist, kann der AVR trotzdem
> wieder langsam sein.

Wenn man hauptsächlich 8-Bit Daten verarbeitet und den Speicher direkt 
adressiert, sind PICs teilweise komplexer als AVR und durchaus 
leistungsfähig. Beispielsweise können Steuerregister und RAM Ziel von 
Operationen sein, was bei AVRs nur bei Einzelbits und nur bei manchen 
Registern möglich ist.

Sobald jedoch in signifikantem Umfang 16- und 32-Bit Daten verarbeitet 
werden, sehen generell alle Akkumulator-Architekturen schlecht aus. 
Indirekt adressierter Speicher ist mindestens bei den PIC10-16 arg 
eigenwillig, sowohl bei ROM-Daten wie auch im RAM. Auch das Banking von 
Code und Daten ist nicht wirklich angenehm, weder in Assembler noch für 
den Compiler.

von Luther B. (luther-blissett)


Lesenswert?

>> Die Streiterei war nicht beabsichtigt, der OP wollte nur wissen was wer
>> empfehlen würde und dann sind einige PIC Apologeten reingesprungen, die
>> die Datenblätter nicht gelesen haben.
>
> Möchtest Du mit diesem Satz sagen, daß Du nur dann nicht streitest wenn
> alle Deiner Meinung sind?

Ich kann natürlich Quatsch wie "ADD w/Carry gibts auf jedem PIC!" 
einfach so stehen lassen.

von Lukas (Gast)


Lesenswert?

Naja danke, aber ich versteh nicht wirklich von was ihr da immer redet.
Ich nehme an von AVR gibts mehr Material im I-Net??
Stellt sich noch die Frage C oder Assembler :D

> Möchtest Du mit diesem Satz sagen, daß Du nur dann nicht streitest wenn
> alle Deiner Meinung sind?

Der war gut :D

von Meister E. (edson)


Lesenswert?

@luther-blisset

>ADDWFC ist erst mit PIC17 dazugekommen. Wenn du es für die Vorgänger
>belegen kannst, dann bitte.

Ok, stimmt, habe nachgesehen. Ich arbeite halt nur mit PIC18.

> Die Streiterei war nicht beabsichtigt, der OP wollte nur wissen was wer
> empfehlen würde und dann sind einige PIC Apologeten reingesprungen, die
> die Datenblätter nicht gelesen haben.

Meine PIC18-Sheets kenne ich ganz gut ;) Von wegen 'PIC Apologet', ich 
kann durchaus einen Fehler zugeben, so drastisch musst du das nicht 
sehen.

Gruss,
Edson

von Meister E. (edson)


Lesenswert?

@Lukas
>aja danke, aber ich versteh nicht wirklich von was ihr da immer redet.

Kommt vielleicht noch...

>Ich nehme an von AVR gibts mehr Material im I-Net??

Weiss ich nicht, zu PICs findet sich ebenfalls vieles. www.sprut.de

>Stellt sich noch die Frage C oder Assembler :D

Wenn du dich für C entscheidest, stellt sich die Controllerfrage wieder.
Die Assembler-Befehlssätze von PIC und AVR-Familien kannst du dir ja mal 
anschauen und den nehmen, den du am leichtesten nachvollziehen kannst.
Damit erledigt sich dann die 'Controllerfrage', Assembler-Kenntnisse 
helfen auch beim verstehen von C-Compilern.

Gruss,
Edson

von Luther B. (luther-blissett)


Lesenswert?

Meister Eder wrote:

> Meine PIC18-Sheets kenne ich ganz gut ;) Von wegen 'PIC Apologet', ich
> kann durchaus einen Fehler zugeben, so drastisch musst du das nicht
> sehen.

Sorry. Mir drückt's heute schon den ganzen Tag an der Galle, da werde 
ich leicht garstig :-(

von Schwurbl (Gast)


Lesenswert?

und ich finde die Pommes von Mc Donalds doch besser.

von Lukas (Gast)


Lesenswert?

@Schwurbl: keine Frage, McD schmeckt besser
@meister eder: OK, danke erstmal. ich hab ein paar C-Vorkenntnisse, die 
aber nicht ausreichen, so wies ausschaut. Braucht man bei den Assembler 
Tutorials auch Vorkenntnisse oder kennt jemand eines, wo man auch gleich 
Assembler mitlernt? Ein Link wäre echt cool!

Ich schau mich mal weiter um
Luki

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.