www.wikidata.de-de.nina.az
Bei PICmicro handelt es sich um eine Mikrocontrollerfamilie die von der Firma Microchip Technology Inc hergestellt wird Ein 16 bit Mikrocontroller PIC24 im 28 poligen PDIP Gehause Inhaltsverzeichnis 1 Geschichte 2 Grundsatzliches 3 Hobby und Privatverwendung 3 1 Einfache Programmiergerate 4 Kommerzielle Verwendung 5 Gehause 6 Speicheraufteilung 7 Befehlsstruktur 8 Interruptbehandlung 9 Interne Peripherie 10 Oszillator 11 Programmentwicklung 11 1 Kostenloser Compiler 12 Sicherheit und Kopierschutz 13 PIC kompatible Mikrocontroller und Nachbauten 14 Literatur 15 Weblinks 16 QuellenGeschichte Bearbeiten nbsp Der 1655 der erste ROM basierte PIC noch von GI In den 1970er Jahren entwickelte die Mikroelektronikabteilung von General Instrument GI unter Beaufsichtigung von Stefan Lehmann den PIC1650 In den folgenden Jahren und Jahrzehnten wurde daraus eine grosse Mikrocontrollerfamilie abgeleitet Die Bezeichnung PIC stand ursprunglich fur Peripheral Interface Controller 1 wurde aber schon kurz nach der Markteinfuhrung als Programmable Intelligent Computer interpretiert 2 Die Originalausfuhrung des PIC war als ROM basierte externe Erweiterung der 16 Bit CPU CP1600 ebenfalls von GI gedacht um deren eher massige I O Performance zu verbessern Als Befehlsformat kam ein simpler Mikrocode zum Einsatz der in einem ROM abgelegt war Im Jahre 1989 verkaufte GI die Mikroelektronikabteilung und die neuen Besitzer beendeten beinahe alle Produktlinien Der PIC hingegen wurde mit einem EPROM ausgestattet um einen vom Anwender programmierbaren Mikrocontroller daraus zu machen Durch Erweiterungen und Variationen der internen Peripherie Bauteilform und Geschwindigkeit entstand eine sehr grosse Produktfamilie die Mikrocontroller sowohl fur allgemeine Anwendungen als auch spezialisierte Bereiche bereitstellt Grundsatzliches Bearbeiten nbsp Einige altere EPROM basierte PIC nbsp Einige der kleinsten PIC aus der Baseline Familie 3x PIC12F509 2x PIC10F206 1x umgedreht Abschnitt fehlen noch folgende wichtige Informationen Aktualitat seit 2007 fehlt die weitere Entwicklung Hilf der Wikipedia indem du sie recherchierst und einfugst PIC sind 8 16 oder 32 Bit RISC Mikrocontroller die ursprunglich mit Fokus auf einen kleinen Befehlssatz und einfache Handhabung entwickelt wurden Der Befehlssatz umfasst etwa 33 bei der Baseline Familie bis uber 70 Befehle bei der Enhanced Familie Durch die grosse Vielfalt an verschiedenen Typen lasst sich fur praktisch jede Anwendung ein passender PIC finden Die Mikrocontroller sind so ausgelegt dass sie je nach Bedarf mit sehr wenig Beschaltung auskommen bei vielen PIC ist auch ein interner RC Oszillator verfugbar Neu ist die Familie der PIC32 hier hat Microchip auf einen Controllerkern der Firma MIPS Technologies zuruckgegriffen Bei der aktuellen Produktvorstellung und Bekanntmachung im November 2007 stehen bereits erste Muster Hardwareentwicklungstools C Compiler und umfangreiche Literatur zur Verfugung Auch konnen die bekannten Entwicklungstools ICD2 Real ICE und MPLAB IDE ab der Versionsnummer 8 0 weiterhin genutzt werden da diese auch die neue Produktfamilie unterstutzen PICmicros stehen in mehreren Gehausevarianten zur Verfugung die sich nur durch die Anzahl ihrer Pins unterscheiden Hier steht PIC10 fur 6 Pins PIC12 fur 8 und PIC16 fur 14 bis 64 Pins Folgende Familien genauer Leistungsklassen werden angeboten Baseline 8 Bit PICmicro mit 12 Bit Befehlsbreite nur wenige Features Timer und bei den neuesten Produkten auch Komparatoren oder AD Wandler kein Interrupt Support 33 Befehle maximal 5 MIPS Die Familie umfasst die Produkte mit den Bezeichnungen PIC10F2xx PIC12F C 5xx und PIC16F C 5x in Gehausen von 6 bis 40 Pins nbsp PIC16F877 in diversen GehausevariantenMidRange 8 Bit PICmicro mit 14 Bit Befehlsbreite Standardfeatures z T auch mit LCD Controller oder LowSpeed USB Interrupt Support 35 Befehle maximal 5 MIPS Zu dieser Familie gehoren die PIC12F C 6xx und PIC16F C xxx sowie der PIC14000 mit 8 bis 64 Pins High Performance 8 Bit PICmicro mit 16 Bit Befehlsbreite Standardfeatures maximal circa 8 MIPS Diese Familie beinhaltet die Produkte mit der Bezeichnung PIC17Cxxx mit 40 bis 84 Pins sie sollte fur neue Designs nicht mehr verwendet werden und wird daher in den folgenden Abschnitten nicht mehr naher beschrieben High Performance Enhanced 8 Bit PICmicro mit 16 Bit Befehlsbreite lineare Befehls und Daten Speicheradressierung 79 oder bei den aktuellen Produkten dieser Familie auch mehr Befehle viel leistungsfahige Peripherie z B CAN USB Ethernet spezielle Motor Steuerungseinheiten usw Weiterhin einen 8x8 Bit Hardware Multiplizierer das Rechenwerk eines Signalcontrollers 16 Bit Befehlsbreite Typisch sind maximal 10 MIPS Rechenleistung jedoch sind neue Produkte mit bis zu 16 MIPS fur 2007 angekundigt Die Befehle der Programmiersprache C z B Schleifenbefehle konnen zum Teil von der Hardware viel effektiver ausgefuhrt werden Produkte der Enhanced Familie sind die PIC18F C xxx mit 18 bis 100 Pins nbsp Einige 16 Bit PIC und dsPIC16 bit Mikrocontroller PIC24 und dsPICAlle vier nachfolgenden Familien besitzen den gleichen CPU Core d h sie konnen mit Hilfe der gleichen Tools wie C Compiler oder Debugger bearbeitet werden PIC24F 16 Bit PICmicro Standardfeatures 24 Bit Befehlsbreite maximal 16 MIPS 2 0 bis 3 6 Volt Zurzeit 2007 beinhaltet die Familie Produkte von 16 kB bis 128 kB Flash in Gehausen von 28 bis 100 Pins 3 Neue Varianten mit bis zu 256 kB Flash und teilweise auch mit integriertem USB OTG On the Go sind jetzt ebenfalls verfugbar PIC24H 16 Bit PICmicro erweiterte Features 24 Bit Befehlsbreite maximal 40 MIPS nur 3 3 Volt Diese Produktfamilie ist weitestgehend identisch zur dsPIC33 Familie sie ist zu dieser nur um die DSP Features reduziert Zurzeit 2007 beinhaltet die Familie Produkte von 16 kB bis 256 kB Flash in Gehausen von 20 bis 100 Pins dsPIC30 16 Bit Signalcontroller 24 Bit Befehlsbreite maximal 30 MIPS 2 5 3 5 5 Volt BetriebsspannungDrei Unterfamilien Sensor und Standardfamilie zum Teil mit AC97 I S Interface CAN usw 12 kB bis 144 kB Flash 20 bis 80 Pins Motion Controlfamilie mit Interface fur Quadratur Encoder spezieller Motor Control PWM CAN usw 12 kB bis 144 kB Flash 28 bis 80 Pins SMPS Familie speziell fur Schaltnetzteile USV Frequenzumrichter und teilweise auch fur Motion Control z B Servomotoren mit sehr schneller PWM schnellen Komparatoren und AD Wandlern 6 kB bis 12 kB Flash 28 bis 44 Pins dd dsPIC33 16 Bit Signalcontroller 24 Bit Befehlsbreite maximal 40 MIPS 3 3 6 Volt BetriebsspannungZwei Unterfamilien Standardfamilie zum Teil mit AC97 I S Interface CAN usw 16 bis 256 kB Flash 20 bis 100 Pins weitere mit bis zu 144 Pin und bis zu 512 kB Flash sind geplant Motion Controlfamilie mit Interface fur Quadratur Encoder spezieller Motor Control PWM CAN usw 16 kB bis 256 kB Flash 20 bis 100 Pins hier sind ebenfalls weitere mit bis zu 144 Pin und bis zu 512 kB Flash geplant dd PIC32 32 Bit PICmicro mit MIPS M4K CPU Kern Typisch sind maximal 80 MIPS Rechenleistung Einige PIC32 unterstutzen DMA Datentransfer Produkte der PIC32 Familie sind die PIC32MX mit 32 bis 512 kB Flash 8 kB bis 128 kB RAM und 64 bis 100 Pins 4 5 Es existieren mittlerweile weitere Produkte mit USB On the go und Ethernet mit ansonsten vergleichbaren Eigenschaften in dieser Familie 6 Diese Produktfamilie lasst sich mit dem aktuell vertriebenen pickit4 programmieren und debuggen welches einen sehr kostengunstigen Einstieg ermoglicht 7 Hobby und Privatverwendung BearbeitenRelativ preiswerte Produkte und gunstige Entwicklungswerkzeuge mit teilweise kostenlosen C Compilern von Anfang der 1990er Jahre bis heute begunstigten die vielfaltige Verbreitung von PIC unter Hobbyelektronikern Die ersten PIC die hier verwendet wurden waren der PIC16C83 und seine Nachfolger PIC16F83 bzw PIC16F84 durch ihren bereits vorhandenen Flash Speicher Diese PIC werden zwar heute noch angeboten sind aber inzwischen verhaltnismassig teuer Als eine Alternative zu den 8 Bit PIC konnen die AVR Controller von Atmel angesehen werden Fur umfangreichere Aufgaben sind die Produkte der Enhanced Familie PIC18Fxx gedacht Der lineare Adressraum siehe nachstehend soll es fur Entwickler einfacher machen ein funktionsfahiges Programm zu entwickeln Als Programmiergerat stehen das altere PICkit2 bzw das neuere PICkit3 welche die meisten aktuellen 8 und 16 Bit PIC programmieren konnen und der ICD2 Debugger von Microchip zur Verfugung Nachfolgend eine kleine Auswahl von PIC Produkten mit 5 Volt Versorgungsspannung im DIL Gehause erhaltlich und mit gleicher Pinzahl zueinander pinkompatibel 8 Pin PIC12F615 es ist kein 8 Pin PIC18Fxx verfugbar und Programmentwicklungen fur solch kleine Produkte sind fur gewohnlich in Assembler Ebenfalls verfugbar sind die Typen PIC12F675 und PIC12F683 14 Pin PIC16F684 mit Pulsweitenmodulation oder der PIC16F688 mehr Speicher und UART In diesem Gehause sind ebenfalls keine PIC18Fxx Produkte verfugbar 18 Pin bzw Ersatz fur den oben genannten PIC16F84 PIC16F628A PIC16F819 PIC16F88 oder der aus der Enhanced Familie stammende PIC18F1320 20 Pin PIC16F690 Fur Designs bei denen ein PIC18Fxx eingesetzt werden soll bieten sich 18 oder 28 Pin Mikrocontroller der PIC Familie an 28 oder 40 Pin PIC16F886 oder alternativ aus der Enhanced Familie die PIC18F2620 Standardtyp mit 64 kByte Flash Speicher PIC18F2680 Standardtyp mit CAN ebenfalls mit 64 kByte Flash Speicher oder auch PIC18F2550 Standardtyp mit USB allerdings nur mit 32 kByte Flash Speicher Die Produktbezeichnungen der 40 Pin Gehause sind in gleicher Reihenfolge PIC16F887 PIC18F4620 PIC18F4680 oder PIC18F4550 Speziell fur 28 oder 40 Pin kann auch z B ein 16 Bit dsPIC30F4012 28 Pin oder dsPIC30F4011 40 Pin verwendet werden Eine Pinkompatibilitat zu den 8bit PIC ist hier aber nicht mehr gegeben Ebenfalls moglich ist der PIC16F876A Weit verbreitet in freien Selbstbau Projekten sind folgende PICs PIC12F675 PIC12F683 PIC16F84A PIC16F627A PIC16F628A PIC16F876AUm die Verwendung des teureren PIC16F84 zu vermeiden kann bereits bestehender Assembler Code durch eine hinzugefugte Patch Routine welche auf dem 16F84 nicht vorhandene analoge Peripherie abschaltet und dann zum Hauptprogramm zuruckspringt und das Verschieben von RAM Variablen zu dem mit doppelt so viel Speicher ausgestatteten PIC16F628A kompatibel gemacht werden Einfache Programmiergerate Bearbeiten Es existieren im Internet zahlreiche Schaltungen fur den Selbstbau von einfachen PIC Programmiergeraten welche oft aus wenigen Bauteilen bestehen und damit gunstig im Selbstbau herzustellen sind Jedoch funktionieren diese nicht mit jedem PC und jedem PIC immer zuverlassig PIC Development Programmer 8 fur Windows und Linux Freeware Programmer Software fur eine Vielzahl von PICs wie 10F 12F 16F 18F und dsPIC30F Unterstutzt verschiedene Programmer Hardware wie z B JDM Tait AN589 JDM Programmer fur den RS232 Port David Tait Programmer fur den LPT Port sprut Brenner fur den LPT Port und USB Port mit neuentwickelter und stabiler Hardware und Software welche fast alle aktuellen Flash basierten PIC Typen unterstutzt Platinenlayouts Tipps und Handbucher sind ebenfalls verfugbar ICD2 Clones MPLAB kompatible Nachbauten des Microchip ICD2 In Circuit Debuggers welche viele aktuelle Flash basierte PICs in der Zielschaltung programmieren und debuggen konnenKommerzielle Verwendung BearbeitenProzessor Chipkarten vom Typ Gold und Silvercard 9 Alarmanlagen und Zutrittskontrollsysteme von Security Products 10 Leistungsmessgerate von Linyang 11 Management von elektrischer Energie in Autos von BMW 12 Beleuchtungssysteme von Insta Elektro GmbH aus Ludenscheid 13 Modchips fur die Playstation PS2 und Nintendo WiiPIC Derivate bestimmte BASIC Stamp Varianten PICAXE OOPicGehause Bearbeiten nbsp Layoutkompatibilitatvon 8 14 und 20 PinMicrochip PIC gibt es von 6 bis 100 Pins davon 8 bis 40 Pins neben verschiedenen SMD Varianten auch in Dual In Line Das kleinste Gehause ist in SOT 23 alle Gehause ab 44 Pin aufwarts sind in TQFP Fur besonders platzkritische Anwendungen gibt es neben den SO und SSOP beide von 8 bis 28 Pin auch noch die sogenannten QFN MLF Gehause von 8 bis 44 Pins Nicht selbstverstandlich ist dass nahezu alle PICmicro in gleichen Gehausen auch ein kompatibles Pinout besitzen Kleine Unterschiede gibt es allerdings beim Umstieg von 8 Bit auf 16 Bit Controller Also passt ein PIC18F4620 z B auch auf ein Layout eines PIC16C74 und umgekehrt Eine daruber hinausgehende Kompatibilitat gibt es dabei noch bei den kleinen Controllern auf einen Sockel bzw ein Layout fur einen 20 Pins passen auch die Varianten in 14 oder 8 Pins so kann der Entwickler zunachst mit 20 Pins beginnen und bei Bedarf eine kostengunstigere Alternative mit nur 14 oder 8 Pins ohne Layoutanderung einsetzen wenn ihm die kleinere Anzahl von Pins ausreicht Speicheraufteilung BearbeitenDie Speicheraufteilung ist bei allen 8 und 16 Bit Familien der PICmicros nach der Harvard Architektur ausgefuhrt d h Programm und Datenspeicher werden uber getrennte Busse angesprochen Die Programmspeicher der PIC sind unterschiedlich organisiert bei der Baseline Familie gibt es bis zu vier Seiten Pages zu je 512 12 Bits d h je nach Typ bis maximal 2048 Worte dies entspricht 3 kB oder auch 2048 mogliche Befehle Bei der MidRange Familie gibt es ebenfalls bis zu vier Seiten diese enthalten aber jeweils 2 K 14 Bits d h je nach Typ bis maximal 8192 Worte entspricht 14 kB oder auch 8192 mogliche Befehle Bei der Enhanced Architektur auch PIC18 genannt sowie den 16 Bit Familien PIC24 und dsPIC gibt es diese Speicheraufteilung in Blocken oder Seiten nicht mehr der Programmspeicher ist linear adressierbar Bei PIC18 liegt die auf dem Chip befindliche Obergrenze bei 128 kB 64 K Befehlsworte a 16 Bit und kann bei einigen sehr grossen Varianten auf extern bis zu 2 MB erweitert werden Bei den 16 Bit Familien liegt die Obergrenze derzeit bei circa 256 kB Flash ca 86 K Befehlsworte mit jeweils 24 Bit externer Speicher ist hier zurzeit nicht moglich aber sowohl grosserer Speicher bis 512 kB als auch extern anschliessbarer Speicher sind in Planung Je nach Ausfuhrung des Programmspeichers werden verschiedene Typen unterschieden 14 Flash Typ EEPROM Programmspeicher Kennbuchstabe F Dies sind die mittlerweile am haufigsten eingesetzten Bausteine sie sind in der Schaltung losch und wiederbeschreibbar Das umstandliche Entnehmen aus der Schaltung und Einsetzen in ein Programmiergerat kann somit entfallen So konnen also auch fest eingelotete Bausteine programmiert werden Ebenso lassen sich die meisten dieser Bausteine ohne Entnahme aus der Schaltung debuggen Das heisst dass das im Controller laufende Programm an jeder Stelle unterbrochen oder im Einzelschrittmodus laufen kann Dabei kann jedes interne Register und der interne Speicher auf einem angeschlossenen PC Bildschirm beobachtet werden Dazu werden funf Pins des PIC uber eine zusatzliche Elektronik uber die der PIC auch programmiert werden kann und dann uber USB oder RS232 mit dem PC verbunden Diese funf Pins sind zunachst die positive und die negative Spannung sowie der Reset Eingang des Controllers Dazu kommen noch zwei Funktionspins PGC und PGD die als alternative Funktion auf einem Portpin verfugbar sind Das funktioniert bei grosseren Controllern ab dem PIC16F818 819 18 Pins Jeder einzelne dieser Controller kann so debugged werden wie er ist Fur kleinere Controller gibt es spezielle Testadapter bei denen diese Pins zusatzlich vorhanden sind dd OTP Typ One Time Programmable Kennbuchstabe C ohne Suffix JW Diese konnen nur einmal programmiert werden und eignen sich nur fur Massenproduktionen wo es auf geringe Kosten ankommt dd nbsp Die des 16C57EPROM Typ UV loschbar durch Quarzglas Fenster Kennbuchstabe C mit Suffix JW Die JW Typen stellen das teure Entwicklungswerkzeug fur die OTP Typen dar Sie sind wie EPROMs nur durch UV Bestrahlung zu loschen Mit dem Erscheinen von Flash PICs die exakt kompatibel zu OTP EPROM Typen sind kann auf EPROM Typen in der Entwicklungsphase verzichtet werden und beispielsweise der Code fur einen 12C508A auf einem 12F508 statt einem 12C508A JW entwickelt werden dd ROM Typ Maskenversion Kennbuchstaben R Die ROM Typen stellen die preiswerteste Klasse der PICmicros sie werden nur fur sehr hochvolumige Anwendungen eingesetzt da die Controller direkt in der Fabrik bei der Herstellung durch Eindiffundierung des Programms in den Chip programmiert werden Ein spateres Andern oder Loschen ist fur bereits gefertigte Produkte nicht mehr moglich dd Der Datenspeicher ist bei den PICs der Baseline Familie in eine bis acht Banke zu je 32 Bytes unterteilt Er enthalt alle Spezialregister genannt SFR Special Function Register und Standard RAM register genannt GPR General Purpose Register maximal sind hier 134 Byte RAM moglich Die MidRange Familie verwendet das gleiche Prinzip jedoch bis maximal vier Banke a 128 Bytes SFR und GPR hier sind maximal 368 Byte RAM moglich Auch die Enhanced Architektur kennt noch bis zu 16 Banke a 256 Byte jedoch kann mit bestimmten Befehlen der Speicher auch linear angesprochen werden maximal bis circa 3 9 kB RAM Bei den 16 Bit Familien ist der Speicher bis maximal 64 kB linear ausbaubar maximal werden jetzt jedoch nur 30 kB inklusive 2 kB Dual Port RAM fur den teilweise vorhandenen DMA Controller genutzt dazu kommt ein 2 kB grosser Speicherbereich fur die SFR Ein Bereich von 32 kB kann genutzt werden um sehr schnelle Lesezugriffe auf den Flash Speicher zu ermoglichen Der Stack kann bei der Baseline und bei der MidRange Familie nur von der CPU und auch nur als Speicher fur den Befehlszahler verwendet werden Er nimmt bei Unterprogrammaufrufen oder bei einem Interrupt gilt nur fur MidRange die Rucksprungadresse einschliesslich der Seiteninformation auf und ist nur zwei Baseline Familie oder acht MidRange Familie Elemente tief Er liegt in besonderen Stackregistern nicht im RAM Bei der Enhanced Familie ist der Stack 32 Elemente tief und kann auch vom Programm mit Ladebefehlen z B PUSH und POP genutzt werden er liegt aber ebenfalls in gesonderten Speicherzellen Erst bei den 16 Bit Familien liegt der Stack frei im RAM Befehlsstruktur BearbeitenWie schon oben erwahnt handelt es sich bei PIC um RISC Prozessoren sie verfugen also uber einen sehr kleinen aber effektiven Befehlssatz Ein Befehl bzw ein Befehlswort im Programmspeicher dies sind zwischen 12 und 24 Bit siehe oben entspricht einem kompletten Befehl inklusive Argumenten jeder Befehl ausser den Befehlen zur Programmverzweigung wird innerhalb eines Zyklus abgearbeitet Ausnahmen davon gibt es nur bei der Enhanced Familie mit funf Befehlen die aus zwei Wortern bestehen konnen und bei den 16 bit Controllern die aber auch nur wenige Zweiwort Befehle haben Die ALU bei den Achtbit PIC ist eine Ein Adress Maschine Bei Befehlen die zwei Argumente benotigen ist eines immer das W Work Register Die Enhanced PIC hingegen beherrschen auch Datentransfer von einer Speicherzelle zu einer anderen Speicherzelle MOVFF adr1 adr2 adrx RAM oder SFR benotigt zwei Worte und zwei Zyklen Bei den 16 bit Controllern gibt es einen Satz von 16 16 Bit Registern die fur die meisten Befehle zur Verfugung stehen jedoch haben einige Register davon auch Sonderaufgaben z B fur den Stack oder fur DSP Befehle Interruptbehandlung BearbeitenIm Gegensatz zu vielen anderen Controllern besitzen die 8 Bit PIC keinen Baseline einen MidRange oder zwei Enhanced Interruptvektoren der bei Auslosung eines beliebigen Interrupts angesprungen wird Seine Adresse ist bei den MidRange PIC 0004 h bei den byteadressierten Enhanced PIC bei 0008 h dies entspricht der Wort Adresse 0004 h bei den MidRange PIC und 0018 h Nur bei den Enhanced PIC ist somit eine eingeschrankte Prioritatssteuerung moglich diese muss sonst durch die Interruptroutine selbst ubernommen werden Bei den 16 Bit Familien gibt es fur nahezu jede Peripherie oder Sonderfunktion eigene insgesamt bis zu 118 Interruptvektoren diesen kann einer von 8 verschiedenen Prioritatsleveln frei zugeordnet werden Interne Peripherie BearbeitenEs existiert eine grosse Vielfalt an verschiedenen Ausfuhrungen von PICs Diese enthalten viele unterschiedliche interne Peripherieeinheiten Die gebrauchlichsten sind Timer teilweise sind bei den PIC24 und dsPIC auch je zwei 16 Bit Timer als 32 Bit Timer zu verwendenA D Wandler je nach Variante sind 8 10 oder 12 Bit moglich Bei den PIC24H und dsPIC33 sind teilweise zwei unabhangig voneinander arbeitende A D Wandler vorhanden diese konnen vom Anwender in verschiedenen Betriebsmodi mit schnellen 10 Bit oder genaueren 12 Bit programmiert und verwendet werden Die schnellsten A D Wandler finden sich derzeit bei den dsPIC30 der SMPS Unterfamilie mit bis zu ca 2 MSPS Millionen A D Wandlungen pro Sekunde Analogkomparatoren bei vielen PIC sind ein oder zwei Komparatoren vorhanden sie konnen auch als Fensterkomparator zusammengeschaltet werden Die schnellsten Komparatoren sind bei der SMPS Unterfamilie dsPIC30 zu finden Sie haben eine Schaltzeit von ca 20 nsCapture Compare Einheiten dienen zum Zeitmessen oder zum zeitgesteuerten Erzeugen von digitalen SignalenPWM ist bei vielen PIC vorhanden neuere Modelle verfugen zumeist uber sogenannte Enhanced PWM mit der Moglichkeit zwischen dem quasi zeitgleichen Umschalten eine sogenannte Totzeit einzusteuern dies wird vor allem bei elektrischen Motor und Spannungsregelungen benotigt Die schnellsten PWMs finden sich derzeit bei den dsPIC30 der SMPS Unterfamilie mit einer Bit Zykluszeit von nur ca 1 1 ns dies entspricht einer Frequenz von ca 960 MHz damit ist z B eine PWM mit 10 Bit Auflosung bei ca 950 kHz moglichStandard Kommunikationsschnittstellen seriell z B RS232 SPI I C sind auf den meisten Controllern vorhanden Neue Controller haben zumeist eine sogenannte EnhancedUART diese Bezeichnung bedeutet dass die Hardware auch das LIN Protokoll voll unterstutztUSB bei den Enhanced Micros der Unterfamilien PIC18Fxx J 5x gibt es verschiedene Produkte mit einem USB Function Slave fur maximal 12 MBit s FullSpeed USB Verfugbar sind bei der PIC24F Familie auch neue Produkte mit einem USB OTG on Chip die Bezeichnungen sollen PIC24FJxxxGB1xx lauten In der Familie der PIC32 sollen ebenfalls bis zum Sommer 2008 neue Produkte mit USB OTG kommen CAN sowohl bei den Enhanced Micros der Unterfamilien PIC18Fxx8x wie auch bei den PIC24 und dsPIC gibt es eine grosse Zahl an verschiedenen Controllern mit Unterstutzung fur CAN 2 0BWatchdog Timer ist bei allen Mikrocontrollern vorhanden meistens auch mit einem eigenen niederfrequenten Oszillator auf dem Chip z B 32 kHz oder 512 kHzLCD Treiber sind nur bei den MidRange und Enhanced 8 Bit Micros zu finden Produkte sind alle PIC16F9xx und PIC18Fxx J 9x Sie konnen kleine einfarbige Displays mit bis zu 48 Elementen oder im Multiplexverfahren bis 196 Elemente ansteuernEthernet Controller sind ein neues Feature bei der Enhanced Reihe in der Unterfamilie PIC18FxxJ6x und beinhalten sowohl den MAC als auch den PHY fur 10BASE T IEEE 802 3i Microchip bietet fur diese Controller einen kostenlosen Ethernet Stack in Form einer Applikation note anDiese Peripherien werden uber SFRs special function register angesprochen und konnen je nach Funktion verschiedene Interrupts auslosen Oszillator BearbeitenDie Optionen fur den oder die Oszillatoren sind so vielfaltig wie die PICmicros und ihre Produktfamilien selbst Die altesten PICmicros hatten im Allgemeinen gar keinen eigenen Oszillator auf dem Chip Spater bekamen die PIC12 als erste einen eigenen 4 MHz RC Oszillator auf den Chip Dann wurden neue Konzepte mit mehr Flexibilitat auch fur PIC mit mehr Pins hinzugefugt Heute verfugen die meisten aktuellen PIC und dsPIC uber sehr weitreichende onChip Oszillatoroptionen Nur auf den besonders kleinen oder preiswerten Typen PIC10F2xx oder auch PIC18FxxJxx befindet sich zum Teil nur ein eingeschrankter onChip Oszillator mit 32 kHz oder 4 MHz Jedoch haben diese RC Oszillatoren in der Regel eine eingeschrankte Genauigkeit von nur ca 1 bis 5 Fur genauere Anwendungen zum Beispiel mit asynchroner Kommunikation RS232 USB CAN ist das nicht ausreichend und es muss extern ein Quarz oder Oszillator angeschlossen werden Verschiedene onChip Oszillator Optionen nbsp Oszillatoroptionen bei aktuellen PIC16F Versionen nbsp Oszillatoroptionen bei aktuellen PIC18F Versionen nbsp Oszillatoroptionen bei aktuellen dsPIC30F VersionenProgrammentwicklung Bearbeiten nbsp Real ICE Emulator Debugger und Programmiergerat nbsp ICD2 Debugger und Programmiergerat von Microchip nbsp PICkit2 Low Cost Programmiergerat von Microchip nbsp PICstart Programmiergerat von Microchip nbsp Developmentboard fur die dsPIC30 von MicrochipUm den Mikrocontroller in einer Anwendung einsetzen zu konnen muss zuerst vom Entwickler ein Programm entwickelt werden Die Programmentwicklung kann mittels Assembler oder einer Hochsprache z B C BASIC oder anderer Compiler geschehen Fur die kleineren Mikrocontroller ist heute noch oft Assembler ublich um den Code moglichst effizient und klein zu halten was unter Umstanden den Einsatz von kleineren preiswerteren Mikros ermoglicht Bei den Mikros mit grosserem Speicher bzw fur anspruchsvollere Aufgaben kommt in der Industrie heute zumeist C zum Einsatz da damit der Programmcode spater besser zu pflegen ist Programmierung in AssemblerAlle PIC konnen mit dem passenden Assembler in der kostenlosen Software MPLAB von Microchip programmiert werden Diese MPLAB Software stellt neben dem Assembler auch einen Simulator zum Testen des Codes und die Schnittstellen zu den verschiedenen Entwicklungswerkzeugen zur Verfugung Programmierung in CVon Microchip sind als sogenannte Students Edition LITE ebenfalls kostenlose C Compiler fur die Enhanced PIC18 Familie fur die 16 Bit Familien PIC24 und dsPIC und fur die neue PIC32 Familie erhaltlich Weitere C Compiler gibt es von verschiedenen Anbietern siehe Weblinks Fehlersuche DebuggingZum Debuggen kann man auf den kostenlosen Simulator in MPLAB zuruckgreifen oder mittels einer zusatzlichen Hardware Debugger oder Emulator direkt in der Schaltung den Programmfluss uberwachen und bei Fehlern korrigieren DebuggerNeben anderen Anbietern bietet Microchip selbst eine Palette von Debugtools an Am weitesten verbreitet ist dabei das ICD2 aber auch das viel gunstigere PICkit2 kann diese Aufgabe jetzt bei einigen wenigen PIC leisten Das seit kurzem lieferbare wesentlich leistungsfahigere und auch teurere Real ICE kann zurzeit nur die 16 und 32 Bit Produkte und einige Produkte der PIC18 Familie debuggen dies soll aber mittel bis langfristig auch auf die anderen Produktfamilien ausgedehnt werden Alle drei hier genannten Produkte konnen auch zum Programmieren Brennen der PIC verwendet werden Im Internet existieren zahlreiche Schaltungen zum Selbstbau eines ICD2 Nachbaus welcher MPLAB kompatibel ist Diese Nachbauten werden von Microchip trotz der Verwendung von urheberrechtlich geschutztem Programmcode geduldetEmulatorAuch Emulatoren gibt es sowohl von anderen Herstellern als auch von Microchip selbst Zurzeit gibt es ein ICE2000 fur die PIC10 bis PIC18 sowie ein ICE4000 fur die PIC18 und dsPIC30 Die aktuellen LowVoltage Versionen PIC18FxxJxx PIC18FxxKxx PIC24 dsPIC33 und auch der neue PIC32 werden von keinem dieser Emulatoren unterstutzt hier muss zur Fehlersuche auf einen der obigen Debugger zuruckgegriffen werden Die Emulatoren konnen ein fertiges Programm nicht programmieren brennen ProgrammierungDieser Vorgang wird auch als Brennen bezeichnet Das bedeutet dass Informationen z B ein kompiliertes Programm auch Firmware genannt auf dem internen EPROM oder Flash Speicher des Bausteins gespeichert werden Hierzu bieten die meisten PIC Mikrocontroller eine sogenannte ICSP Schnittstelle die auch noch zur Ubertragung des Maschinencode benutzt werden kann wenn der Chip bereits in die Schaltung eingebaut wurde Dieser Vorgang kann dann mit einem Programmiergerat durchgefuhrt werden Daneben gibt es fur die meisten 16 und 32 Bit Controllerfamilien auch die Moglichkeit uber die integrierte JTAG Schnittstelle zu programmieren Kostenloser Compiler Bearbeiten Kostenlose und freie C Compiler auf Basis des GNU C Compilers gcc werden von Microchip selbst zum Download auf ihrer Homepage angeboten Es handelt sich bei zweien um die sogenannten Studentenversionen 15 der drei professionellen und kostenpflichtigen C30 fur alle PIC24 und dsPIC sowie C32 fur alle PIC32 Diese Studentenversionen haben gegenuber der professionellen Version lediglich solche Einschrankungen die fur den Heimanwender kaum ins Gewicht fallen Sie durfen nicht nur von Studenten sondern von jeder Person genutzt werden Die Compiler lassen sich alleinstehend verwenden oder in die kostenlose Entwicklungsumgebung MPLAB integrieren Die umfangreichen uber den C Standard hinausgehenden Libraries sind allerdings nur halbfrei da sie nicht fur kommerzielle Zwecke genutzt werden durfen Darin unterscheiden sie sich von freier Software Der PIC18 Compiler basiert auf einer anderen Codebasis 15 16 Bei der kostenlosen Studentenversion ist als Einschrankung gegenuber der Vollversion die vorhandene Codeoptimierung nicht frei konfigurierbar sondern wird nach dem Defaultschema durchgefuhrt das einen Kompromiss zwischen Codegrosse und Schnelligkeit darstellt 17 Ein weiterer halbfreier Compiler ist der CC5X Compiler der ebenfalls fur nicht kommerzielle Anwendungen frei verwendet werden kann 18 Der freie Small Device C Compiler 19 unterstutzt Prozessoren der Familien PIC16 und PIC18 Sicherheit und Kopierschutz BearbeitenOTP basierende PICmicro Mikrocontroller sind nicht ausreichend gegen nicht invasive und invasive Attacken gesichert da hier oftmals die Ausleseschutzsicherungen durch gezieltes Bestrahlen bestimmter Bereiche des Chip Dies mit UV Licht zuruckgesetzt werden konnen Jedoch ist dieses Phanomen auch bei einigen OTP basierten Mikrocontrollern anderer Hersteller anzutreffen Die PICmicro Familie ist nicht fur Hochsicherheits Anwendungen wie sichere Smartcards geeignet Zum Zurucksetzen der Ausleseschutzsicherungen wird zuerst das Plastik Gehause durch Abschleifen und Zersetzen mittels Saure oberhalb des Halbleiterchips entfernt Anschliessend werden unter einem Mikroskop der Ort der Ausleseschutzsicherungen am Chip lokalisiert und der restliche Teil des Halbleiters mit einem lichtundurchlassigen Material abgedeckt Danach wird die Ausleseschutzsicherung durch Ultraviolettstrahlung zuruckgesetzt Beim PIC16C71 konnten nicht invasiv und ohne ihn ausserhalb der Spezifikationen zu betreiben durch eine kryptographische Schwachstelle welche von Dejan Kaljevic gefunden wurde Ruckschlusse auf den Inhalt des Programmspeichers gemacht werden Bestimmte Befehle mussen allerdings erraten bzw nach dem Kontext bestimmt werden Angriffe auf Flash basierte Modelle der PICmicro Reihe konnen mitunter durch beabsichtigte Schwankungen der Versorgungsspannung der Programmierspannung und des Taktes und durch invasive Aktionen Microprobing FIB Editieren durchgefuhrt werden Der EEPROM basierte PIC16C84 ist durch nicht invasive Angriffe wie die Schwankungen der Versorgungsspannung besonders leicht auszulesen Es existieren viele Hobby Programmiergerate die das Auslesen von kopiergeschutzten PIC16C84 standardmassig vorsehen Der Nachfolger der Flash basierte PIC16F84 A hat dieses Problem jedoch behoben Der Hersteller Microchip baut bei einigen neueren Modellen und Revisionen Vorkehrungen wie Metall Schutzschilde oder Metall Netze ein Ein Schutzschild verhindert das Zurucksetzen oder Verfalschen von Ausleseschutzsicherungen mittels UV Licht wahrend ein Metall Netz das Microprobing verhindern oder erschweren soll Allerdings kann ein erfahrener Angreifer das Metall Netz in der obersten Schicht mittels Laser zerschneiden oder mittels FIB anbohren Quellen 20 21 PIC kompatible Mikrocontroller und Nachbauten BearbeitenUbicom ehemals Scenix stellte die SX Serie her Diese funktionsahnlichen Mikrocontroller waren viel schneller als die PIC Baseline Architektur Ab 2005 wurden die Mikrocontroller der SX Serie exklusiv von Parallax verkauft daher hatten die neueren Serien ein Parallax Herstellerlogo Da Ubicom keine oder zu wenig Ressourcen fur die Herstellung der SX Serie hatte lieferte Ubicom an Parallax die fertig verarbeiteten und gesagten Silizium Wafer wahrend Parallax die Dies in Gehause montieren liess und exklusiv vertrieb Da jedoch 2009 Ubicom die Produktion der Dies einstellte gibt es nur noch jene Lifetime Buy Lagerbestande die Parallax von Ubicom aufgekauft hatte Neue SX Controller werden nicht mehr hergestellt und es existiert auch kein funktionsgleicher Ersatz Holtek ein taiwanischer Halbleiter Hersteller bietet zu der PIC Architektur sehr ahnliche jedoch nicht vollstandig kompatible Mikrocontroller an G Alantic Enterprises ein taiwanischer Hersteller stellt neben PC Gehausen auch Mikrocontroller der MTD Serie her welche als PIC kompatibel beschrieben werden 22 Daneben existieren weitere Nachbauten weniger bekannter Halbleiter Hersteller aus Fernost welche sich fast immer auf die Baseline Serie beschranken und nur OTP EPROM oder Masken ROM Speicher aufweisen Diese Mikrocontroller sind primar fur Massenproduktionen ausgelegt Literatur BearbeitenAnne Konig Manfred Konig Das grosse PIC Mikro Handbuch Auf CD ROM MPLAB PIC Programme Beispielcode 2007 ISBN 3 7723 4265 5 Stefan Lehmann Wolfram Harth PIC Microcontroller Programmierung 2007 ISBN 3 8266 1763 0 Gunter Schmitt PIC Microcontroller Programmierung in Assembler und C Schaltungen und Anwendungsbeispiele fur die Familien PIC18 PIC16 PIC12 PIC10 2008 ISBN 978 3 486 58597 1 Weblinks Bearbeiten nbsp Commons PIC microcontrollers Sammlung von Bildern Videos und Audiodateien Homepage von Microchip Technology Datenblatter aller PIC Datasheet finder der Firma Microchip englisch Anwendungsbeispiele Application notes der Firma Microchip englisch PIC Assembler Befehle fernando heitor de Informationen rund um den PIC Tutorials Projekte Datenblatter Wiki usw PIC Portale mit vielen Informationen und Selbstbau ProjektenSpruts PIC Page Einfuhrung Ratschlage Selbstbau Programmiergerate Tipps und Lernbeispiele mit Erklarung der Funktionsweise Zahlreiche Selbstbau Projekte PIC microcontrollers PIC mikrokontroleri Ein kostenloses E Book von Nebojsa Matic ISBN 86 902189 4 7 englisch PIC Projekte de Viele Selbstbau Projekte mit Erklarungen zu Programmabschnitten C Tutorial PIC Tutorial Picaxe com Zahlreiche Selbstbauprojekte mit der Picaxe einem PIC mit eingebautem Betriebssystem fur Basic englisch Quellen Bearbeiten MOS DATA 1976 General Instrument 1976 Databook 1977 Data Catalog Micro Electronics from General Instrument Corporation Archived copy Archiviert vom Original am 15 August 2011 abgerufen am 2 August 2011 Kleinste Ausfuhrung Microchip 32Bit Homepage MIPS M4K Homepage Memento des Originals vom 29 Oktober 2007 im Internet Archive nbsp Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot www mips com Produktubersicht der PIC32 Familie PG164140 Abgerufen am 5 Marz 2023 amerikanisches Englisch PICPgm A free and simple PIC Development Programmer Software for Windows and Linux Abgerufen am 5 Marz 2023 Chipkarten mit PIC Elektor November 2006 1 1 2 Vorlage Toter Link www elektor de Seite nicht mehr abrufbar festgestellt im Mai 2019 Suche in Webarchiven nbsp Info Der Link wurde automatisch als defekt markiert Bitte prufe den Link gemass Anleitung und entferne dann diesen Hinweis NESS Security Products Linyang Leistungsmessgerate BMW Energiemanagement Insta Beleuchtungssysteme PDF Dokument zu verschiedenen Programmspeichern 2 PDF 3 3 MB a b MPLAB C Compiler Compilerlizenz PIC18 Compiler CC5X Compiler SDCC Copy protection in modern microcontrollers Eine detaillierte Beschreibung verschiedener Angriffsmethoden auf Mikrocontroller Dejan Kaljevics Programm CrackPic Memento des Originals vom 9 August 2010 im Internet Archive nbsp Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot www dejankaljevic org Mirror der mittlerweile geloschten Originalseite ein nicht invasiver Angriff auf den 16C71 und eine Erklarung der Funktionsweise G Alantic Memento des Originals vom 23 Juli 2008 im Internet Archive nbsp Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot www g alantic com tw ein Hersteller von PIC Nachbauten Abgerufen von https de wikipedia org w index php title PICmicro amp oldid 233188134