Forum: Mikrocontroller und Digitale Elektronik PIC-Prozessor programmieren


von Michael S. (misax)


Lesenswert?

hallo;
kann mir jemand die Analogien zu folgendem Szenario sagen (oder zu 
Teilen davon):
1. ich nehme einen ATMEGA328P-PU-Prozessor und ein Breadboard
2. verbinde ihn mit einem Arduino Nano (als Programmer)
3. und kann ihn jetzt mit der Arduino IDE programmieren
4. und mit dem ATMEL-Studio und avrdude sogar in Assembler.
wie kann ich das mit einem PIC-Prozessor machen ?
1. welchen Prozessor nehme ich am besten als Einstieg ?
2. was eignet sich als Programmer ?
3. gibt es für PIC eine spezielle IDE oder was nehme ich am besten ?
4. wie kann ich den PIC in Assembler programmieren ?
Vielen Dank

von Teo D. (teoderix)


Lesenswert?


von H. H. (Gast)


Lesenswert?

Das ist ein weites Feld:

https://en.wikipedia.org/wiki/PIC_microcontrollers#Device_families


Was führt dich denn zu denen?

von Bratmaxxe (Gast)


Lesenswert?

Von Microchip gibt es diverse Programmer für unterschiedliche Zwecke und 
Microcontroller.
Das wohl gängigstr ist das PicKit 3/4.
Günstige, funktionsfähige Clones gibt es in der Bucht für 10-15€.
Dann musst du es nur noch richtig anschließen und los geht's :)

von Peter D. (peda)


Lesenswert?

Michael S. schrieb:
> wie kann ich das mit einem PIC-Prozessor machen ?

Es gibt nicht den PIC.
Zwischen PIC10,12,16,18,24,32 sind die Unterschiede erheblich.
Welcher also?
Und warum?
Was muß der können, was nicht mit AVRs geht?

Michael S. schrieb:
> 4. wie kann ich den PIC in Assembler programmieren ?

Prust, laß es besser.

von Michael S. (misax)


Lesenswert?

Es ist reines Hobby und Interesse. Mit ATMEGA bin ich mittlerweile sehr 
vertraut, mehrere diverse Chips und auch in Assembler. Jetzt möchte ich 
mich mit einer anderen Chip-Gruppe befassen. Mit welchem PIC fange ich 
denn am besten an ? Einer der so etwa die Komplexität vom ATMEGA328P hat 
?

von Peter D. (peda)


Lesenswert?

Michael S. schrieb:
> Mit ATMEGA bin ich mittlerweile sehr
> vertraut, mehrere diverse Chips und auch in Assembler.

Das heißt aber noch lange nicht, daß Du auch wirklich programmieren 
kannst und etwas größere Projekte wuppen und weißt, wie man ein 
Softwareprojekt überhaupt entwickelt. Du bist immer noch bei den 
absoluten Grundlagen.

Ein paar umfangreiche Softwareprojekte erfolgreich zu beenden und vor 
allem zuverlässig zu machen, bringt Dir erheblich mehr Wissensvorsprung, 
als in viele Architekturen nur mal kurz reinzuschnuppern.

Beitrag #7231138 wurde von einem Moderator gelöscht.
von H. H. (Gast)


Lesenswert?

Michael S. schrieb:
> Es ist reines Hobby und Interesse. Mit ATMEGA bin ich mittlerweile
> sehr
> vertraut, mehrere diverse Chips und auch in Assembler. Jetzt möchte ich
> mich mit einer anderen Chip-Gruppe befassen. Mit welchem PIC fange ich
> denn am besten an ? Einer der so etwa die Komplexität vom ATMEGA328P hat
> ?

Die Peripherie ist doch nicht relevant, um das Programmiermodell 
kennenzulernen.

Im Prinzip reicht schon ein PIC16F54 völlig aus.

PIC16F84 könntest du ein paar geschenkt bekommen.

von Lothar (Gast)


Lesenswert?

Michael S. schrieb:
> verbinde ihn mit einem Arduino Nano (als Programmer)

Du kannst Dir die neuen AVR DB mit ADC DAC ansehen, hier mit Debugger:

https://www.microchip.com/en-us/development-tool/EV35L43A

Die 8051 Konkurrenz ist allerdings billiger und schneller und einfacher, 
und mit J-Link Debugger, und mit ROM-Bootloader:

https://www.silabs.com/development-tools/mcu/8-bit/bb52-ek2701a-efm8bb52-explorer-kit

https://www.silabs.com/development-tools/mcu/8-bit/efm8bb1lck-starter-kit

Zudem musst Du bei den AVR DB den Bootloader erst mal selbst drauf 
machen, mit UPDI über USB-seriell:

https://github.com/SpenceKonde/DxCore

von Franko P. (sgssn)


Lesenswert?

Wie andere oben schon geschrieben haben ist der uralt PIC16F84 gut um 
einen PIC in Assembler zu programmieren, da es für den ein ausführliches 
datenblatt mit Assemblerbefehlen gibt. Aberdas taugt nur um Assembler zu 
programmieren. Für Programmieren in C würde ich aktuelle PIC's wie den 
16F18855 oder einen seiner großer Brüder empfehlen.

Gruß

Beitrag #7231192 wurde von einem Moderator gelöscht.
von Warum (Gast)


Lesenswert?

Michael S. schrieb:
> Es ist reines Hobby und Interesse. Mit ATMEGA bin ich mittlerweile sehr
> vertraut, mehrere diverse Chips und auch in Assembler. Jetzt möchte ich
> mich mit einer anderen Chip-Gruppe befassen. Mit welchem PIC fange ich
> denn am besten an ? Einer der so etwa die Komplexität vom ATMEGA328P hat
> ?

Wenn du schon ein bisschen Ahnung hast und das zum Lernen sein soll, 
würde ich dir einen aktuellen PIC24 empfehlen. Sind ein bisschen 
aufwändiger zum initialisieren als die PIC16, man kann sie aber immer 
noch prima im Assembler programmieren, wenn man will. Meist verwendet 
man hier aber natürlich C.

Die PIC24 können eben etwas mehr als ein 8-bitter die Lernkurve ist aber 
nicht ganz so steil wie bei den PIC32.

Eigentlich brauchst du nur ein Pickit von Microchip (oder eben ein 
entsprechenden Clone) zum Programmieren und Debuggen. Die komplette 
Entwicklungsumgebung inkl. C Compiler gibts von Microchip kostenlos (es 
sei denn du benötigst die Optimierungen des C-Compilers).

Die komplette Grundbeschaltung findest du in den sehr übersichtlichen 
Datenblättern und schon kanns eigentlich los gehen.

Viel Spaß :)

Beitrag #7231218 wurde von einem Moderator gelöscht.
von LWL (Gast)


Lesenswert?

Das Zieleinsatzgebiet fuer 8 bit PICs ist kleines und anspruchsloses 
Zeug.

Was will man da mit:
>  PIC24 empfehlen. Sind ein bisschen aufwändiger zum initialisieren

In der Gewichtsklasse findet sich nun wirklich reichlich besseres.

Zum Kennenlernen ist ein 16F84 gar nicht so verkehrt.
Wenn man spaeter stromsparende Kleinigkeiten bauen will,
empfehlen sich dann die Nachfolger die dann auch sinnvolle
Peripherie mitbringen.

So als ATMEGA8 Ersatz wuerde ich z.B. zum 16F886 greifen.
Der hat als grossen Bruder den 16F887 mit 40 Pins.
Fuer weniger Pins den 12F683 (8 Pin) oder 16F684 (14 Pin).
Wess es nicht auf jedes mW ankommt auch den 12F675 (8 Pin).

Viele hier im Forum empfehlen immer stur die allerletzen
Derivate. Die haben dann gleich so viel Peripherie, dass man
im konkreten Fall davon 80 oder 90 % gar nicht nutzt.
Aber trotzdem bezahlt...

von LWL (Gast)


Lesenswert?

Nachtrag

Wenn du, was durchaus sinnvoll ist, die PICs in Assembler programmieren
willst, installiere dir den XC8 Compiler und benutze dessen Assembler.

Das erspart dir viel "Umgewoehnung" wenn du mal auf C umsteigst
und Teile deines Projektes trotzdem in Assembler schreiben willst.

von Warum (Gast)


Lesenswert?

LWL schrieb:
> Viele hier im Forum empfehlen immer stur die allerletzen
> Derivate. Die haben dann gleich so viel Peripherie, dass man
> im konkreten Fall davon 80 oder 90 % gar nicht nutzt.
> Aber trotzdem bezahlt...

Sowas kann ich nicht verstehen. Gerade im Hobbybereich ist es doch 
absolut Wurst ob ein Microcontroller 3 oder 4 Euro kostet. Hier sucht 
man sich doch einen, den man in möglichst vielen Projekten einsetzen 
kann.


LWL schrieb:
>>  PIC24 empfehlen. Sind ein bisschen aufwändiger zum initialisieren
>
> In der Gewichtsklasse findet sich nun wirklich reichlich besseres.

Das kannst du natürlich gerne so sehen. Ich werde nie mehr einen 
8-bitter einsetzen, wenns nicht gerade auf den letzten Cent ankommt. 
Schon gar nicht den alten 16F84. Sorry aber der ist nunmal völlig 
veraltet. Und preislich schenken sich die PIC24 bei kleinen Stückzahlen 
im Vergleich zu PIC16 oftmals nichts.

von Pickelig (Gast)


Lesenswert?

Um PICs zu programmieren, eignet sich MPLAB Snap. Kostet weniger als ein 
PicKit.

Als Software gibt es von Microchip die MPLAB IDE.

MPLAB Snap ist kein reiner Programmierer, sondern ein Debugger.

Das Ding kann sogar (mit einer anderen Firmware) als 
Programmierer/Debugger für alle AVRs und diverse SAMD-ARMe verwendet 
werden, dann kann man auch Microchip Studio (das frühere Atmel Studio) 
verwenden. Das ist deutlich weniger eklig als die auf Netbeans 
basierende MPLAB IDE.

von LWL (Gast)


Lesenswert?

> Gerade im Hobbybereich ist es doch
> absolut Wurst ob ein Microcontroller 3 oder 4 Euro kostet.

Sowas kann ich nun nicht verstehen.
Wenn es der 8 oder 14 Pinner fuer 30 bis 40 Ct genauso tut.
Noetigenfalls wird noch ein HC595 fuer 3 Ct das Stueck oder
auch ein paar mehr davon drangehaengt. Die haben obendrein
den Vorteil dass man die Ausgaenge nicht EMV-traechtig muxen
muss, sondern fast statisch ansteuern kann.

> Hier sucht
> man sich doch einen, den man in möglichst vielen Projekten einsetzen
> kann.

Das ist genauso Unsinn und allgemin unzutreffend.

Es gibt oft Dinge da brauche ich DSPs und auch Dinge da verwende
ich (kleine) FPGAs. Wenn ich umfaenglich Grafiken/UIs (an)steuern
will, dann mit Controllern die Grafikbeschleuniger onboard oder
als Companionchip haben.

Diese Spanne decken auch deine putzigen "3 oder 4 Euro"
Controller nicht annaehernd ab.
Es ist ein Hirngespinst anzunehmen, dass die Verwendung nur
eines Controllers etwas erleichtern wuerde.

von LWL (Gast)


Lesenswert?

> den alten 16F84. Sorry aber der ist nunmal völlig veraltet

Zum Kennenlernen kann der genau die selben 35 Befehle wie die
anderen Midrange PICs.
Ich glaube du hast einfach keine Ahnung.

von Martin (Gast)


Lesenswert?

Ich bin vor einigen Jahren mit Pickit 3 (jetzt gibt es V4), MPLAB X IDE 
von Microchip und 16F628, 16F886, 16F887 und 18F1320 (hat ein paar 
Befehle mehr) eingestiegen. In der IDE war bis zu einer bestimmten 
Version ein Assembler-Compiler enthalten.

Wenn du einen PIC mit mehr EEPROM benötigst oder spezifische Funktionen, 
musst du andere Versionen auf microchip.com suchen. Oder die Nachfolger 
der oben genannten. Notfalls mal die Datenblätter durchlesen (mehrere 
hundert Seiten).

sprut.de kann ich nur wärmstens empfehlen.

von Christoph db1uq K. (christoph_kessler)


Angehängte Dateien:

Lesenswert?

>den alten 16F84
Ach ja, der einzige PIC, den ich mir mal gekauft habe. Der erste, den 
man wieder löschen und neu programmieren konnte (von teuren 
UV-löschbaren PIC im Keramikgehäuse mit Fenster mal abgesehen).

Für den gab es ein Programm für einen Video-Bildmustergenerator. Da war 
jemand fleißig in Assemblerprogrammierung. Den habe ich auch mal 
ausprobiert. Seither liegt er rum.

PICDREAM hieß der Videogenerator. Natürlich nur Schwarzweiß.
http://www.nomad.ee/PIC/index.shtml
von 1997
- a 7 scrolling 5*7 characters message in the top of screen,
- gray scale bars in the middle,
- a real time clock in the bottom.


Die rot-blau-weiße Schuhcremedose hatten wir auch in der Firma.
https://en.wikipedia.org/wiki/MPLAB

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Ich habe mir damals das gekauft:
https://www.microchip.com/en-us/development-tool/DV164130#Overview

Programmer und Evalboard in einer Kiste. Mitgeliefert wurde noch ne CD 
mit Mplab 8 und X.

von neuer PIC Freund (Gast)


Lesenswert?

MPLABX installieren. Im "HWToolDebugFeatures.html" ein Modell mit 
wenigstens 3 Breakpoints wählen. Dazu noch "Debug Reads" und "Runtime 
BPs". Snap kaufen (wenn Zeitmaschine vorhanden, zurückreisen. Kostet 
dann 12€) und loslegen. Bei der Wahl des uC im Vorfeld nach 
Pins/Spannungen/sonstwas achten und beim Objekt der Begierde das Errata 
studieren. XC8 installieren und Prog im Simulator und auf Hardware 
durchsteppen. Dabei disassembly beobachten.

Ist schon alles recht bequem heute.

Und den 16F54 eher nicht anfassen. Beim AVR empfiehlt auch keiner den 
AT90S1200.

von H. H. (Gast)


Lesenswert?

neuer PIC Freund schrieb im Beitrag #7231431:
> Und den 16F54 eher nicht anfassen.

Um Schreiben zu lernen keinesfalls die Bücher der Grundschule verwenden!


> Beim AVR empfiehlt auch keiner den AT90S1200.

Ist ja auch schon lange tot.

von Warum (Gast)


Lesenswert?

LWL schrieb:
> Zum Kennenlernen kann der genau die selben 35 Befehle wie die
> anderen Midrange PICs.
> Ich glaube du hast einfach keine Ahnung.

Natürlich ist der Assemblercode identisch. Aber man will doch aber mit 
dem Microcontroller ein (Lern-) Projekt umsetzen und die Hardwaremodule 
sind nunmal völlig veraltet. Was bringts einem Lernwilligen auf 
veralteter Hardware zu lernen? Zu den PIC24 hast du übrigens 
geschrieben:

> In der Gewichtsklasse findet sich nun wirklich reichlich besseres.

so siehts mit dem PIC16F84 im Vergleich zu neueren PIC16 auch aus ;) 
Zudem argumentierst du oben mit dem Preis. Für das was der PIC16F84 kann 
ist der mittlerweile sehr teuer im Vergleich zu neueren und auch 
einfachen PIC24 Modellen. Die PIC24 gehen ab ca. 1,40€ bei kleinen 
Mengen los. Die PIC16F84 kosten mittlerweile 5€. ;)

Witzig, wie auf einmal die eigenen Argumente gegen einen sind, oder?

LWL schrieb:
>> Gerade im Hobbybereich ist es doch
>> absolut Wurst ob ein Microcontroller 3 oder 4 Euro kostet.
>
> Sowas kann ich nun nicht verstehen.
> Wenn es der 8 oder 14 Pinner fuer 30 bis 40 Ct genauso tut.
> Noetigenfalls wird noch ein HC595 fuer 3 Ct das Stueck oder
> auch ein paar mehr davon drangehaengt. Die haben obendrein
> den Vorteil dass man die Ausgaenge nicht EMV-traechtig muxen
> muss, sondern fast statisch ansteuern kann.

Naja, so wie ich das verstanden haben, möchte der Threadinhaber erstmal 
die PICs kennenlernen und nicht gleich auf 5 unterschiedlichen Typen 
programmieren. Und ja, da wird er wahrscheinlich erstmal zwei, drei 
Projekte mit dem gleichen Microcontroller aufbauen wollen und sich 
langsam drantasten. Da fängt man mit Blink LED an, wahrscheinlich UART, 
I2C, EEPROM, etc. Später sieht das natürlich anders aus. Sorry, aber 
grad am Anfang tut man sich keinen Gefallen mit einem 30 Ct Controller. 
Da ist es wirklich Wurscht ob das Teil 1€ teurer ist. Geht ja nicht 
gleich in Massenproduktion.

LWL schrieb:
>> Hier sucht
>> man sich doch einen, den man in möglichst vielen Projekten einsetzen
>> kann.
>
> Das ist genauso Unsinn und allgemin unzutreffend.
>
> Es gibt oft Dinge da brauche ich DSPs und auch Dinge da verwende
> ich (kleine) FPGAs. Wenn ich umfaenglich Grafiken/UIs (an)steuern
> will, dann mit Controllern die Grafikbeschleuniger onboard oder
> als Companionchip haben.

Ja das ist bei mir mittlerweile auch so, aber denkst du, dass das für 
jemanden, der sich in die Thematik einarbeiten will sinnvoll ist? Auf 
der einen Seite schlägst du den PIC16F84 zum lernen vor und jetzt 
argumentierst du mit DSP und Grafikbeschleuniger?? Klar kann man machen, 
bringt dem Threadersteller aber nix..

LWL schrieb:
> Es ist ein Hirngespinst anzunehmen, dass die Verwendung nur
> eines Controllers etwas erleichtern wuerde.

Soso, ist das so? Da gibts genügend praktische Beispiele, die das 
widerlegen. Sorry ;)

LWL schrieb:
> Ich glaube du hast einfach keine Ahnung.

Sowas sollte man niemandem unterstellen, den man nicht kennt.

von H. H. (Gast)


Lesenswert?

Warum schrieb:
> Die PIC16F84 kosten mittlerweile 5€.

Oder man hat noch einen Sack voll rumliegen.

von Teo D. (teoderix)


Lesenswert?

H. H. schrieb:
> Warum schrieb:
>> Die PIC16F84 kosten mittlerweile 5€.
>
> Oder man hat noch einen Sack voll rumliegen.

Nur wozu? Ähhh, ich frag da aus reinem Eigeninteresse. :)

von Peter D. (peda)


Lesenswert?

neuer PIC Freund schrieb im Beitrag #7231431:
> Beim AVR empfiehlt auch keiner den
> AT90S1200.

Mit 3-Level Hardwarestack, wenn da mal nicht echtes PIC-Feeling 
aufkommt.

von Warum (Gast)


Lesenswert?

H. H. schrieb:
> Oder man hat noch einen Sack voll rumliegen.

Scheinbar hat das der Threadersteller aber nicht.. Also hilft ihm diese 
Aussage nicht wirklich weiter, oder? Aber ich freue mich sehr für dich, 
dass du noch ganz viele PIC16F84 hast. Ganz viel Spass damit :)

von H. H. (Gast)


Lesenswert?

Teo D. schrieb:
> H. H. schrieb:
>> Warum schrieb:
>>> Die PIC16F84 kosten mittlerweile 5€.
>>
>> Oder man hat noch einen Sack voll rumliegen.
>
> Nur wozu? Ähhh, ich frag da aus reinem Eigeninteresse. :)

Man kann sie einfach nicht wegwerfen...

von H. H. (Gast)


Lesenswert?

Warum schrieb:
> H. H. schrieb:
>> Oder man hat noch einen Sack voll rumliegen.
>
> Scheinbar hat das der Threadersteller aber nicht.. Also hilft ihm diese
> Aussage nicht wirklich weiter, oder?

Oder!

Beitrag "Re: PIC-Prozessor programmieren"


> Aber ich freue mich sehr für dich,
> dass du noch ganz viele PIC16F84 hast. Ganz viel Spass damit :)

Du musst nicht neidisch sein.

von Warum (Gast)


Lesenswert?

H. H. schrieb:
>> Aber ich freue mich sehr für dich,
>> dass du noch ganz viele PIC16F84 hast. Ganz viel Spass damit :)
>
> Du musst nicht neidisch sein.

Bin ich nicht, und das war auch nicht böse gemeint, nur es ändert halt 
nix dran, dass die PIC16F84 mittlerweile neu in kleinen Stückzahlen um 
die 5€ kosten. Egal ob du welche daheim liegen hast oder nicht.

H. H. schrieb:
> Oder!
>
> Beitrag "Re: PIC-Prozessor programmieren"

Wenn du davon dem Threadersteller aber kostenfrei paar abdrücken 
kannst/willst, ist das mehr als löblich.

von LWL (Gast)


Lesenswert?

> schlägst du den PIC16F84 zum lernen vor

Ich habe nur geschrieben, dass der 16F84 sich genauso gut wie
jeder andere Midrange PIC zum Erlernen des Assemblers eignet.
Weil er eben den selben Befehlssatz hat.
Wer diesen bemerkenswerten Umstand nur mit dem Argument
"veraltet" abtut:
> Ich glaube du hast einfach keine Ahnung.
Etwa dem TO einen 16 bit Controller vorzuschlagen.
Das ist ja nun voll am Thema vorbei.

Etwas nicht verkehrt zu finden, impliziert keine Empfehlung.
Es haette ja sein koennen, dass er einen herumfliegen hat.
Mein Kennenlern-PIC war z.B. ein 16LF819 aus einem HP Akkumodul.
Da musste ich auch nicht nach Empfehlungen fragen.

Nach deinem Paradigma "stoeren" die 5 Euro ja auch nicht wirklich,
da es nur ein Einzelstueck ist.

Ansonsten kann sich der TO ja an meine uebrigen Vorschlaege halten.
Die alle keine 5 Euro kosten.

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.