Hallo, ich wollte mal fragen, was denn eigentlich das besondere an PIC Controllern ist, im Vergleich zu beispielsweise der Familie der 8051 Controller. Ständig lese ich im Forum über PIC aber es gibt ja nichtmal einen vernünftigen (freien) C-Compiler. Was können die was die anderen nicht können? MfG Matthias
es gibt mehr als einen freien C compiler dafür, auch wenn man den eigentlich nicht braucht, die teile sind weltweit verbreitet und zu bekommen, billig, entwicklungswerkzeuge können sehr einfach selbst gebaut werden. esgibt eine sehr breite produktpalette mit weitem leistungspectrum und sehr viele beispielprojekte und informationen dazu im netz. ausserdem sind sie zuverlässig und robust, und man bekommt fast alle im gut handhabbaren DIP.
Warum meinst Du dass man einen C-Compiler für PIC nicht braucht? Sind die so einfach zu programmieren?
"Ständig lese ich im Forum über PIC" Welches Forum meinst Du denn, hier wird doch haupsächlich über AVR und 8051 geredet. So richtig aktive Foren über PIC habe ich noch nirgends gesehen, nur welche über AVR: http://www.avrfreaks.net/index.php?name=PNphpBB2&file=index und über 8051: http://www.8052.com/forum/ http://forums.semiconductors.philips.com/forums/viewforum.php?f=1 http://www.keil.com/discuss/threadlist.asp Oder meinst Du das hier: http://hcmf.com/pic.shtml Peter
Hi aber AFAIK keinen einzigen der unbegrenzt große Binaries erzeugen kann und dessen Sourcecode auch zugänglich ist. Und genau das ist IMHO das Argument für den AVR in der 8-Bit Klasse. Matthias
@Peter "So richtig aktive Foren über PIC habe ich noch nirgends gesehen, nur welche über AVR:" Dann will ich deinen begrenzten Horizont mal etwas erweitern. aktive Foren findest Du z.B. hier: http://www.fernando-heitor.de/picforum/ http://forum.microchip.com/ @Tom Welchen Compiler meinst Du? Beschränkte Demoversionen mal weggelassen? @Mathias (Fragesteller) Was besonderes gibt es nicht an den PICs. Ist im Prinzip nur ein anderer MC mit Vor- und Nachteilen. Ein paar Vorteile hat Tom ja schon aufgezählt. Etliche (größtenteils falsche) Vorurteile findest Du hier im Forum zur Genüge.
Na gut, dann halt mal anders: es gibt keinen freien C-Compiler, der aus dem Beta-Stadium heraus ist. Und das Zeug, was es von Microchip gibt, ist meiner Ansicht nach nicht das Geld wert, was es kostet. Das ist nur meine Meinung und soll hier nicht zum Glaubenskrieg ausarten!
@OldBug Glaubenskriege bringen eh nichts. Soll doch jeder für sich entscheiden, mit was er arbeiten will. Jedes System hat vor und Nachteile. Die Eierlegende Wollmilchsau gibt es nicht. Mit den Microchip-Preisen hast Du aber absolut Recht, was die Entwicklungstools anbetrifft. Von ein paar Ausnahmen (z.B. das PIC10xx Starter-Kit) abgesehen sind die Tools völlig überteuert. Allerdings gibt es genügend Nachbauprojekte, so dass man auch ohne größere Investitionen mit den PICs arbeiten kann.
Hallo Matthias, "ich wollte mal fragen, was denn eigentlich das besondere an PIC Controllern ist..." Das Besondere am z.B. PIC16F84 ist Z.B., daß er in einer Schaltnetzteilapplikation, in einer Wechselrichterschaltung oder in einer Wechselstromgeneratorsteuerung usw. problemlos funktioniert. Gleich gute Störsicherheit war mir bisher nur vom 68HC11 bekannt. Ich muß allerdings zugeben, daß ich die Störfälle von anderen Herstellern nur vom Hörensagen kenne. Ich selbst benutze nur PIC's und die HC11- Typen. MfG Manfred Glahe
Hallo Matthias, "ich wollte mal fragen, was denn eigentlich das besondere an PIC Controllern ist..." Kann sein dass auch ich in letzter Zeit hier einiges gefragt und angesprochen habe, weil ich als Ausbilder nun durch die Neuordnung der Elektroberufe und dem Baustein PIC16F84A mit der gesamten Thematik neu konfrontiert werde. Leider, also wirklich leider, wird von seitens der IHK für die Abschlussprüfung Teil 1 zum Elektroniker für Geräte und Systeme dieser Baustein als "Kernbaustein" eingesetzt. Dies war nicht nur bei der jetzigen Prüfung, die nun zum ersten Mal nach der Neuordnung stattgefunden hat, sondern wird auch in allen nachfolgenden Prüfungen wieder als "Kernbaustein" eine Rolle spielen. So ist der bisherige Kenntnisstand, was allerdings nicht heißt dass eine Änderungen in wenigen Jahren wieder vollzogen wird. Selber weiß ich auch von Berufsschullehrern und von anderen Ausbildungsbetrieben, dass ein AVR-µC bevorzugt wäre, aber da scheinen vorerst die Weichen anders gestellt zu sein und alle müssen sich in irgendeiner Form mit dieser Thematik auseinander setzen. Wenn Du ein Thema zu diesem PIC in diesem Forum von mir angesprochen vorfindest, dann hat es nun leider diesen Grund, der denke ich nun auch nachvollziehbar ist. Viele Grüße, funnysmartie
Hier braucht sich doch niemand für seine Fragen, egal auf welches (Elektronik-Basiertes) Thema, zu Entschuldigen...
http://www.cc5x.de/ Programmierkurs in C, und Link zu einem kostenlosen Compiler. Einzige Einschränkung: Man muss seine Programme in mehrere Module aufsplitten und die Binaries danach zusammenlinken. Es gibt auch kostenlose Pascal und BASIC - Compiler. Welche Sprache man verwendet ist bei einem Controller eh völlig wurscht. Da man nur einfache Operationen durchführen kann, ist eine so mächtige Sprache wie C gar nicht nötig. Den Hauptvorteil der PICs hat Manfred schon genannt: Sie sind robust. Sowohl was Störeinstreuungen als auch sonstigen "Missbrauch" angeht. Im Internet kursieren Erzählungen dass man die "C"-PIC's (mit kleinem Glasfenster zum Löschen durch UV-Licht) per Kurzschluss für kurze Zeit zur Rotgluht bringen kann, und sie danach immer noch funktionieren... obs stimmt hab ich selbst noch nicht ausprobiert. Aber mir ist trotz gröbster Fehler noch nie ein PIC hops gegangen.
Immer wieder diese Diskussion. Warum ist der eine besser/schlechter als der andere. Ist ein Ford besser als ein Opel, ist ACER besser als DELL, ist eine Tanne besser als eine Eiche? Die Entscheidung, welchen MC man verwendet, sollte man aus meiner Sicht nur in zwei Fällen treffen: 1) Der Einsteiger, der sich erstmals mit MC's beschäftigt. Hier kommen allerdings weitere Punkte hinzu, wie: Will ich mich in die Programmierung mittels Maschinensprache (Assembler) einarbeiten? Wenn nicht: Gibt es einen (freien) Compiler in der von mir bevorzugten (Programmier-)Sprache? Gibt es eine (freie) Entwicklungsumgebung? Die freie(!) IDE vom Microchip (MPLAB) ist übrigens herrvorragend! 2) Eine Aufgabe kann mit "meinem" MC nicht ökonomisch gelöst werden. Es gibt (Gott sei Dank) nunmal viele verschiedene Hersteller, die eine fast unüberschaubare Anzahl von MC-Typen produzieren. Da sollte eigentlich für jeden ein Lieblings-MC zu finden sein. Und sollte es mal keinen freien Compiler für "meinen" MC geben: Wir können doch alle programmieren... MfG Andreas Jäger
Die freie Version ist trotzdem nicht mit der Vollversion vergleichbar. Siehe --> http://www.bknd.com/cc5x/downl-prof.shtml Gut, für Hobbyanwender mag das evtl. OK sein. Leg mal 12V an einen Eingang an, der wird dann nicht mehr funktionieren. Mann muss sich zwar anstrengen aber unkaputbar ist kein PIC.
"Warum ausgerechnet "PIC"?" Ja, solche Fragen müssen natürlich wieder provozieren. Aber alles nötige und unnötige wurde ja hier im Forum schon mehrmals gesagt, man muß nur danach suchen. Ich kann nur sagen, ich setze seit etwa 15 Jahren 8051 ein und hatte noch nie irgendwelche Störprobleme damit. Und seit neuerem ist auch der ATMega8 im Einsatz, ohne Probleme. Ich vermisse also den PIC in keinster Weise und wüßte jetzt auch keine Anwendung, wo er Vorteile hätte. Bezüglich C-Programmierung, ich bin inzwischen auch ein Fan davon. Es nimmt einem wirklich ne Menge Kleinkram (Speicherverwaltung, Parameterübergabe, Rechnen) ab und man kann damit auch größere Projekte übersichtlich gestalten. Für den 8051 nehme ich den professionellen Keil und für den ATMega8 den freien WINAVR und bin sehr zufrieden mit beiden. Peter
War selber jahrelang begeisterter AVR Fan.Bastle im Moment an einer Servosteuerung für DC Motoren und bin auf den PIC 18F2331 gestossen... also ich bin erstaunt!Dieser PIC bringt ALLES was man für eine solche Anwendung braucht,angefangen von den Encoder- Eingängen bir hin zur PWM Erzeugung mit einstellaberem Dead Time...,davon kann der AVR nur träumen! Ich finde die Modellpolitik von Atmel in letzter Zeit eher langweilig,es werden hauptsächlich quantitative Neuerungen gebracht,aber wenig qualitative. Und.. IMHO,die Datenblätter von PIC sind professioneller und übersichtlicher als die von Atmel. Grüsse Arno
Keine Ahnung wie das bei AVR's ist, aber die PIC's gibts mit jeder erdenklichen Zusatzhardware, etwa Typen für Motorsteuerungen, LCD-Ansteuerung, high/low-speed USB, CAN, Ethernet, UHF Sender/Empfänger usw.
ups... versehentlich zu früh abgesendet ;) Naja jedenfalls wäre an kostenlosen Compilern noch der C18 von Microchip zu erwähnen. Der ist AFAIK komplett unbeschränkt - BIS AUF die sache mit der Codeoptimierung, die nach 60 Tagen abgeschaltet wird. Aber das macht nix, der Code wird dadurch nur ein klein wenig größer. (Und Deinstall/Reinstall hilft einem nochmals 60 Tage zu bekommen.) Den wollte ich in den nächsten Wochen sowieso mal ein wenig Testen...
@Dominik Ein Compiler ohne Optimierung? (Ich meine in dem Fall, dass man nicht alle 60 Tage reinstallieren möchte...) Beim WinAVR brauche ich die Optimierung dringend! Dabei geht es weniger um die Code-Größe als mehr die Geschwindigkeit. Kommt aber immer auf die Ansprüche an, die man hat. Gruß, Michael
> Kommt aber immer auf die Ansprüche an, die man hat.
Bzw. auf die Programmierfähigkeiten.
Hi also die Codegröße steigt beim GCC ohne Optimierer schon ordentlich. Bei dem gerade offenen Projekt z.B. von 17k (-Os) auf 26k(-O0). Matthias
Was den Einsatz von C angeht, kann ich peter dannegger voll Recht geben. Trotzdem nutze ich C bei den 8bit Controllern als Super-Macro-Assembler, denn ohne Betriebsystem hängt man halt sehr an der Hardware. Für kleine Aufgaben (weniger als 16kByte ausführbares Programm) ist Assembler sehr brauchbar, erfordert jedoch mehr Disziplin als eine Hochsprache. Leider ist der Microchip-Assembler besonders gewöhnungsbedürftig. (Na Ja... Jeder Assembler ist wohl irgendwie krank) Aber hier hilft die Entwicklungsumgebung von Microhip (MPLAB). Es ist ein prima Simulator bereits eingebaut. Früher (vor der DSL-Zeit) war es besonders schön, das Microchip Application-Notes als Handubch (das berühmte Embedded Control Handbook) kostenfrei versendet hat. Vieleicht gibt's das auch heute noch. Es ist immer schön was in der Hand zu halten. Noch was: Für PIC gibt's PARSIC (www.parsic.de) eine graphische Programmiersprache. Vergleichbar mit dem FUP für SPS. Es gibt sicher noch mehr Argumente für PIC (oder '51 oder oder oder).
Ich arbeite seit einiger Zeit ausschliesslich mit PICs und muss sagen die Dinger sind für viele Anwendungen einfach perfekt. Auf Grund der grossen Typenvielfalt findet man eigentlich immer einen PIC der zu minimalen Kosten die im Projekt erforderlichen Aufgaben erfüllt. Zu det Entwickler Tools: Was braucht man denn wirklich? für den Start reicht ein Stück Lochrasterplatine (oder ein "Steckbrett") MPLAB gibt es bei MicroChip zum kostenlosen Download. Damit kann man dann auch gleich loslegen. Ein Programmiergerät ist nicht zwingend erforderlich, da alle "neueren" PIC Typen ICSP unterstützen. Entsprechende Software findet man als Free- oder ShareWare reichlich im Netz. Sehr preiswerte Proto-Boards und andere nützliche Dinge (übrigens nicht nur für PIC) findet man bei http://www.olimex.com/dev/ Wer den jenigen der sich nicht in PIC Assembler einarbeiten möchte: Es gibt zahlreiche Compiler als freie Demo-Versionen. Oft ist in diesen Demo Versionen nur die grösse des Codes limitiert, (1-2k) Zu den PIC-Typen: Der (immer noch) sehr populäre 16F84(A) ist meiner Meinung nach nicht unbedingt das richtige. Typen wie 16F628 oder 16F88 etc. bieten mehr Features und sind preislich günstiger und benötigen nicht einmal eine externe Taktquelle. Fazit: Mit einer Hardware-Investition von ca. 20,- EUR und einer kostenlosen Demo-Version eines Compilers (z-B. PICbasic Pro)kann man sofort loslegen ohne tagelang Datenblätter und Manuals wälzen zu müssen. OK, einige von Euch mögen jetzt wieder sagen "BASIC ist unter unserem Niveau", aber schneller und preiswerter als mit PICbasic kommt ein "Anfänger" nicht zum Ziel. Es gibt zu diesem Thema ein recht gutes Forum: http://www.picbasic.co.uk/forum/ Gruss
Ich lese und Staune. ;-) So wie es aussieht scheint die Popularität der PICs hier im Forum in der letzten Zeit doch ziehmlich zugenommen zu haben. Steffen PS: Ist nur ne Feststellung, ohne jegliche Wertung.
Als Programmiergerät kann ich das K149 empfehlen: http://www.kitsrus.com/ Ist ein Bausatz, nicht ganz billig, aber dafür hat man einen schönen Brenner der viele Typen unterstützt und auch mit USB funzt. Der COM-Port macht unter WinXP evtl. Probleme, und viele Notebooks haben gar keinen seriellen Port mehr; deswegen ist USB ne feine Sache. Die Firmware läuft ebenfalls auf einem PIC, deswegen kann man sich problemlos updaten. ISP kann es auch.
Empfehlenswert (weil 100% PICSTART+ kompatibel) ist auch: http://www.olimex.com/dev/pic-mcp-usb.html 79,95 USD für einen komplett aufgebauten Programmer incl. 40pin ZIF-Sockel sind ein fairer Preis.
Wie sieht es denn mit der Mehrfach-Programmierbarkait und ISP der PICs aus? Ich gebe zu, ich würde das nicht missen wollen, und viele der angebotenen Typen scheinen nur einmal programmierbar zu sein. Sven
Da ihr jetzt mir Programmern anfangt, ich benutze den hier: http://www.stolz.de.be/ Lässt sich einfach und billig aufbauen, Firmware gibts kostenlos von Microchip, man hat einen In Circuit Debugger und das Teil funktioniert problemlos mit einem FT232-Modul, USB ist somit auch kein Problem. Nur muß man halt den verwendeten PIC einmal mit nem Bootloader flashen. Aber sonst astrein das Teil.
Sven, sämtliche "F-typen" sind Flash und garantiert bis zu 100.000 x programmierbar.
Die Flashtypen sind allerdings teurer. Wenn die Schaltung einmal perfekt läuft, brennt man einen OTP; dann wird ein Flash-PIC wieder fürs Basteln frei :)
Tom, die Flash Typen sind nicht wirklich teurer als OTP, und ich würde insbesondere bei SMD immer Flash-Typen verwenden um die Möglichkeit eines späteren "FirmWare" upgrades zu haben. Warum soll ich für einen 12C508 (512k) 1,20 EUR zahlen wenn ich einen 12F629 (1024k)zum gleichen Preis kriegen kann?
Hallo, ich hab lange hin und her überlegt ob ich mich auf die PIC oder Atmel Schiene begeben soll ("gekommen" bin ich von Ubicom SX-Chips). 1)Bei mir hat der PIC gewonnen (18F..) weil: Gehäuse:PLCC also Sockelbar und die Sockel im 100mil Raster sehr einfach zu handlen. 2)Beim AVR hat mir überhaupt nicht zugesagt, daß manche Rechenop. nur mit bestimmten Registern funktionieren ... Michael
Michael, mir ging es ähnlich. Schön bei den PICs ist halt (wie vorher schon erwähnt) dass es eine riesige Palette an Chips gibt die bei gleichem Pic-Count auch pinkompatibel sind. D.h. wenn ich irgendwann im Verlaufe eines Projektes mehr CodeSpace od. RAM benötige nehme ich einfach den nächst grösseren Chip. Wenn man einen "ordentlichen" Compiler verwendet werden die vorhandenen Sourcen einfach für den neuen Typen compiliert und fertig ist die Laube.
Und wie sieht es mit der Geschwindigkeit aus? Die PICs laufen bei gleichem Quarz mit ein 1/4 Prozessortakt gegenüber dem AVR. Viele AVR-Befehle sind 1-Zyklus-Befehle. Kann man da noch vernünftig mit Software Encoder überwachen, PID-Regler, PWM machen? Können PICs 1-Zykus-Multiplikation? Ich hatte mal einige Datenblätter in der Mache, weil ich ein PIC-Programm auf AVR übertragen musste, übersichtlich fand ich das gar nicht, und eine grauenhafte Architektur - kommt aber wohl nur daher, dass ich halt AVR gewohnt bin. ;-) Komisch, wie sehr die Gewöhnung an einen Typ abhängig macht. Sven
@Sven Die maximale Geschwindigkeit hängt vom PIC-Typ ab. PIC16XXX - max. 5MIPS PIX18XXX - max. 10MIPS dsPIC - max. 30MIPS (16-Bit MC´s mit integrierter DSP-Unit) Bis auf Sprungbefehle werden ebenfalls alle Befehle in einem Maschinenzyklus abgearbeitet. Einige Typen haben einen Hardware-Multiplyer. Für PWM etc. sind Periferiemodule zuständig. Softwareencoder, PID etc. sind natürlich ebenfalls möglich. In Punkto Geschwindigkeit liegen die AVRs mit 16(oder 24?)MIPS zwar vorn aber das wird durch teilweise ausgeklügelte interne Hardware wie z.B. Motorsteuerungs-PWM Module mit Vollbrückenansteuerung, bis zu 4 Phasen etc. teilweise wieder gut gemacht. Viele Sachen, die einige PICs rein in Hardware erledigen müssen beim AVR per Software gemacht werden. Als Beispiel nur mal die Abschaltung des aktuellen Duty-Cycle bei Überstrom. Kommt eben immer auf die Applikation an.
"In Punkto Geschwindigkeit liegen die AVRs mit 16(oder 24?)MIPS zwar vorn" Damit meinte ich bis zur PIC18XXX Serie.
@MSE Tja wollte zwar gestern schon antworten aber der Server war ja down. Die Optimierung vom C18 wird natürlich nicht komplett abgeschaltet - der schaltet da nur die Optimierung auf die PIC18 Serie ab - also das mit dem "Erweiterten Befehlssatz". Viel ändert sich dadurch am Code aber so wie ich das gelesen habe nicht. @Sven: Ich hab mit nem PIC16F876 @ 20MHz einen Dual PID Motorcontroller mit 360CPR Quadrature Encodern und I2C Ansteuerung realisiert. Läuft wunderbar :) Aber nen Harware Multiplier gibts erst beim PIC18... MfG, Dominik S. Herwald http://www.dsh-elektronik.de/
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.