500 likes | 674 Views
Periferie DSC 56F802X a 56F803X. Ing. Zdeněk Pfof. Srovnávací tabulka rodiny 56F8000.
E N D
Periferie DSC 56F802X a 56F803X Ing. Zdeněk Pfof
Srovnávací tabulka rodiny 56F8000 Vlastnosti periferií budou rozebírány především pro DSC 56F8023 – vyšší modely mají popsané vlastnosti stejné, pouze více funkcí, více jednotek od jedné periferie (viz. jednotka PIT), více vyvedených V/V na čipu (viz. ADC, GPIO)
Periferie rodiny 56F8000 • Analog-to-Digital Converter (ADC) • Computer Operating Properly (COP) • Inter-Integrated Circuit Interface (I2C) • On-Chip Clock Synthesis (OCCS) • Flash Memory (FM) • General Purpose Input/Output (GPIO) • Pulse Width Modulator (PWM) • Scalable Controller Area Network (MSCAN) • Joint Test Action Group Port (JTAG) • Power Supervisor (PS) • Queued Serial Communications Interface (QSCI) • Queued Serial Peripheral Interface (QSPI) • Quad Timer (TMR) • Voltage Regulator (VREG) • Programmable Interval Timer (PIT) • Digital-to-Analog Converter (DAC) • Comparator (CMP)
Komunikace mezi periferiemi na čipu (on-chipperipheral) a jádrem • Probíhá po sběrnici IPBus – vnitřní sběrnice • IPBus Bridge zajišťuje pravidelnou a synchronizovanou komunikace mezi jádrem a pomalejšími periferiemi a incializuje přenos dat po sběrnici IPBus pouze na žádost od procesoru • Komunikace na straně procesoru je plně zřetězená, zatímco na straně periferií komunikace zřetězená není
Analog Digital Converter (ADC) Jádra 56F802X a 56F803X obsahují 2 A/D převodníky s parametry: • 12 bitové rozlišení • Max. hodinová frekvence ADC je 5,33MHz → perioda je 187ns • Dokáže navzorkovat až 1,78 milionů vzorků za sekundu – v režimu loop mode a simultatenous conversion! • Čas pro převod jedné hodnoty je 1,59μs (8,5x187ns) • Nejkratší čas pro navzrokování a převod je 1,125μs (6x187ns) na dva vzorky (při paralelním módu - 2 ADC jednotky) • V paralelním módu je potřeba na 8 vzroků 4,97μs (26,5x187ns) • Umožňuje synchronizaci od PWM – vstupy SYNC0/1 • Umožňuje vyvolat přerušení na konci převodu, při průchodu nulou nebo při překročení dvou nastavitelných limitů (High limit, Low limit) • Korekce vzorků odečtením od programovatelné hodnoty offset • Znaménkový nebo bezznaménkový výsledek • Jednoduché (single ended) nebo rozdílové (differential) vstupy
Popis funkce ADC • 2x 8 kanálů, dvě nezávislé S/H jednotky, dva oddělené 12bit AD převodníky • Vyvedeny jsou pouze 2x3 kanály u 56F802X nebo 2x4 kanály u 56F803X • Operační módy: • Once Sequential • Once Parallel • Loop sequential • Loop parallel • Triggered sequential • Triggered parallel • Módy MUX jednotky: • Sigle ended – ANA0-ANA7 • Differential – ANA0/ANA1 • Výstupy jsou normovány (12bit převodník → 16bit sběrnice) a uloženy do • RSLTn registru – SAMPLE0 → RSLT0 • RSLTn registr je 16 bitový (RSLT0-RSLT7 – ADC_A, RSLT8-RSLT15 – ADC_B) • RSLT0-RSLT7 umožňuje korekci OFFST registrem – znaménkový výsledek
Start ADC (re-synchronizace) • Parallel simulataneous (souběžný) • Oba převodníky startovány stejným START bitem nebo SYNC signálem • Nemusíme čekat dalších pět systémových hodinových cyklů než začne převod • Parallel non-simulataneous (nesouběžný) • Každý převodník startován vlastním START bitem nebo SYNC signálem • První převod nemusí čekat, ale druhý musí počkat na vzestupnou hranu ADC hodinového signálu
Synchronizace ADC s PWM • Vzrokování probíhá 2x za periodu PWM – snímá se střední hodnota proudu • Vzorkování napomáhá filtraci měřeného proudu – tzv. antialiasing • Při vypnutém spínacím prvku jsou vzorky bez šumu
Přerušení vyvolávaná ADC • Každý kanál převodníku ADC_A má svůj vlastní programovatelný High limit registr, Low limit registr a zero-crossing registr, které při rovnosti hodnot vyvolá přerušení • Na konci převodu všech 8 kanálu z převodníku ADC_A i ADC:B je rovněž umožněno vyvolat přerušení • ADC umožňuje vyvolávat tato přerušení bez zásahu mikroprocesoru
Manipulace s daty result registrem • OFFST – nastavitelný OFFSET registr, který umožňuje znaménkovou korekci jedno polaritního signálu • RSLTn – výsledkové registry • HILIM – High limit register (v předchozím obrázku označen jako Upper limit) • LOLIM – Low limit register (v předchozím obrázku označen jako Lower limit) • Zero crossing Logic - v předchozím obrázku označen jako Threshold limit
GeneralPurpose Input/Output (GPIO) • Obsahuje 26 V/V bran, které jsou po 8 rozděleny jako GPIO_A, GPIO_B, GPIO_C, GPIO_D • GPIO jsou multiplexované V/V s periferiemi, nacházejí se na všech pinech DSC kromě napájecích pinů • GPIO umožňuje přímé čtění/zápis z/na vstupně/výstupních pinů a dále se dají využít jako vstup pro externí přerušení • Jsou optimalizování pro připojení klávesnice • Každý GPIO je nastavitelný jako vstup nebo výstup • Vstup má módy s, nebo bez, pull-up rezistoru • Výstup má módy push-pull, open drain nebo high strength (4mA nebo 8mA) • GPIO při nastavení jako vstup umí pracovat s 5V logikou • Při nastavení jako vstup lze při hraně generovat přerušení – citlivost na hranu je nastavitelná • Při nastavení jako výstup lze nastavit počáteční hodnotu na výstupu (H nebo L) a poté aktivní v L nebo H
Pulse WidthModulator (PWM) • Umožňuje PWM modulaci o frekvenci až 96MHz • 6 PWM kanálů ve variantách - plně nezávislé nebo komplementární nebo kombinace obou varinat • Při komplementárním spojení kanálů umožňuje vkládat mrtvou dobu při náběžné i sestupné hraně • 15bitový up/down čítač s módy edge-alignment a center-alignment • Nastavitelná perioda modulačního signálu – registr CMOD – counter modulos • Nastavitelná šířka pulsu – registr VAL0-5 – PWM value • Nastavitelná doba obnovení registrů PWM • Nastavitelná polarita výstupů • Nastavitelný PRESCALER pro snižování frekvence PWM • Asymetrický mód • Umožňuje synchronizaci od ADC nebo externího zdroje • Ochrana registrů proti přepsání • 4 programovatelné FAULT vstupy • Kontrola polarity výstupů
PWM Výhody komplementárního zapojení výstupů – 0 & 1, 2& 3, 4 & 5 • Vkládání mrtvých dob • Rozdílná polarita vrchního a spodního prvku • Softwarová korekce rozdílnosti šířky pulsů • Asymetrický PWM výstup Možnost využití rozdílnosti polarity Blokové schéma komplementárních výstupů 3f střídač využívající komplementárních výstupů
Generování mrtvých dob Rozdíl mezi jednotlivými směry proudu je značný a nemusí být vždy chtěný, proto lze provést korekci rozdílným nastavením šířky pulsu pro horní nebo spodní spínač Nastaveno generování mrtvé doby při náběžné i sestupné hraně
Asymetrické PWM Korekci lze nastavit v grafickém konfiguračním rozhraní, nebo bitem IPOLn v registru CTRL (control register) zapsáním příslušné log. hodnoty Při komplementárním zapojení výstupů a čítače čítajícího v módu center-alignment lze využít asymetrickou PWM modulaci. Pro čítání nahoru je využit registr VAL0 a pro čítání dolů registr VAL1. Nastavení lze provést buď v grafickém konfiguračním rozhraní nebo bitem ICCn registru ICCTRL (Channel control register)
Ochrana proti chybám (Faultprotection) Fault ochrana může vypnout libovolnou kombinaci PWM výstupů. Nevypíná však celou modulaci (ta běží dále), ale pouze vybrané výstupy logikou Fault. Každý PWM výstup obsahuje 4 Fault vstupy a 4 registry DISMAP, které mapují výstupy PWM. Dojde-li např. k přetečení registru VAL0 (nad hodnotu 7FFF), zaznamená to registr DISMAP0, na pinu Fault0 se vygeneruje log. 1 a výstup PWM0 bude odpojen. Pro obnovení činnosti PWM výstupu se musí vymazat bit Fault0 a na začátku nové periody bude PWM výstup opět spuštěn. Pin Fault2 může taktéž sloužit pro externí synchronizaci PWM.
QuadTimer (TMR) • Pracuje s hodinovým kmitočtem až 96MHz • 4x 16bit čítače/časovače • Možnost čítat směrem up i down • Individuálně programovatelné • Čítače lze spojit a vytvořit tak jeden 64 bitový čítač • Umožňuje režim čítání „once“ nebo „repeatedly“ • Umožňuje nastavit počáteční hodnotu, od které začne čítat • Čítače můžou sdílet vstupní piny • Každý čítač má svůj vlastní „prescaler“ • Každý čítač má zachytávací a komparační jednotku • Programovatelné chování během „debug“ módu • Programovatelný vstupní filtr • Začátek čítání může být synchronizováno jiným čítačem • Má až 12 operačních módů – pro řadu 803X, pro řadu 802X má 8 op. módů
Popis funkce - QuadTimer • Dvě základní funkce QT: • Čítání vnitřní nebo vnější události • Čítá dle vnitřního hodinového kmitočtu, když vnější signál je přijat nebo nastala vnější událost. Poté čítá s vnitřním hodinovým kmitočtem délku vnějšího pulsu nebo čas mezi vnějšími událostmi Inputs – primary source Other Counters – secondary source
Módy- QuadTimer • Stop mode – nečítá, stojí • Counting mode – čítá na náběžnou hranu na „primary source“, využívá se pro generování periodického přerušení, pro časovací účely nebo pro čítání vnější události, možno invertovat vstupní polaritu – pak čítá na sestupnou hranu • Edge mode – čítá na jakoukoli hranu (vzestupná i sestupná) vnějšího signálu • Gated mode – čítá, jestliže sekundární vstupní signál je ve stavu H. Změnou vstupní polarity čítá při L. Vhodné např. pro čítání časové délky vnější události • Quadrature mode – čítá na podnět primárního a sekundárního vstupu, které jsou o 90° fáz. posunuty (např. inkrementální čidlo) • Signed mode – čítá podle kmitočtu na „primary source“, zatímco „secondary source“ určuje směr čítání (up/down) • Triggered mode – čítá podle kmitočtu na „primary source“, jestliže na „secondary source“ je náběžná/sestupná hrana. K zastavení dojde při komparační události nebo při další náběžné/sestupné hraně. • Cascaded counter mode (up/down) – spojení více časovačů v jeden, jeden čítá nahoru nebo dolů a druhý čítač je tím inkrementován nebo dekrementován
Programmable Interval Timer (PIT) • Periodický 16 bitový čítač, který čítá neustále dokola, při přetečení se vrací na hodnotu 00000 a čítá znovu. Prescaler dělí systémový hodinový kmitočet a modulo nastavuje hodnotu, do které čítač čítá. • Vytváří periodické přerušení. • Význam některých bitů: • PRF – Pit roll-over flag • PRIE – Pit roll-over interrupt enable • CNT_EN – Count Enable • MSTR_CNT_EN – při spojení více jednotek PIT (použitelné u DSC 56F8025 a vyšší)
Digital-to-Analog Converter (DAC) • Jednotka je vyvedena na piny čipu až u DSC 56F8037 • 12 bitová rozlišovací schopnost, napěťový rozsah od VSSA do VDDA • Výstup může být poslán na komparátor, ADC nebo na výstupní pin (8037) • Automatic mode – umožňuje generovat trojúhelníkový, pilový, obdélníkový signál bez zásahu procesoru Příklad generování signálu pily a signálu obdélníku
Comparator (CMP) • Dvě jednotky • Zpoždění vstupního signálu 35ns • Možnost výběru vstupního signálu – tři GPIO piny, DAC nebo druhý komparátor • Možnost nastavení polarity výstupního signálu • Programovatelný nízko-pásmový filtr • Možnost vyvolání přerušení při výstupní nástupné nebo sestupné hraně • Výstup může být použit pro řízení časovačů, PWM faults, řízení PWM, zdroj přerušení nebo pouze přesměrován na pin na čipu • Hystereze musí být vnější Příklad použití pro PWM fault_1