PIC (mikrocontroller)

Fra Wikipedia, den frie encyklopædi

PIC er en familie af RISC-mikrocontrollere lavet af firmaet Microchip Technology. PIC er en afledning af PIC1650, som oprindeligt blev udviklet af General Instruments Microelectronics Division.

Microchip Technology anvender ikke PIC som et akronym; faktisk er brand-navnet PICmicro.

PIC1655A GI mikrocontroller.
PIC16CxxxWIN mikrocontroller.

PIC-kodningsværktøjer[redigér | rediger kildetekst]

PICs anvender et RISC-instruktionssæt, som varierer med omkring 35 instruktioner for de mindste PICs til omkring 70 instruktioner for de største PICs.

Microchip tilbyder en freeware-IDE-pakke kaldet MPLAB, som også inkuderer en software-simulator såvel som en assembler.

Andre laver C-compilers til PICs. microchip sælger også compilere til de største PICs ("C18" til 18F serien og "C30" til dsPICs). De tilbyder også en "studenter-udgave/demo" af C18 som afbryder nogle optimeringer efter et stykke tid.

Open source-compilere til Pascal, JAL og Forth, PicForth findes også.

GPUTILS er en open source-samling af værktøjer, distribueret under GNU General Public License. GPUTILS omfatter en assembler og en linker og virker på Linux, Mac OS X og Microsoft Windows. GPSIM er en open source-simulator til PIC-mikrocontrollere, som også kan simulere hardwaremoduler som f.eks. LCD-skærme.

PIC-brændere[redigér | rediger kildetekst]

Apparater kaldet "brændere" anvendes traditionelt til at lægge koden ind i en PIC. De fleste PICs som Microchip sælger, har mulighed for ICSP (In Circuit Serial Programming) og/eller LVP (Low Voltage Programming), hvilket gør det muligt at brænde PIC, mens den sidder i et anvendelseskredsløb. ICSP-brænding udføres ved at anvende benene RB6 og RB7 til clock og data, mens en høj spænding er tilstede på ben /MCLR. Der findes mange brændere til PIC-mikrocontrollere, lige fra de simpleste design, som kræver kommunikationssoftware til at håndtere alle kommunikationsdetaljer, til komplekse design, som kan teste brændingsresultatet ved forskellige spændinger. Mange af de komplekse brændere anvender en for-programmeret PIC som håndterer brændingskommandoer til PICen, som skal brændes.

Ordstørrelse[redigér | rediger kildetekst]

PICens ordstørrelse er kilden til megen forvirring. Alle PICs (undtagen dsPICs) håndterer data i 8-bit bidder, så de burde kaldes 8-bit mikrocontrollere. Men til forskel fra de fleste CPUer anvender PICs en Harvard-arkitektur, så de enkelte instruktioners størrelser kan være indbyrdes forskellige. Faktisk anvender forskellige PIC familier forskellige instruktionsstørrelser, som gør det til en udfordring at sammenligne en PICs kodestørrelse med andre mikrocontrollere.

Moderne PICs[redigér | rediger kildetekst]

De gamle PROM og EPROM PICs bliver gradvist erstattet af chips med Flashhukommelse. Flash-hukommelse gør det muligt at reprogrammere PICen flere tusind gange elektrisk.

"Egenskaber"[redigér | rediger kildetekst]

PICs tilbyder mange forskellige hardwareblokke afhængig af den aktuelle PIC model:

8-bit PIC-mikrocontroller-produktfamilier[redigér | rediger kildetekst]

Almindelige PICs[redigér | rediger kildetekst]

  • PIC10 familien (mini PIC)
  • PIC12 familien (8 ben DIL. Nogle med intern oscillator)
    • PIC12C508/509 (1k flash. Populær i mindre designs)
    • PIC12F629/675 (1k flash)
  • PIC16 familien
    • PIC16F84 (18 ben DIL. 1k flash. Betragtes almindeligvis som en forældet chip, men umulig af "aflive" pga. populariteten)
    • PIC16F84A (18 ben DIL. 1k flash. En lidt forbedret udgave af PIC16F84)
    • PIC16F628A (18 ben DIL. 2k flash. Bedre og normalt billigere end PIC16F84 og PIC16F84A)
    • PIC16F648A (fås i bl.a. 18 ben DIL. 4k flash. Mere flash-rom end PIC16F84A og PIC16F628A)
    • PIC16F87X familien (fås bl.a. 28 ben smal DIL og 40 ben DIL. 2..8k flash. Anvendt i mange hobby projekter.)
  • PIC18 familien (Forbedret instruktionssæt)
    • PIC18F1320 (18 ben DIL. 8k flash)
    • PIC18F2455 (28 ben DIL. 24k flash, USB)
    • PIC18F4550 (fås i bl.a. 40 ben DIL. 32k flash, USB)
    • (PIC18F452 ældre) (40 ben DIL. 16k flash. Anvendt i nogle hobby projekter.)

Se også[redigér | rediger kildetekst]

Wikimedia Commons har medier relateret til: