PIC16x84
PIC16C84, PIC16F84 og PIC16F84A typisk forkortet til 16C84, 16F84 og 16F84A er mikrocontrollere i PIC-familien, produceret af Microchip Technology.
Beskrivelse
PIC16x84 har 1 8bit timer, og 13 input/output tilledninger.
PIC16x84 blev populær i mange hobby anvendelser, fordi den anvender en seriel programmeringsalgoritme, som gør at simple mikrocontrollerbrændere kan anvendes. Yderligere anvender de EEPROM hukommelse, så det er let at slette og det kræver ikke specielt udstyr at gøre det. PIC16x84 har også 64 byte EEPROM til lagring af brugerdata. Den var også relativ billig og lettilgængelig.
PIC16x84 var let at tweake til at lade crackere læse et allerede lavet indlejret systems programindhold, simple disassemblere kunne så danne kildekode assembler filer. Microchip rettede dette ved at introducere PIC16F84 (og senere PIC16F84A) og stoppede salget af PIC16C84.
F-version
PIC16F84/PIC16F84A er en forbedret version af PIC16C84, og næsten helt kompatibel, med bedre program sikkerhed og anvendelse af flash-lager i stedet for EEPROM hukommelse til programhukommelse. PIC16F84/PIC16F84A har 68 bytes af RAM mens PIC16C84 har 36 bytes.
Da de to mikrochips er så ens bliver de ofte refereret til med termen PIC16x84 (x anvendes som et joker når man refererer til chipsene).
Historie
PIC16C84 blev introduceret i 1993 og var (vist?) den første PIC-mikrocontroller som anvendte en seriel programmeringsalgoritme og EEPROM hukommelse, hvilket begge egenskaber gjorde det lettere til hobbybrug: Bare en simpel og billig brænder er nødvendig til at programmere/brænde, slette og reprogrammere chippen. Da PIC16C84 leverancer blev minsket grundet at den ikke blev produceret mere, blev PIC16F84 populær da den næsten kunne erstatte PIC16C84 blot ved at sætte PIC16F84 i stedet. Ny programmeringssoftware var nødvendig, da programmeringsalgoritmen er anderledes men programmeringshardwaren var den samme.
Senere endnu (1998) introducerede Microchip Technology den forbedrede PIC16F84A som tillader hurtigere taktfrekvenser (op til 20 MHz), hurtigere programmering, og sænket energiforbrug.
PIC16x84 mikrocontrolleren er et medlem af Microchip's 14-bit serie (instruktionsordenes størrelse er 14 bit for alle instruktioner), hvilket gør '84 til en god udviklingsprototypechip i forhold til andre lignende men billigere engangsprogrammerbare 14-bit chips.
Grundet PIC16x84 store succes, finder der selv i dag mange projekter på internettet baseret på PIC16x84 og mange er med fri og/eller åben kildekode – eller blot som hex-maskinkode klar til at blive brændt:
- PIC-mikrocontroller brændere[1][2] Der findes også flere forskellige frie PC-brændersoftware.[3] der igen understøtter en vælg af hjemmelavede brænder varianter.[4]
- Digitalur[5][6]
- Radiour[7]
- Frekvenstæller[8]
- DCC kontrolstation til modeltog.[9]
- Og meget andet.[10]
PIC16F84 har også været meget udbredt i chipkort.[11]
Der findes endda frie fortolkere, oversættere og assemblere til bl.a. PIC16x84. F.eks. det Pascal lignende sprog JAL (Just Another Language)[12], C.[13] og BASIC.[14], men selv med det store sprogudvalg foretrak mange at programmere i assembler grundet kombinationen lille hukommelse i PIC16x84 og hurtigere hastighed ved at håndoptimere koden.
En medvirkende årsag til PIC16x84 succes er at databladet og applikationsnoter har været frit tilgængelige på Microchips hjemmeside. [15]
Nylige ben-kompatible varianter
Microchip's produktlinje har gennemgået mange revisioner siden 16x84 og flere kraftfulde, fleksible, billigere ben-kompatible PIC chips er blevet udviklet.
Eksisterende PIC 16x84 kode kan kræve nogle ændringer for disse varianter, f.eks. at sikre at ben med flere funktioner er blevet programmeret rigtigt.
- PIC 16F84A – 1Kord programhukommelse, 68 byte datahukommelse, 64 byte EEPROM, 1 timer (listet for sammenligning)
- PIC 16F628A – 2Kord programhukommelse, 224 byte datahukommelse, 128 byte EEPROM, 3 timere, hardware PWM, indlejret 4 MHz/37 kHz RC-oscillator taktgiver.
- PIC 16F648A – Samme som 16F628A men med 4Kord programhukommelse.
- PIC 16F88 – Nanowatt Technology variant, 4Kord programhukommelse, 368 bytes datahukommelse, 256 byte EEPROM, 3 timere, hardware PWM, indlejret 8 MHz/37 kHz præcisionsoscillatore, 7-input 10-bit ADC, synkron seriel port understøttet SPI og I²C.
- PIC 16F1827 – Nanowatt XLP Technology variant, 4Kord programhukommelse, 368 Byte datahukommelse, 256 Byte EEPROM, 5 timere, Hardware PWM, indlejret 32 MHz/37 kHz præcisionsoscillatore, 12-input 10-bit ADC, 4 * PLL.
Kilder/referencer
- ^ PIC 16F84 Serial Programmer
- ^ "jdm.homepage.dk; PIC-Programmer 2 for PIC16C84 etc". Arkiveret fra originalen 10. maj 2000. Hentet 24. april 2021.
- ^ ic-prog.com: IC-Prog Prototype Programmer
- ^ ic-prog.com: Programmer types
- ^ youtube.com: Digital Clock – PIC16F84 – HH.MM+SS – By STE
- ^ micro-examples.com: A PIC16F84A Alarm Clock
- ^ micro-examples.com: DCF-77 PIC LED clock
- ^ Frequency counter with a PICand minimum hardware by Wolfgang "Wolf" Büscher, DL4YHF, 1.3GHz Frequency counter, The Weeder Frequency Counter PIC 16F84 port by Peter Cousens, PIC frequency meters/digital scales, Frequency Counter /English version
- ^ DCC mini station project: Schematic Diagram and Parts List
- ^ PIC Projects, PIC16F84 Fundamentals, PIC-PROJECTS, piclist
- ^ 20. February 2003, wrankl.de: Overview about Attacks on Smart Cards by Wolfgang Rankl, Munich: 8 Sicherheitstechnik Arkiveret 30. juli 2007 hos Wayback Machine Citat: "...Typical substitute circuit for smart card microcontroller built from discrete standard compo- nents (microcontroller PIC 16F84, EEPROM memory chip 24LC16B). The components fit into a typical smart card module so that a distinction from a real smart card microcontroller is impossible without examination of the module. This circuit and variants of it can be found on numerous pages in the Internet..."
- ^ Wouter van Ooijen: Jal : (not?) Just Another Language, piclist.com: jal (Just Another Language) Resources
- ^ piclist.com: PIC Micro Controller C/C++ Languages
- ^ piclist.com: PIC Micro Controller BASIC Languages
- ^ microchip.com: PIC16CR84/F84/CR83/F83 Datasheet, hovedside: PIC16F84