Hallo, für eine winzige Anwendung möchte ich einen kleinen PIC (8 Bit,
11 I/O) einsetzen.
Ich hätte gerne Tips, was für eine Entwicklungsumgebung und welchen
Programmer/Debugger ich benutzen sollte.
Aufgaben:
- 5 LEDs ansteuern
- 1 Taster abfragen
- 2 PWM-Signale erzeugen, langsam, notfalls über Timer
- 3 MOSFETs ansteuern
Ich bin verwirrt über die Entwicklungsumgebungen und
Programmer/Debugger.
Es gibt natürlich ziemlich viele Infos im Internet, aber die sind zum
Teil veraltet und schwer als veraltet erkennbar.
Die aktuelle IDE ist wohl MPLAB X, richtig?
Als Programmer/Debugger finde ich auf der Microchip-Seite
PICKIT 3: nicht mehr lieferbar, Links auf der Microchip-Seite führen ins
Leere
PICKIT 4: Momentan schwer zu beschaffen, China...
MPLAB REAL ICE: teuer
MPLAB ICD 4: Mir ist nicht klar, ob man damit auf einem PIC debuggen
kann
MPLAB SNAP: Man liest hier und da, dass das Ding ziemlich unzuverlässig
ist
Was brauche ich, um eine simple Anwendung mit z.B. PIC16F153 zu
entwickeln?
An MPLAB X plus den jeweiligen COmpilern (das sind Extra-Downloads)
führt kein Weg vorbei.
Dazu einen beliebigen PICKIT3-Clone vom Chinesen. Das sind alles
1:1-Nachbauten, d.h. die funktionieren genauso gut wie das Original.
PICKIT4 brauchst Du erst, wenn Du irgendwas aus der Atmel-Schiene
programmieren willst. PICKIT3 kann das nicht.
ICD3/ICD4 sind für Leute, die damit Geld verdienen. Schneller, mehr
Breakpoints, Trace.
RealICE ist EOL und wird nicht mehr mit Updates versorgt.
fchk
BS schrieb:> Hallo, für eine winzige Anwendung möchte ich einen kleinen PIC (8 Bit,> 11 I/O) einsetzen.
Warum ausgerechnet einen PIC? Vorkenntnisse scheinst ja keine zu haben.
Jemanden in der Nähe, der dir helfen könnte, auch nicht.
> Ich hätte gerne Tips, was für eine Entwicklungsumgebung und welchen> Programmer/Debugger ich benutzen sollte.
Lesen kannst du? www.microchip.com
Da gibt es die IDE und die Toolchain zum Download.
> Aufgaben:> - 5 LEDs ansteuern> - 1 Taster abfragen> - 2 PWM-Signale erzeugen, langsam, notfalls über Timer> - 3 MOSFETs ansteuern
Also Pillepalle. Vielleicht kommst du angesichts der anscheinend nicht
vorhandenen Vorkenntnisse besser mit einem Arduino zurecht? Da brauchst
du auch kein Programmiergerät. Nur ein USB-Kabel.
> Die aktuelle IDE ist wohl MPLAB X, richtig?
Ja.
> Als Programmer/Debugger finde ich auf der Microchip-Seite> PICKIT 3: nicht mehr lieferbar, Links auf der Microchip-Seite führen ins> Leere> PICKIT 4: Momentan schwer zu beschaffen, China...
Du mußt es ja nicht direkt in China bestellen. Das PICKIT3 gibt es zwar
tatsächlich nur entweder gebraucht oder als China-Klon. Aber das 4er
kannst du ganz regulär kaufen, z.B. bei Reichelt. Kostet dann halt mehr.
Aber heh - du hast dir den PIC ausgesucht.
>PICKIT 4: Momentan schwer zu beschaffen, China...
Eigentlich nicht. Auch microchipdirect.com listet 259 als sofort
lieferbar.
Für die PIC16F153xx ist der SNAP gelb/grün im "Device Support.htm".
Benutze ich selbst für diese Klasse. Manchmal hakt es, dann wiederum
arbeite ich einen ganzen Arbeitstag damit, ohne irgendwelche Probleme.
Im Angebot für <10€. Und er verarztet auch die AVR. Nachteil ist, der
SNAP kann keine alten PIC. Also solche mit PICxxFyyy als Namen.
Mikroe C, Basic oder Pascal for Pic. Ist einfach und schnell zu lernen.
Progger Debugger haben die auch. Die Demo Version ist beschränkt, reicht
aber für einfache Aufgaben.
Es geht doch nix ueber das gute alte PICKIT2!
Wenn es den betreffenden Controller nicht programmieren kann,
einfach einen anderen nehmen!
Und das aufgeblasene MPLAB-X muss man sich auch nicht antun.
MPLAB 8.92 reicht fuer die kleinen PICs allemal.
Dazu noch XC-8 in der Version 1.45.
Fuer ganz alte PICs gibt es tatsaechlich auch einen IAR-Compiler.
Vorteil: Es ist ein IAR-Compiler.
Nachteil: Wirklich nur ganz alte PICs. Der modernste 8-Pinner waere
da der 12F675.
Ansonsten koennte man sich auch den aktuellen SDCC ansehen.
Aber gegen XC8 ist eigentlich kein Kraut gewachsen.
PICKIT2 schrieb:> Es geht doch nix ueber das gute alte PICKIT2!
Wenn man es hat, dann vielleicht. Aber nachdem schon der Nachfolger, das
PICKIT3 nicht mehr produziert wird ...
> Wenn es den betreffenden Controller nicht programmieren kann,> einfach einen anderen nehmen!> Und das aufgeblasene MPLAB-X muss man sich auch nicht antun.> MPLAB 8.92 reicht fuer die kleinen PICs allemal.
Wieder: wenn man es bereits hat. Die alte IDE kann man zumindest bei MCP
nicht mehr bekommen.
> Dazu noch XC-8 in der Version 1.45.
Dito.
> Fuer ganz alte PICs gibt es tatsaechlich auch einen IAR-Compiler.> Vorteil: Es ist ein IAR-Compiler.> Nachteil: Wirklich nur ganz alte PICs. Der modernste 8-Pinner waere> da der 12F675.
Da der TE schon 11 GPIO verplant hat, nützt ihm ein 8-Pinner dann doch
eher wenig. Ein 8-Bit Kern darf es natürlich durchaus sein.
> Ansonsten koennte man sich auch den aktuellen SDCC ansehen.
Wenn sich da im letzten Jahr nicht enorm viel getan haben sollte, dann
definitiv nicht. Der PIC Port des SDCC war da im wesentlichen eine
Technologie-Demo. Für produktive Verwendung nicht geeignet.
Ich wiederhole aber nochmal meine Frage an den TE: was ist der Grund für
die Wahl der PIC µC? Vorkenntnisse, vorhandene Hard-/Software, Freunde
in der Umgebung die Hilfestellung leisten könnten ... all das wären
valide Gründe für diese Wahl. Aber die scheint es nicht zu geben.
Wenn es keine Präferenz gibt, warum dann nicht ein AVR, ein STM8, ein
8051? Oder - wenn es denn ein einfacher Einstieg sein soll - warum nicht
ein Arduino?
Axel S. schrieb:> Wenn sich da im letzten Jahr nicht enorm viel getan haben sollte, dann> definitiv nicht. Der PIC Port des SDCC war da im wesentlichen eine> Technologie-Demo. Für produktive Verwendung nicht geeignet.
Die pic14 und pic16 backends ist zwar immer noch nicht auf dem Niveau
der anderen Backends, aber zwischen SDCC 3.9.0 und SDCC 4.0.0 gab es
tatsächlich eine große Anzahl an pic14-spezifischen Bugfixes.
Axel S. schrieb:>> Aufgaben:>> - 5 LEDs ansteuern>> - 1 Taster abfragen>> - 2 PWM-Signale erzeugen, langsam, notfalls über Timer>> - 3 MOSFETs ansteuern>> Also Pillepalle. Vielleicht kommst du angesichts der anscheinend nicht> vorhandenen Vorkenntnisse besser mit einem Arduino zurecht? Da brauchst> du auch kein Programmiergerät. Nur ein USB-Kabel.>
Wäre jetzt auch mein Vorschlag. Damit hast du die Aufgabe in einem Tag
erledigt.
Und die CPU kommt eh vom gleichen Hersteller.
11 IOs kann schon ein, im SO14 Gehaeuse winziger, 16F684 bereitstellen.
Oder sein moeglicherweise aktuelleres Pendant.
Bei moderaten Genauigkeitsanforderungen (1 %) auch mit dem internen
Oszillator.
Warum sollte man da zu einem vergleichsweise grossen Fertigmodul
greifen?
Um dann etwas in C++ zusammenzustuempern?
Von den sonstigen Nachteilen wie Energiebedarf und Geschwindigkeit mal
ganz abgesehen.
PICKIT2 schrieb:> ist von Laien programmiert. Empfehlenswert ist der deswegen nicht.
Dann müssen die vielen Produkte die ich damit gemacht habe eine Illusion
sein. Inkl. USB (drive, HMI Com) etc.
Meiner Meinung nach gibt es für Einsteiger nichts besseres. Die Compiler
sind robust und funzen. Für vieles - PWM (Grafik)LCD Touch, Soft SPI und
Uart ... - gibt es ist ne Lib, die I/O s haben _bit Typ usw. Das sind
robuste einfache Compiler mit denen man in kurzer Zeit einfache Projekte
erstellen kann.
Wenn man C nimmt kann man fast ohne Änderung auf andere Compiler
umsteigen (hab selber PIC, PIC32 und ARM) von denen. Hardware kann man
über die -Clicks anstöpseln. Einen Trinamic Stepper hab ich in gestern
in 1 1/2 Stunden zum laufen gebracht, war Erstkontakt.
Kostet aber Geld, aber auch nur einmal. Dafür gibt es im Forum immer
Antworten, leider manchmal über Jahre "wir arbeiten dran". Der
Progger/Debugger taugt mMn auch nichts. Die interne Simulation kann
keine Interrupts ... aber wer braucht die wenn er Soft UART hat und sich
die Variablen nach Hterm schreibt?
Als Progger nehme ich aber (kommt für lau mit MPLAB). Den kann man
komplett per batch steuern. 4 verschiedene Chips mit 4 verschiedenen
Tools gleichzeitig proggen? Wo ist das Problem?
Toby P. schrieb:> Als Progger nehme ich aber (kommt für lau mit MPLAB)
IPE feht da, das Microchip programming environment. Ein 500 Meg Java
bolide mit Ecken und Kanten bei dem man sich fragt was die da geproggt
haben. Bis man kapiert hat wie leistungsfähig das Teil ist. (Die hier so
beliebten Atmel Dinger kann das Ding auch)
Axel S. schrieb:> Ich wiederhole aber nochmal meine Frage an den TE: was ist der Grund für> die Wahl der PIC µC?
Sorry für die späte Antwort!
Ich entwickle seit Jahren Hardware und Firmware für Microcontrollern,
arbeite aber fast ausschließlich mit PSoC3/4/5LP/6 von Cypress, deshalb
kenne ich mich in der Atmel/Microchip-Szene nicht aus. Die
Cypress-Controller sind für diesen Job alle total überdimensioniert.
Vor 5 Jahren habe ich mal was ähnlich Kleines gemacht mit einem
PIC12F675 und dem PICKIT 3, das habe ich aber leider nicht mehr.
Bei dieser neuen Sache muss alles so klein wie möglich sein, deshalb
kommt ein Arduino schon aus Platzgründen nicht in Frage. Die Anwendung
ist simpel (oder mit den Worten von Axel S.: "Pillepalle"), da braucht
man keine Rechenleistung.
Weshalb ich so eine "blöde" Frage gestellt habe:
Ich habe auf der Microchip-Seite gesucht, was für Werkzeuge man aktuell
so benutzt. Da findet man auf der Seite
https://www.microchip.com/design-centers/8-bit/pic-mcus
unter "Hardware Development Tools" - "Emulators & Debuggers" als erstes
einen Link auf das PICkit 3 - der führt aber ins digitale Nirwana:
https://www.microchip.com/mymicrochip/filehandler.aspx?ddocname=en538340
Das hat mich dann doch ziemlich abgeschreckt, dass nicht mal der
Hersteller selbst aktuelle Tools verlinken kann.
Inzwischen habt ihr ja einiges vorgeschlagen, vielen Dank. Ich werde
dann mal berichten, was dabei herausgekommen ist.
BS schrieb:> Ich habe auf der Microchip-Seite gesucht, was für Werkzeuge man aktuell> so benutzt.
Curiosity High Pin Count (HPC) Development Board
https://www.microchip.com/Developmenttools/ProductDetails/DM164136
Da ist alles drauf, inc. Progger (über IPE) Debugger (via MPLAB) und du
kannst alle möglichen PICs im DIP Gehäuse draufstecken.
Kostet weniger als ein PicKit.
BS schrieb:> Ich habe auf der Microchip-Seite gesucht, was für Werkzeuge man aktuell> so benutzt. Da findet man auf der Seite> https://www.microchip.com/design-centers/8-bit/pic-mcus> unter "Hardware Development Tools" - "Emulators & Debuggers" als erstes> einen Link auf das PICkit 3 - der führt aber ins digitale Nirwana:> https://www.microchip.com/mymicrochip/filehandler.aspx?ddocname=en538340>> Das hat mich dann doch ziemlich abgeschreckt, dass nicht mal der> Hersteller selbst aktuelle Tools verlinken kann.
Gibt mal bei Amazon "pickit3" ein - da wird Dir ein ganzer Haufen von
Nachbauten angeboten. Nachdem Du die paar Pickit2-Nachbauten aussortiert
hast (die nicht kaufen) nimmst Du irgendeinen davon und wirst glücklich.
Den Rest bekommst Du bei Microchip als Download.
Wenn Du einen konkreten PIC aussuchst, schau vorher, ob der vom MCC
supported wird. MCC ist ein Codegenerator, der Dir Zeit sparen hilft.
Selbst wenn Du den Output vom MCC nachher nicht im aktuellen Code
verwendest, spart es trotzdem Zeit. Uralt-PICs werden oft nicht mehr
unterstützt, die aktuellen Typen aber schon.
fchk