Ich "stricke" immer wieder an meiner eigenen Textmode-IDE für verschiedene Controller. Bisher kann ich einige Vertreter aus MCS51, AVR, STM32 und STM8 programmieren (und ich habe auch dienstlich mit ein paar davon zu tun). Noch nie hatte ich einen PIC in der Hand (außer vor Unendlichkeiten einen mit Fenster zum Löschen mit UV Licht). Ich würde gerne meine Textmode IDE um einen Vertreter der PIC-Familie erweitern (um diesen mit SDCC zu programmieren). Als Flashertool habe ich mir jetzt ein PicKit3 bestellt. Und nein, ich habe überhaupt kein Projekt vor Augen, mir gehts nur darum auch einmal einen PIC zu untersuchen, welche Stärken und welche Schwächen er hat. Nun würde ich von Euch gerne wissen, was wohl der momentan beliebteste PIC ist und welcher wohl der momentan günstigste aus China ist ? (bei AVR hätte ich wohl gesagt ATmega8 und ATmega328p, bei STM32 wohl den F103)... bei PIC habe ich keine Ahnung !
MCP schrieb: > PIC16F887 - der war vor 10 Jahren schon gerne genommen und lebt immer > noch. Ach herjeh, was für eine "Trümmergröße" wenn es im DIP-Gehäuse ist, aber ich hab mir den jetzt mal bestellt. Hm, 8k-Words Flash geht ja, aber 386 Bytes RAM wundert mich für heutige Verhältnisse schon. Gibts weiteres ?
Das war/ist die ( erste?) Serie mit USB. http://ww1.microchip.com/downloads/en/devicedoc/39632c.pdf Google mal nach PIC2550 Projekte. Achte auch auf das Datum.
:
Bearbeitet durch User
... gefällt mir besser und ich habe mir jetzt einen F4550 bestellt (obwohl ich feststellen muss, dass die Preise für die PIC-Serie im vgl. zu den AVR und STM8 doch schon relativ satt sind). Wenn ich mir die ganz kleinen PIC's ansehe fällt mir auf, dass es doch tatsächlich Teile mit 25 Bytes RAM gibt. Das reicht ja gerade mal für 8 geschachtelte CALLs und dann müssen alle Variable in Register gepackt werden. Wird so etwas heute noch tatsächlich praktiziert ?
... so, nach der Datensuche (und dem Durchforsten von mikrocontroller.net) hab ich noch einen F688 hinzugenommen und mit diesen 3 werde ich meine Versuche starten. Vllt. fällt ja jemanden noch etwas ein, welchen Typ ich noch "zwingend" auch "untersuchen" sollte ! Gute Nacht und danke an die beiden "Typlieferanten"
Ralph S. schrieb: > Wenn ich mir die ganz kleinen PIC's ansehe fällt mir auf, dass es doch > tatsächlich Teile mit 25 Bytes RAM gibt. Das reicht ja gerade mal für 8 > geschachtelte CALLs und dann müssen alle Variable in Register gepackt > werden. Wird so etwas heute noch tatsächlich praktiziert ? Das wurde nie so praktiziert. Die ganz kleinen PICs programiert man in handgebügeltem Assembler.
Statt des 16F887 haettest auch den 16F886 nehmen koennen. Kommt u.a. in DIP28. > 25 Bytes RAM > gerade mal für 8 geschachtelte CALLs Die kleinen PICs haben einen Hardwarestack. Fuer 8 wird der bei dem Winzling u.U. gar nicht reichen. Wirklich billiger als 12F629/12F675 sind solche Winzversionen auch nicht und die haben 64 Bytes/Register/RAM + Hardwarestack. Damit kommt der XC8-Compiler recht gut klar.
Ralph S. schrieb: > mir gehts nur darum > auch einmal einen PIC zu untersuchen, welche Stärken und welche > Schwächen er hat. "PIC" ist ein sehr weites Feld - von kleinen 8-Bit bis 32-Bit Architekturen, und außer dem Namen haben die ganz kleinen mit den ganz großen nichts gemein. Du solltest also zumindest etwas einschränken, um welche Familie es hier gehen soll. Der PIC16F887 gehört zu den 8-Bittern (PIC12... PIC16...), und auch da gibt es schon 3 Familien: Base-, Mid- und Enhanced Midrange. Der 16F887 gehört zu den (betagten) Mid-Range Typen. Außer in ganz speziellen Fällen, würde ich bei den kleinen lieber die etwas moderneren "Enhanced Midrange"-Typen (PIC12F1xxx, PIC16F1xxx) nehmen. Diese haben einen erweiterten Befehlssatz (besser geeignet für C-Compiler) und eine bessere Performance (min. 16, oft 32 MHz interner Takt möglich, dazu kurze Interrupt-Latenz durch automatische Sicherung der Register in Hardware). Microchip schlägt selbst den PIC16F18877 als moderneren Ersatz für den 'F887 vor. I.d.R. sind die aktuelleren auch billiger, als die "Urgesteine".
Ich würde den PIC32MX250 vorschlagen: http://ww1.microchip.com/downloads/en/DeviceDoc/60001168J.pdf Warum?Der hat zeitgemäße Leitung. USB hat er auch. Und er kommt im bastlerfreundlichen DIL. Ich würde mich nicht mit älteren PIC abgeben, daher haben die PICs ihren (teils verdienten) schlechten Ruf.
Der beliebteste? Gibts nicht, nämlich der, der am besten für die ANwendung passt. Aber das ist wohl nicht das, was du hören wolltest ;).
Ich habe auch noch tonnenweise “alte“ PICs an Lager, und für die meisten Projekte gehen die immer noch. Aber preislich und performancemässig würde ich als “Neue“ auch zum Beispiel die unter https://www.mikrocontroller.net/articles/PIC anschaffen. Sind aber ein bisschen komplizierter zu Programmieren. Gruss Chregu
Thomas E. schrieb: > "PIC" ist ein sehr weites Feld - von kleinen 8-Bit bis 32-Bit > Architekturen, Ich hatte schon festgestellt, dass das ein weites Feld ist, deswegen gabs hier ja meine Anfrage. Ich meinte natürlich die 8 Bitter. Bei den 32 Bittern bin ich mit den ARM-Cortex schon genügend mit Vielfalt beschäftigt (STM32, NXP und SAMD). Nils N. schrieb: > Der beliebteste? Gibts nicht, nämlich der, der am besten für die > ANwendung passt. Aber das ist wohl nicht das, was du hören wolltest ;). Ich hätte wohl besser sagen sollen: Den am häufigsten verwendeten. Mir ist durchaus bewußt, dass man den Controller nach der gestellten Aufgabe aussucht.
Ralph S. schrieb: > Ich hätte wohl besser sagen sollen: Den am häufigsten verwendeten. Am häufigsten verwendet sind wahrscheinlich die ältesten Gurken ;-) Nimm was neueres, wie 18f2xk22 oder k50. Die können wesentlich mehr und kosten weniger!
Für USB gäbe es auch noch pic16f145x. Allgemein würde ich bei pic16 auch nur noch die mit 4 oder 5 Stellen hinter dem f empfehlen.
Ralph S. schrieb: > Thomas E. schrieb: >> "PIC" ist ein sehr weites Feld - von kleinen 8-Bit bis 32-Bit >> Architekturen, > > Ich hatte schon festgestellt, dass das ein weites Feld ist, deswegen > gabs hier ja meine Anfrage. Ich meinte natürlich die 8 Bitter. Wieso ist das "natürlich"? Ich habe mir die PICs auch mal angesehen. Habe daher ein PICkit 3 Debug Express (dv164131) noch in irgendeinem Karton liegen. Auf dem Demoboard ist ein PIC18F45K20. Der ist für 8-Bit PIC sogar ganz erträglich - so lange man bei C bleibt. Auch die integrierte Peripherie ist ganz nett, gefühlt besser als das was man in den AVR kriegt. ABER: der CPU-Kern ist ... ätzend. Assembler würde (und werde) ich mir auf diesen Dingern nicht antun. Nichtmal lesen. > Bei den > 32 Bittern bin ich mit den ARM-Cortex schon genügend mit Vielfalt > beschäftigt (STM32, NXP und SAMD). Dann schau dir doch zur Abrundung eher die 16-Bit PICs an. PIC24 und dsPIC (letztere mit DSP-Fähigkeiten). Die sind auch von der Architektur her sehr angenehm anzusehen. Problem bei PIC ist wie immer die Toolchain. OK, wenn du auf Windows unterwegs bist und es sowieso gewöhnt bist, Executables wenig geklärter Herkunft zu installieren, dann reicht dir ja die frei downloadbare MPLAB IDE mit C Compiler, Debugger, Programmiertool. Mittlerweile gibts mit MPLAB-X eine Java-Version, die dann auch unter Linux tut. Closed source ist es trotzdem noch. Die Compiler für 8 Bit sind wahlweise MCP Eigengebräu oder Hitech-C (IIRC abgespeckt gegenüber der Kommerzversion). XC16 für PIC24 ist ein umgemodelter gcc mit sehr alten Wurzeln. PIC32 ist in Wahrheit MIPS, da gab es schon vor MCP eine open-source Toolchain.
Axel S. schrieb: > Problem bei PIC ist wie immer die Toolchain Da gibts den CCS, Linux und Windows, find ich sehr kompfortabel.
Axel S. schrieb: > Die Compiler für 8 Bit sind wahlweise MCP > Eigengebräu oder Hitech-C (IIRC abgespeckt gegenüber der > Kommerzversion). Inzwischen das Eigengebräu XC8, der aus Hitech-C entstand und einige Elemente vom Eigengebräu C18 verpasst bekam. Die ersten "free" Versionen waren grauenhaft, inzwischen akzeptabel. Aber Ralph will ja eh SDCC verwenden. Ralph S. schrieb: > Ich würde gerne meine Textmode IDE um einen Vertreter der PIC-Familie > erweitern (um diesen mit SDCC zu programmieren).
Helmut S. schrieb: > Das war/ist die ( erste?) Serie mit USB. (18F2550) Ich habe mit USB auf dem 16C765 angefangen. Ralph S. schrieb: > Noch nie hatte ich einen PIC in der Hand (außer vor Unendlichkeiten > einen mit Fenster zum Löschen mit UV Licht). Hätte ich auch noch. (16C74A, 16C745, 16C765. Die willst du aber nicht mal geschenkt ;-)
Fred R. schrieb: > PIC16F54 und PIC16F84 Ist nicht dein Ernst? > was wohl der momentan beliebteste > PIC ist Lässt sich so nicht sagen. Ralph S. schrieb: > Den am häufigsten verwendeten Das wären die 16f877, 16f628, 18f2550 bzw. 18f4550. Siehe hier: http://pic-microcontroller.com/
:
Bearbeitet durch User
Fred R. schrieb: > PIC16F54 und PIC16F84 waren so ziemlich die Beliebtesten. Im letzten Jahrtausend! Aber schon bei der Jahrtausendwende waren die veraltet... SElbst die genannten 18F2550/4500 USB Pics haben schon >10 Jahre auf dem Buckel. Bei den PICs gibt es halt eher die "Spezialisten" und weniger die Generalisten... Will man dennoch einen Generalisten dann nimmt man so etwas wie den 18F45K20 (bzw. 18F45K22). Der hat zwar auch schon reichlich graue Haare, aber ist meilenweit von der Generation 16F628 oder gar 16F84 entfernt... Für Hobbyprojekte nehme ich im Moment (von den 8Bit Pic) bei USB am liebsten den 16F1459, ansonsten den 16F1788 oder 16F1709. Bei kleineren Dingen den 12F1572... Gruß Carsten
Der PIC18F47K42 und sein großer Bruder, der PIC18F57K42. Ist 2017 Jahrgang. Haben 128K FLASH, 8K RAM und 1K EEP und DMA. 64MHz Takt.
Werner H. schrieb: > Das wären die 16f877, 16f628, 18f2550 bzw. 18f4550. wären -> waren? "Not recommended for new designs" bzw. im Vergleich zu neueren Typen lächerlich teuer bei weniger Inhalt. Beobachter schrieb: > Der PIC18F47K42 und sein großer Bruder, der PIC18F57K42. Ist 2017 > Jahrgang. > > Haben 128K FLASH, 8K RAM und 1K EEP und DMA. 64MHz Takt. Wollte gerade schreiben: "Kennst du einen, kennst du eigentlich alle" Bei den K42 gibt es allerdings schon einiges an größeren Änderungen. Für Einsteiger vielleicht (noch) nicht ganz der richtige, weil es (noch) nicht sehr viele Beispiele gibt. Peripheral-Pin-Select haben zwar auch schon einige ältere, aber ganz neu ist die Interrupt-Vector-Table. Wenn ich persönlich jetzt einen neuen Allzweck PIC suchen würde, dann wäre der K42 erste Wahl.
:
Bearbeitet durch User
skorpionx schrieb: > Ich nehme 18F2680. 64kB Flash, CAN, RS232, SPI... K80, K83? ABER, mir fällt gerade ein, dass ja SDCC verwendet werden soll. Besser erst mal checken, ob die vorgeschlagenen "neuen" überhaupt unterstützt werden :-( Muss mal schauen, ob ich den noch installiert habe... <edit> K42 und K83 werden wohl eher noch nicht vom SDCC unterstützt.
:
Bearbeitet durch User
Volker S. schrieb: > skorpionx schrieb: >> Ich nehme 18F2680. 64kB Flash, CAN, RS232, SPI... > > > K80, K83? > > ABER, mir fällt gerade ein, dass ja SDCC verwendet werden soll. > Besser erst mal checken, ob die vorgeschlagenen "neuen" überhaupt > unterstützt werden :-( > Muss mal schauen, ob ich den noch installiert habe... > > > <edit> K42 und K83 werden wohl eher noch nicht vom SDCC unterstützt. Genau da dran ... an der Toolchain... hänge ich gerade (habe ich auch anderstwo noch einen Thread aufgemacht). Der SDCC muss es nicht zwingend sein, es wurden jetzt noch andere Compiler hier genannt, das werde ich mir anschauen. Den SDCC wollte ich nehmen, weil der auf dem System schon für die MCS51 und STM8 Controller drauf ist. Hrmpf... schade dass es den GCC nicht für diese Typen gibt... (würde mir bspw. für den STM8 super gut gefallen)
Axel S. schrieb: > Dann schau dir doch zur Abrundung eher die 16-Bit PICs an. PIC24 und > dsPIC (letztere mit DSP-Fähigkeiten). Die sind auch von der Architektur > her sehr angenehm anzusehen. Dem kann man zustimmen! Empfehlenswerte PIC24 sind beispielsweise folgende: - PIC24FV32KA301: Ein 5V-Teil mit DIL-Gehäuse, sonst ziemlich Standard - PIC24FJ128GC006 : USB ohne Quarz, sehr mächtiges Remapping, 10MSPS ADC Der PIC24FV32KA301 ist anfängertauglich. Das Peripheral Remapping des PIC24FJ128GC006 ist wirklich sehr praktisch, das macht das Ding aber auch schwieriger. Ich würde mich mit den 8-Bittern nicht mehr abgeben. Aus meiner Sicht gibt es dazu keinen wirklichen Grund mehr, außer man tut das gerne, oder kennt sie recht gut. Am schönsten arbeitet es sich aber mit einem PIC32MX und einem Segger J-Link, auch wenn man dazu einiges dazulernen muss. Es geht aber immer noch gut ohne Dinge wie Harmony.
Volker S. schrieb: > ABER, mir fällt gerade ein, dass ja SDCC verwendet werden soll. Ich arbeite mit PIC 18f2680 mit SDCC unter CodeBlocks: 1. SDCC downloaden und instalieren 2. gputils downloaden und instalieren 3. CodeBlocks downloaden und instalieren 4. CodeBlocks starten 5. in"Settings->Compiler and debuger->Selectet compiler" "sdcc compiler" wählen und mit "set as default" und "O.K" bestetigen Weill: SDCC < 3 used .rel as object extension. SDCC >=3 uses .o as object extension. Settings -> Compiler and Debugger -> Other settings -> Advanced Options -> Others -> Object file extension auf "o" ändern wenn SDCC >=3. Von Wikipedia: Starten Sie zunächst Ihre IDE Code :: Blocks. Dann nutzen Sie im Menü "Einstellungen" -> "Compiler und Debugger", um die SDCC Compiler-Optionen einrichten. Wählen Sie den "SDCC Compiler" Klicken Sie auf die Schaltfläche "Set as Default" Klicken Sie auf der Registerkarte "Toolchain executables" Klicken Sie auf den Reiter "Additional Paths" Überprüfen Sie die Pfade für die Installation und weitere Verzeichnisse. Normale Installations-Verzeichnis "C:\Program Files\SDCC" Normale zusätzliche Verzeichnisse "C:\Program Files\SDCC\bin" und "C:\Program Files\gputils\bin" Klicken Sie auf der Registerkarte "Search Directories" Überprüfen Sie die Suchverzeichnisse Normalen Compiler-Suche Verzeichnis "C:\Program Files\SDCC\include" PIC normalen Compiler-Suche Verzeichnis für SDCC 3.0 und höher von "C:\Program Files\SDCC\non-free\include" Normale Linker Suche Verzeichnis "C:\Program Files\SDCC\lib" Zweitens, erzeugen Sie ein leeres Projekt. In der Menüleiste wählen Sie "File" -> "New" -> "Project". Wählen Sie "Empty Project" und klicken auf GO. Geben Sie die erforderlichen Informationen ein. Sie erhalten Warnmeldungen, dass Code::Blocks does not know how to setup somethings; sie ignorieren es. Ändern Sie nun das Projekt, damit es mit SDCC arbeitet; In der Menüleiste wählen Sie "Project" -> "Properties";, wählen Sie die Registerkarte "Build Targets". Unter Ziel-Optionen ändern "Type" auf "Native". Beachten Sie, Sie müssen, um alle Ziele zu setzen, um "native" haben. Also, wählen Sie das andere Ziel, wenn sie auf dem richtigen Ebene existieren. Stellen Sie den Projekt-Build-Optionen; In der Menüleiste wählen Sie "Project" -> "Build Options". Unter dem "Compiler Settings" und unter dem Reiter "Compiler-Flag", stellen Sie entweder die CPU-Flag für PIC 16 oder 14 Bit-Befehle. In der Menü Project->Build options->Compiler Settings->Compiler Flags: stellen Sie entweder die CPU-Flag für PIC 16 oder 14 Bit-Befehle. In der Menü Project->Build options->Compiler Settings->Other options: -p18f2680 --obanksel=2 --optimize-cmp --optimize-df --use-non-free In der Menü Project->Build options->Linker settings->Links libraries: C:\Program Files\sdcc\lib\pic16\libc18f.lib
skorpionx schrieb: > Ich arbeite mit PIC 18f2680 mit SDCC unter CodeBlocks: Beim 2680 hatte ich auch keine Bedenken. Mir ging es mehr um die ganz neuen, wie eben k42 und k83.
Volker S. schrieb: > skorpionx schrieb: >> Ich arbeite mit PIC 18f2680 mit SDCC unter CodeBlocks: > > Beim 2680 hatte ich auch keine Bedenken. Mir ging es mehr um die ganz > neuen, wie eben k42 und k83. Am besten wäre es, wenn man die Unterstützung auf SDCC-Seite völlig automatisieren würde, der SDCC also also mit allen PIC die von gputils unterstützt werden arbeiten könnte. Mit viel Glück wird das in 3.8.0 so oder ähnlich sein. Philipp
>> Das wären die 16f877, 16f628, 18f2550 bzw. 18f4550. > wären -> waren? > "Not recommended for new designs" bzw. > im Vergleich zu neueren Typen lächerlich teuer bei weniger Inhalt. Ja. Aber: den 12F675 gibt es fuer 30 Ct (bei 10 Stueck). Seine kleinen Verwandten 12F683/16F684 liegen da aehnlich. An den Preisen fuer die "neuen" PICkel muss da noch einiges fallen bevor ich ueberhaupt da mal hingucke. Aber sobald Mann groessere Mengen Strings zu verwursten und ausgiebigere Arithmetik zu bearbeiten hat, gibt es ja auch noch anderes aus ARMenkueche.
(º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· schrieb im Beitrag #5308934: > Aber: den 12F675 gibt es fuer 30 Ct (bei 10 Stueck). Was hat der jetzt mit denen zu tun? (º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· schrieb im Beitrag #5308934: >>> Das wären die 16f877, 16f628, 18f2550 bzw. 18f4550.
>>> Das wären die 16f877, 16f628, 18f2550 bzw. 18f4550. >>> im Vergleich zu neueren Typen lächerlich teuer bei weniger Inhalt. > "Ja." > Was hat der jetzt mit denen zu tun? Nichts, aber 30 Ct find ich nun nicht zu teuer. Sind aber eben keine "neueren Typen".
(º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· schrieb im Beitrag #5309006: > Nichts, aber 30 Ct find ich nun nicht zu teuer. > Sind aber eben keine "neueren Typen". Werden die Reste schon bei Aliexpress verramscht, oder sind das gar keine "echten"? Bei den "normalen" Distributoren kosten auch die 12F675 mehr als aktuelle.
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.