Forum: Mikrocontroller und Digitale Elektronik Nimm PIC's


von Typic (Gast)


Lesenswert?

Hi Georg

Ich würde dir einen PIC empfehlen !!

Ich habe auch mit PIC's angefangen und bin klasse in die Matertie 
hereingekommmen. Der Assembler ist einiges einfacher, wie bei AVR. Nur 
35 Befehle. AVR = über 100 Befehle.
Außerdem gibt es wenn du unbedingt USB willst den PIC 16C765 mit 
integriertem USB. Aber eines muss dir bei USB im klaren sein.

1. es ist viel komplizierter und Aufwendiger als RS232 (USART), 
(einziger
Vorteil Vcc=5V Rs232= +/- 12V)

1. Es benötigt auch gute DOS-Assembler oder C kentnisse, den Enpfänger 
(Computer) zu kalibrieren und ein Programm zu schreiben, dass dann das 
Zeig rüberlädt.

Aber mit PIC bist du auf jeden Fall gut beraten!

- PIC's sind billig
- Programmer kriegt man bei Ebay für'n paar Mark
- Die komplette Software ist kostenfrei (MPLAB, etc.)

von Gast (Gast)


Lesenswert?

> Der Assembler ist einiges einfacher, wie bei AVR. Nur
> 35 Befehle. AVR = über 100 Befehle.

Lieber ein paar Befehle mehr, als sich bei einfachsten Dingen einen 
abzubrechen.

> - PIC's sind billig

AVRs noch billiger

> - Programmer kriegt man bei Ebay für'n paar Mark

Für AVRs hat die 5 Bauteile in der Bastelkiste, die Software gibts 
gratis.

- Die komplette Software ist kostenfrei (MPLAB, etc.)

> Die für die Atmels kostet 10000000 Euro

BTW: auf welchen Beitrag wolltest du eigentlich antworten?

von A.K. (Gast)


Lesenswert?

> 35 Befehle. AVR = über 100 Befehle.

Das ultimative Argument für MaxQ2000. Da gibt es nur einen einzigen 
Befehl mit 2 Adressierungsarten. Also ganz leicht zu merken.

von Klostein (Gast)


Lesenswert?

>Da gibt es nur einen einzigen
>Befehl mit 2 Adressierungsarten.

Wo steht das?

von A.K. (Gast)


Angehängte Dateien:

Lesenswert?

Im Handbuch davon. Nicht im Klartext, aber es geht eindeutig aus der 
Befehlscodierung hervor. Das zugrunde liegende Prinzip geisterte schon 
lang als running gag durch Rechnerarchitektur-Vorlesungen und -Foren, 
aber Maxim hat tatsächlich damit Ernst gemacht.

von A.K. (Gast)


Lesenswert?

Falls ein Browser mit dem Anhang Probleme hat: ist ein PNG.

"Typic"s Frage erinnert übrigens an ein Experiment in praktischer 
Verhaltensforschung: Such dir eine möglichst hirnrissige These aus, geh 
ins Lager der natürlichen Gegner dieser These und rufe sie laut aus. Wie 
weit kannst du gehen, ohne dass Blut fliesst? ;-)

von Klostein (Gast)


Lesenswert?

>Falls ein Browser mit dem Anhang Probleme hat: ist ein PNG.

Jetzt habe ich es auch herausgefunden.

>"Typic"s Frage erinnert übrigens an ein Experiment in praktischer
>Verhaltensforschung: Such dir eine möglichst hirnrissige These aus, geh
>ins Lager der natürlichen Gegner dieser These und rufe sie laut aus. Wie
>weit kannst du gehen, ohne dass Blut fliesst? ;-)

Ja, das stimmt. Vor allem das Argument "PIC hat 35 Befehler, AVR xyz". 
Ich habe am Anfang auch gedacht, meine Güte, was hat Atmel denn noch so 
alles implementiert. Bis ich herausgefunden habe, dass z.B. für die 
Abfrage jedes der einzelnen Bits im Statusregister ein eigener "Befehl" 
zur Verfügung steht. SO kann man die Befehlszahl auch aufblähen. Die 
PICs sind nicht schlecht, wenn nur nicht dieses blöde 'Banking' wäre...

von snowman (Gast)


Lesenswert?

hi Typic
darf ich fragen, wann du zum letzten mal dich mit den PICs auseinander 
gesetzt hast? einem neuling einen C-typ vorschlagen, tzz tzz... mach mal 
ne runde auf der homepage des herstellers und guck dir an, was es gibt 
;) wie wär's z.b. mit den neueren aus der 18er reihe: gratis compiler, 
SW, librarys, demos und und und... ps: hätte sogar auch welche mit USB 
;) ...und wenn die leistung der 18er nicht reicht, einfach den code 
behalten (mehr oder weniger) und für einen dsPIC compilieren, der die 
3-4x leistung hat und erst noch 16bit breit ist ;)

ps: brenner kann man sich auch für PICs ab 5 Euros machen ;)

von snowman (Gast)


Lesenswert?

nachtrag: PICs ab der reihe 18 haben keine bankings mehr.

von let (Gast)


Lesenswert?

Das glaub' ich jetzt nicht...

Was ist eigentlich los in letzter Zeit? Vollmond? BSE?

von Peter D. (peda)


Lesenswert?

Joa is denn heut scho Weihnachten?

Los Leute, alle ab zu Fernando Heitor und losschreien "Nimm AVRs !"


Peter

von Paule (Gast)


Lesenswert?

> Los Leute, alle ab zu Fernando Heitor und losschreien "Nimm AVRs !"

Wo steht denn das das hier nen AVR Forum ist?

von Christian (Guest) (Gast)


Lesenswert?

AR + USB:
http://www.atmel.com/dyn/corporate/view_detail.asp?FileName=AT90USB162_82_3_7.html

Atmel Introduces Optimized AVR Flash Microcontrollers for USB Full-Speed 
Peripherals


PIC18 haben 2 Assembler "inside" - sagt ja einiges.
Die sind für C optimiert (Version neu)
- und das ging mit dem alten Assembler (Version old, ca. PIC16)
wohl nicht so gut.

von X. H. (shadow0815)


Lesenswert?

Hmm. Angenommen nen AVR hätte RAM-Banking von 255Byte/Page.
Könnte man dafür noch nen vernünftigen C-Compiler schreiben?

von Super (Gast)


Lesenswert?

> nachtrag: PICs ab der reihe 18 haben keine bankings mehr.

Auszug aus [1], Kapitel 5.3:

"The data memory in PIC18 devices is implemented as
static RAM. Each register in the data memory has a
12-bit address, allowing up to 4096 bytes of data
memory. The memory space is divided into as many as
16 banks that contain 256 bytes each;
PIC18F2480/2580/4480/4580 devices implement all
16 banks. Figure 5-6 shows the data memory
organization for the PIC18F2480/2580/4480/4580
devices."

Ich frag mich, warum jeder denkt, dass die neuen PICs kein banking 
haben. Vielleicht liegt es daran, dass keiner freiwillig PIC18 in 
Assembler programmiert...

Microchip wird immer banking nutzen, auch wenn das den Untergang des 
Unternehmens bedeuten würde LOL

[1] http://ww1.microchip.com/downloads/en/DeviceDoc/39637b.pdf

von Dieter Werner (Gast)


Lesenswert?

@ Super (Gast)

Die Sache mit dem RAM Banking hat (wie alle anderen auch) nicht nur eine 
(negative) Seite.
Erstens benötigt man nur 8 Bit zur direkten Adressierung (spart Platz im 
immediate Teil des Codes) und zum anderen gibt es ja immerhin noch 3 
fsr-pointer zur indirekten Adressierung.

Wer in C programmiert kriegt davon aber sowieso nix mit.

von Christian (Guest) (Gast)


Lesenswert?

Zu
Autor:  X. H. (shadow0815)

For PIC18 gibt es ja einen C-Compiler
und der hat banking.
Das banging ist hat zur Folge, das in der Bank
schnell und mit kurzen Befehlen gesprungen werden kann - das geht bei
AVR aber ähnlich, Begriffe wie:
rel. Sprung/Addressierung oder absoluter.

Zu C + Ass: spez. bei PIC18
Ass. läßt sich ggf. nicht so einfach von PIC16
auf 18 transferieren, weil:
  es gibt Ass. Befehle mit 2 Bedeutungen, da es 2 Ass.
  "inside" gibt.
Ob das für die PIC16-Befehle gilt?
Den Ass.-Modus kann man umschalten - bin mir aber icht ganz sicher,
das habe ich vor over 1 Jahr mal gelesen.

"PIC" schreibt selbst, dass der eine Ass-Modus
(bzw. angepasste/optimierte Befehle) für C ist.

von Dieter (Gast)


Lesenswert?

Was hacken hier immer alle auf den PICs rum?

Vergesst mal nicht, daß die PIC-Architektur eine sehr alte ist, älter 
noch als die 8051er. Damals waren diese Krücken ganz normal.

Wer sich nen Oldtimer kauft, meckert doch auch nicht darüber, daß der 
sich nicht wie ein Porsche Turbo GT fährt.
Also immer schön sachlich bleiben. PICs sind Oldtimer und darum 
natürlich nicht so leistungsfähig und modern wie AVRs oder ARMs. Aber 
wer einen PIC wählt, schert sich einen Teufel darum, er will halt das 
Nostalgische am PIC erleben...

von Severino R. (severino)


Lesenswert?

PIC18 haben sehr wohl ein Banking für den Zugriff auf das RAM, aber sie 
haben kein Paging (mehr)! D.h. der Programmspeicher ist linear.
Das sind zwei ähnliche Konzepte, aber sind nicht zu verwechseln.
Über sog. FSR (File Select Register) kann auf das ganze RAM direkt, also 
ohne Bank-Switching, zugegriffen werden.

PIC18 haben auch nicht zwei "Assembler inside", sondern sie haben einige 
erweiterte Befehle, die man per Configuration Bit einschalten kann.

Ein Assembler ist ein Programm, welches ein Assembler-File in 
Maschinensprache umsetzt. Ein Prozessor versteht nur Maschinensprache.
Die "Assembler-Befehle" sind sog. Mnemonics, also eine Darstellung, die 
sich ein Mensch einfacher merken kann als ingendwelche Hex-Zahlen.

Severino

von SIGINT (Gast)


Lesenswert?

@Dieter:
   Ähhhh, als ich mit PICs angefangen habe da wollte ich nicht das 
nostalgische Feeling haben.... ich dachte das wäre ein moderner 
Mikrocontroller, der schön zu programmieren sei.
So schlecht sind die PICs ja auch nicht. Im Gegenteil: Die Teile 
(zumindest die Alten) halten extrem viel aus.
Ich finde die AVRs aber mittlerweile sehr viel besser... in ASM sind die 
einfach prima zu programmieren, obwohl die für C optimiert wurden.

Gruß,
  SIGINT

von Super (Gast)


Lesenswert?

> D.h. der Programmspeicher ist linear.

Mal ganz blöd gefragt, aber welcher PIC hatte denn keinen linearen 
Programmspeicher? Ich kann mich nicht erinnern, dass der 
Programmspeicher eines PICs jemals in "pages" unterteilt war. Irgendwie 
stehe ich gerade auf dem Schlauch.

von S. W. (Gast)


Lesenswert?

> Programmspeicher? Ich kann mich nicht erinnern, dass der
> Programmspeicher eines PICs jemals in "pages" unterteilt war. Irgendwie
> stehe ich gerade auf dem Schlauch.

Schau dir mal die PIC16-Reihe an.

von Bri (Gast)


Lesenswert?

Bin ich der einzige, der sich über die 13V Programmierspannung bei PICs 
aufregt? Bei den AVRs sieht man doch, dass es auch ohne geht.

von S. W. (Gast)


Lesenswert?

Bri wrote:
> Bin ich der einzige, der sich über die 13V Programmierspannung bei PICs
> aufregt? Bei den AVRs sieht man doch, dass es auch ohne geht.

Teils richtig. Bei den PICs gibt es auch LV-Typen. Und bei den AVRs 
kannst du mal versuchen, den AVR wieder zu beschreiben, wenn du SPIEN 
falsch gesetzt hast. Oder verwende doch mal den Reset Pin als I/O.

von tastendrücker (Gast)


Lesenswert?

>Bin ich der einzige, der sich über die 13V Programmierspannung bei PICs
>aufregt?

He? Schon mal was von "low voltage programming" gehört?

Z. B. PIC16F628, DS40044D, Seite 112

von A.K. (Gast)


Lesenswert?

Die 12bitter sind da eine ganz besondere Nummer: Von jeder Bank ist nur 
die erste Hälfte per CALL erreichbar, in die zweite Hälfte kommt man nur 
per GOTO.

von Peter D. (peda)


Lesenswert?

Super wrote:

> Mal ganz blöd gefragt, aber welcher PIC hatte denn keinen linearen
> Programmspeicher? Ich kann mich nicht erinnern, dass der
> Programmspeicher eines PICs jemals in "pages" unterteilt war.


Da wollte ich grad auf die SX-Familie von UBICOM verweisen, da konnte 
jede 2.Page nicht mal Ziel eines CALL sein.

Aber nun sehe ich, die wurden ja schon 2005 wieder eingestampft.

Da konnte sich trotz der 75MIPS (100MIPS beworben) wohl keiner für 
erwärmen.
Man hätte ja auch nicht gerade die allerälteste Architektur (PIC12-Core) 
aufpimpen müssen.


Peter

von Timo Z. (typic)


Lesenswert?

auf den Artikel bezüglich USB !!

von Timo Z. (typic)


Lesenswert?

Ich arbeite gerade aktiv mit verschieden PIC's.
Und ich wollte auf einen Thread antworten bei dem es um USB ging.
Ich bin neu im Forum und habe ausversehen auf "neuer Thread" geklickt.

Und in diesem Thread in dem ich antworten wollte, ging es nur um OTP.
Und außerdem gibt es bei PIC nur Microcontroller mit OTP die sich 
gleichsam mit JDM-Programmer programmieren lässt. Alle anderen USB-PIC's 
sind 18fxxx, und für diese braucht man ein etwas aufwendigeren 
Programmer.
Schau mal


http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=111&mid=10&lang=en&pageId=74

von Falk (Gast)


Lesenswert?

Passend zur Rechtschreibung des Thema und dem Thema an sich

http://www.apostroph.de/

MfG
Falk


von Timo Z. (typic)


Lesenswert?

Sorry
Habe hier wohl eine grundsatz-Diskusion vom Zaun gebrochen.
Wollte eigentlich nur auf eine Frage in einem Thread antworten.

Wenigstens gibt's Diskusionsstoff !!

von Marco S. (masterof)


Lesenswert?

mal eine frage zeit wann hat der PIC16f876 den paging?

von Severino R. (severino)


Lesenswert?

@ Marco Schwan

Es war ja nicht explizit die Rede vom PIC16F876.

Jedenfalls hat der PIC16F876 vier "Program Memory Pages", nachzulesen im 
Datenbuch im Kapitel 2.1 Program Memory Organization.

Um ein Missverständnis auszuschalten:
Der Programm-Counter ist zwar 13 Bit breit, kann also alle 8k 
adressieren.
Die GOTO und CALL Befehle akzeptieren jedoch nur einen 11 Bit Parameter 
und ergänzen die verbleibenden 2 Bits aus dem Register PCLATH. Diese 
beiden Bits adressieren die Page.

Alles klar?

Severino

von Winfried (Gast)


Lesenswert?

Also als ich 1994 mit PIC's angefangen hatte, waren die noch recht neu 
am Markt. 8051er hingegen gab es glaube ich schon 15 Jahre. Nur mal so 
zur Richtigstellung, welche Technologie älter ist.

Hier auch noch Links:
http://de.wikipedia.org/wiki/8051
http://de.wikipedia.org/wiki/PICmicro

von Sepp (Gast)


Lesenswert?

@Winfried:
Wer lesen kann, ist klar im Vorteil.
Nur mal so zur Richtigstellung, welche Technologie älter ist.

Hier auch noch Links:
http://en.wikipedia.org/wiki/PIC_microcontroller#Origins
http://de.wikipedia.org/wiki/Intel_8051

PIC: 1975
8051: 1980

Nur, falls das Lesen wieder Schwierigkeiten macht...

von Michael (Gast)


Lesenswert?

Wow, das hätte ich nicht gedacht!

Warum hat Microchip denn so eine alte Architektur als Basis für alle 
8Bit-Controller genommen? Das ist doch absolut unlogisch!
So schwer ist es doch wohl nicht für einen großen Halbleiterhersteller, 
einen vernünftigen 8Bitter zu entwickeln, der diese ganzen Krücken 
nichthat, oder?

von Severino R. (severino)


Lesenswert?

@ Michael

Sehr oft ist es halt so, dass man etwas hat, das funktioniert.
Man kann alles immer noch etwas besser machen, und im Nachhinein ist man 
klüger. Vielleicht ist man ja gar nicht so sicher, dass es ein Erfolg 
wird, und will keinen grossen Aufwand treiben. Und wenn der Erfolg da 
ist, ist es zu spät, um alles zu ändern, weil es sonst nicht mehr 
kompatibel ist.
(die älteren Jahrgänge erinnern vielleicht an die Entstehung des IBM-PC 
;-)

Einige Kriterien für einen guten Controller sind:
Gute Verfügbarkeit, auch in kleinen Stückzahlen
Dokumentation
Entwicklungssysteme
Langfristige Verfügbarkeit
Zuverlässigkeit des Produkts
Zuverlässigkeit des Lieferanten
Preis/Leistung
(Liste nicht vollständig, da viele Kriterien auch individuell)

die Architektur ist nur eines von vielen Kriterien

Ausserdem war Microchip früher, als die Architektur gewählt wurde, nicht 
einer der grossen Halbleiterhersteller.

Severino

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.