PIC18F2455/2550/4455/4550
V tomto článku si popíšeme velmi výkonný "luxusní" osmibitový mikrokontrolér řady 18F od firmy Microchip. Umí komunikovat se sběrnicí USB 2.0 při plné rychlosti (12 Mbit/s). Kromě toho má také mnoho dalších zajímavých periferních obvodů, např. obvod pro přepnutí na náhradní zdroj hodin pro případ, že přestane fungovat hlavní krystal.
1. Základní charakteristika
-
8-bitový mikrokontrolér s architekturou RISC
-
Harvardská architektura = paměť programu oddělená od datové paměti

2. Paměť
-
2 kB SRAM
-
256 B EEPROM, 1 000 000 zápisů
-
programová paměť typu Flash 24 - 32 kB, 100 000 zápisů
-
procesor se může sám přeprogramovat
3. Pracovní režimy
-
Napájení:4,2 V - 5,5 V (verze 18LF: od 2 V)
-
Run: CPU on, peripherals on
-
Idle: CPU off, peripherals on
-
Sleep: CPU off, peripherals off
4. Pracovní frekvence
-
instrukční cyklus: tic = tosc · 4
-
4 takty oscilátoru na každou instrukci
-
skoky a rozhodovací instrukce zaberou 2 instrukční cykly, tedy 8 taktů
-
-
Hodiny lze přivádět externě nebo z interního kalibrovatelného oscilátoru (31250 Hz - 8 MHz).
-
fmax = 48 MHz, 12 MIPS
-
Vnitřní fázový závěs 96 MHz => pomocí krystalu 4 MHz lze vytvořit taktovací kmitočet 48 MHz nebo jeho zlomek. Toto řešení je velmi odolné proti rušení!
-
Jádro a USB modul mohou pracovat na odlišných frekvencích.

5. Instrukční soubor
-
75 standardních instrukcí (pro srovnání: řada PIC 16: pouze 35 instrukcí)
-
8 speciálních instrukcí pro tuto řadu (lze zapnout/vypnout)
-
osmibitové a jednobitové instrukce (pro srovnání: např. AVR nemá jednobitové instrukce)
-
instrukční soubor je optimalizován pro programování v jazyce C
-
16-bitové instrukční slovo (pro srovnání: řada PIC 16: 14-bitové slovo)
-
hardwarová jednocyklová násobička 8 × 8 bitů => 16-bitový výsledek
6. Periferie
6.1 Porty
-
5 obousměrných portů: PORT A - PORT E
-
Všechny vstupně-výstupní nožičky umožňují maximální proud 25 mA (vstup i výstup).

6.2 Časovače
-
Časovač TIMER0:
-
lze přepínat na 8-bitový / 16-bitový
-
interní / externí zdroj hodin
-
volba hrany časovacího impulzu: vzestupná / sestupná
-
dělicí poměr: 1:2 - 1:256
-
-
Časovač TIMER1:
-
16-bitový časovač / čítač
-
dělicí poměr 1:1 - 1:8
-
-
Časovač TIMER2:
-
8-bitový časovač
-
velmi variabilní dělicí poměr: 1:1 × 1:1 až 1:16 × 1:16
-
-
Časovač TIMER3:
-
16-bitový čítač
-
asynchronní / synchronní režim
-
dělicí poměr 1:1 až 1:8
-
6.3 CCP = Capture/Compare/PWM
-
2 jednotky CCP
-
Capture:
16 bit, max. rozlišení 5,2 ns
Obr. 4: Capture mode -
Compare:
16 bit, max. rozlišení 83,3 ns
Obr. 5: Compare mode -
PWM
PWM = pulzně-šířková modulace: 6,6 bitů (417 kHz) - 10 bitů (2,44 kHz) při 40 MHz
-
ECCP = Enhanced CCP:
-
2 nebo 4 výstupní kanály
-
volitelná polarita výstupu
-
programovatelná „mrtvá zóna“ (Dead Band) pro řízení spínacích můstků motorů
-
atd.
-
6.4 Streaming Parallel Port
-
8-bitový port pro rychlé přenosy dat
-
obousměrný
-
pracuje jako master
-
data lze přenášet mezi jádrem CPU nebo řadičem USB
6.5 Master Synchronous Serial Port
-
2 módy:
-
SPI
-
nebo I2C
-
6.6 Enhanced Universal Synchronous Asynchronous Receiver Transmitter (EUSART)
-
plně duplexní asynchronní přenos nebo poloviční duplex
-
synchronní přenos: master nebo slave
-
automatická detekce přenosové rychlosti
-
lze využít pro sběrnici LIN
6.7 10-bitový A/D převodník
-
10 multiplexovaných vstupů

6.8 Modul analogových komparátorů
-
2 analogové komparátory
-
programovatelná reference

7. USB
7.1 USB obecně
-
Universal Serial Bus = Univerzální sériová sběrnice
-
Navržená především pro komunikaci mezi hostitelským (výkonným) počítačem a menšími přídavnými zařízeními.
-
Implementace USB 2.0 = současný standard (dříve USB 1.1).
-
Rychlost přenosu:
-
Low Speed = 1,5 Mbit/s (USB 1.1)
-
Full Speed = 12 Mbit/s (USB 1.1)
-
Dále norma USB definuje tzv. High Speed = 480 Mbit/s (USB 2.0), ale tato rychlost není v tomto mikrokontroléru implementována.
-
7.2 Implementace USB
-
1 kB RAM s duálním přístupem: do paměti může přistupovat jádro procesoru i řadič USB.
Obr. 8: Schéma USB modulu -
Propojení se Streaming Parallel Portem
-
Hardwarová vrstva umožňuje všechny 4 druhy přenosů:
-
Řídicí (Control) přenosy jsou používány ke konfiguraci zařízení při jeho připojení a mohou být použity k dalším účelům, jako např. k řízení další komunikace.
-
Hromadné (Bulk) přenosy slouží k přenosům velkého množství dat a jsou na ně kladena nejmenší omezení.
-
Přerušovací (Interrupt) přenosy slouží k včasnému a spolehlivému doručení dat, nejčastěji pro asynchronní události.
-
Izochronní (Isochronous) přenosy zabírají předem smluvené množství přenosového pásma a mají předem dohodnuté zpoždění. Tento druh přenosů je také nazýván proudový přenos v reálném čase (streaming real-time transfer).
-
-
32 koncových bodů (nebo 16 obousměrných)
-
Koncový bod (endpoint) je část USB zařízení, která stojí na jednom konci komunikačního toku mezi hostitelem a zařízením. Každé logické zařízení se skládá z několika nezávislých koncových bodů. Tomuto logickému zařízení je během připojování přiřazena jednoznačná identifikace v rámci sběrnice. Každý koncový bod v rámci zařízení má přiřazen výrobcem kód, nazývaný číslo bodu (endpoint number) v rozsahu 0-15. Endpointy mají zároveň návrhem pevně daný směr komunikace (příjem / vysílání dat). Kombinace identifikátoru zařízení, čísla endpointu a směru komunikace dává dohromady jednoznačné určení endpointu v rámci USB sběrnice. V jednom zařízení se tedy mohou vyskytnout dva endpointy se stejným číslem a různým směrem přenosu dat.
-
Koncový bod nula (endpoint zero) musí být implementován v každém USB zařízení a slouží k prvotní konfiguraci zařízení. (Ve skutečnosti jde o endpointy dva, jeden pro vstup dat a jeden pro výstup, oba s číslem 0, ale hovoří se pro zjednodušení o "koncovém bodu 0", nikoli o "koncových bodech".)
-
Ostatní koncové body (Non-endpoint Zero) mohou být implementovány USB zařízením podle potřeby. Low speed zařízení jsou limitována počtem dvou dalších endpointů (kromě dvou s číslem 0). Full speed zařízení mohou mít dalších endpointů tolik, kolik umožňuje definice protokolu (tedy 15 vstupních a 15 výstupních).
-
8. Závěr
Procesor řady PIC18F4550 je velmi výkonný osmibitový procesor se zančným množstvím periferií, z nichž nejvýznamnější je sběrnice USB.
Na českém maloobchodním trhu je k dostání např. u firmy TME, cena se pohybuje kolem 173 Kč včetně DPH, je dostupná varianta PIC18F4550 v pouzdře DIL a TQFP.
Výrobce dodává podpůrný software pro zjednoušení a zkrácení vývoje USB aplikací, ale software včetně ovladačů je dostupný pouze pro operační systém Microsoft Windows, což je nesporná nevýhoda.
Lze sehnat celou řadu kompilátorů C, ale žádný z nich není zcela zdarma. Jediná výjimka je SDCC (Small Device C Compiler) s implementací pro PIC, ale ten je spíše ve vývoji a navíc jeho konfigurace dá značnou práci.
9. Použitá literatura
-
usb.org - mezinárodní normotvorná organizace
-
USB - Universal Serial Bus - Popis rozhraní - článek na hw.cz
-
USB 2.0 - díl 1 - seriál o USB na hw.cz
-
www.microchip.com - výrobce mikrokontrolérů PIC
-
USB PIC Microcontrollers - nabídka mikrokontrolérů s rozhraním USB