Uživatelská příručka
INSIDER
Monitorovací prostředek pro ladění aplikací s mikrokontroléry
a programovatelnými logickými obvody
Verze 1.0, 2002-03-22
4.1. Blokové schéma Insideru
4.2. Uživatel má k dispozici 2 volné výstupní piny z mikrokontroléru
4.3. Uživatel má k dispozici 1 volný výstupní pin
4.4. Uživatel nemá k dispozici žádný volný výstupní pin
6.1. 2-vodičový režim zachycení dat délky 4/8/12/16 bitů
6.2. 3-vodičový režim, EN plní funkci hradlování hodin
6.3 3-vodičový režim, EN plní funkci zachycení dat (Latch)
Insider je velmi levná a účinná pomůcka sloužící k monitorování stavu aplikací s mikroprocesory, PLD obvody nebo jinými číslicovými obvody.
Insider slouží k monitorování pozice programu v aplikacích s libovolným typem mikrokontroléru (Microchip PIC, Atmel, Dallas, Philips, Motorola, ...) nebo stavu aplikací s PLD nebo jinými číslicovými obvody pracujícími s úrovněmi napětí 3V nebo 5V. Hlavní předností Insideru je výrazné zvýšení efektivity práce při ladění aplikací v reálném čase i v případech, kde není k dispozici emulátor nebo jiný ladící prostředek. Díky své nízké ceně, minimálním nárokům na monitorovaný systém a úspoře času při ladění snižuje INSIDER konečnou cenu aplikace.
Insider pomocí vstupů CLK, DATA a volitelně EN umožňuje zobrazení uživatelem generovaných sériových dat o délce 4/8/12/16 bitů. Uživatel má takto možnost monitorovat chování programu mikrokontroléru běžícího v reálném čase.
4.1. Blokové schéma Insideru
Jádrem Insideru je 16-bitový posuvný registr (Shift REG), 16-bitový záchytný registr (Latch REG), dekodér do hexadecimálního tvaru a displej (viz Obr.1).
Insider podporuje 3 režimy funkce:
4.2. Uživatel má k dispozici 2 volné výstupní piny z mikrokontroléru
Pokud má uživatel v aplikaci k dispozici 2 volné výstupy z mikrokontroléru, může použít 2-vodičový režim, kdy propojí pouze DATA a CLK Insideru s výstupními piny mikrokontroléru a pomocí jednoduchého podprogramu vyšle v místě programu, které chce monitorovat, sekvenci dat do Insideru (viz Obr.2).
Obr.2: 2-vodičové zapojení
4.3. Uživatel má k dispozici 1 volný výstupní pin
Pokud má uživatel k dispozici 1 volný výstup z mikrokontroléru a 2 výstupy, které se dají za určitých okolností použít (např. sběrnice), může použít 3-vodičový režim, kdy EN je přiveden přímo do Insideru a plní funkci hradlování hodin a CLK a DATA jsou připojena k datové sběrnici (viz Obr.3).
Obr.3: 3-vodičové zapojení v režimu hradlování hodin
4.4. Uživatel nemá k dispozici žádný volný výstupní pin
Pokud nemá uživatel k dispozici žádný volný výstupní pin z mikrokontroléru, ale používá v aplikaci součástku aktivní v některé logické úrovni (typicky CS), může použít 3-vodičové zapojení, kdy EN je společné s tímto signálem (CS) a plní funkci zachycení dat (viz Obr.4).
Obr.4: 3-vodičové zapojení v režimu Latch
Uživatel nastaví polaritu signálu EN opačně, než je polarita uvažovaného signálu CS.
nastavení přepínačů | vstup EN | funkce | ||
EU=0 | EF=0 | EP=0 | x | data jsou trvale přijímána s každou periodou CLK |
EU=0 | EF=0 | EP=1 | x | nová data jsou ignorována (pamatování posledního stavu) |
EU=0 | EF=1 | EP=0 | x | data jsou trvale přijímána s každou periodou CLK |
EU=0 | EF=1 | EP=1 | x | nová data jsou ignorována (pamatování posledního stavu) |
EU=1 | EF=0 | EP=0 | EN=0 | data jsou přijímána s každou periodou CLK |
EU=1 | EF=0 | EP=0 | EN=1 | nová data jsou ignorována, změna CLK neovlivní stav Insideru (pamatování posledního stavu) |
EU=1 | EF=0 | EP=1 | EN=0 | nová data jsou ignorována, změna CLK neovlivní stav Insideru (pamatování posledního stavu) |
EU=1 | EF=0 | EP=1 | EN=1 | data jsou přijímána s každou periodou CLK |
EU=1 | EF=1 | EP=0 | EN=0 | data jsou přijímána s každou periodou CLK |
EU=1 | EF=1 | EP=0 | EN=1 | funkce Latch - s každou periodou CLK jsou přijímána nová data, ale zobrazena jsou stará data (platná při posledním stavu EN=0) |
EU=1 | EF=1 | EP=1 | EN=0 | funkce Latch - s každou periodou CLK jsou přijímána nová data, ale zobrazena jsou stará data (platná při posledním stavu EN=1) |
EU=1 | EF=1 | EP=1 | EN=1 | data jsou přijímána s každou periodou CLK |
Pokud je nastaven přepínač EU=0 a EP=0, je zvolen 2-vodičový režim, kdy vstupem do Insideru jsou pouze signály CLK a DATA. V tomto režimu jsou trvale zachytávána data platná při každé vyslané periodě CLK a jsou zobrazována na displeji v pořadí MSB-LSB (poslední bit vyslaných dat je zobrazen jako nejméně významný bit segmentu SEG1).
Tento režim je vhodný k zachycení 4/8/12/16-bitové sekvence dat, kdy uživatel vyšle posloupnost pulsů CLK a k nim odpovídající data.
Pokud uživatel vysílá 4-bitovou posloupnost dat (první MSB, poslední LSB), je zobrazena vždy na segmentu SEG1. Předchozí hodnota je posunuta na následující segment (SEG2).
Pokud uživatel vysílá 8-bitovou posloupnost dat (první MSB, poslední LSB), je zobrazena vždy na pravém displeji displeji (segmenty SEG1, SEG2), předchozí hodnota je zobrazena na displeji levém.
Pokud uživatel vyšle 16-bitovou posloupnost dat v pořadí (první MSB, poslední LSB) je zobrazena na displeji tak, že poslední bit dat (LSB) odpovídá nejméně významnému bitu segmentu SEG1.
Pokud bylo vysláno více než 16 bitů dat, je zobrazeno pouze 16 posledních vyslaných bitů dat (poslední přijatý bit odpovídá nejméně významnému bitu segmentu SEG1) a předchozí bity jsou ignorovány.
Pokud je nastaven přepínač EU=1 a EF=0, je zvolen 3-vodičový režim, kdy vstup EN řídí hradlování hodinového signálu CLK.
Tento režim je vhodný pokud jsou signály CLK a DATA připojeny ke sběrnici plnící další funkce v systému. Uživatel ve vhodném okamžiku na sběrnici vyšle požadovaná data pro Insider a po dobu vysílání dat nastaví signál EN tak, aby data byla přijímána. Poté invertováním signálu EN zastaví příjímání dat a může sběrnici opět začít volně využívat.
Hradlování signálu CLK je prováděno v závislosti na nastavené polaritě signálu EN (přepínač EP). Pokud je EP=0, jsou data přijímána při EN=0 a při EN=1 jsou data ignorována, pokud je EP=1, je tomu naopak.
Pokud je nastaven přepínač EU=1 a EF=1, je zvolen 3-vodičový režim, kdy vstup EN řídí přepis přijatých dat do výstupního registru Latch. Data jsou tedy přijímána nepřetržitě s každou periodou hodinového signálu CLK a signál EN určí okamžik platnosti dat, kdy jsou přijatá data přepsána do výstupního záchytného registru.
Tento režim lze s výhodou použít v případech, kdy je nutné v aplikaci sdílet všechny signály Insideru s jinými funkcemi systému (např. vstup výběru součástky CS - chip select).
Tento režim je také vhodný pro synchronní systémy, kde puls logického signálu (např. na dobu 1 periody CLK nebo 1/2 periody CLK) určuje platnost přijatých dat. Hodinový signál CLK v tomto případě může běžet nepřetržitě (např. je generován krystalovým oscilátorem).
Řízení přepisu dat do výstupního registru je prováděno v závislosti na nastavené polaritě signálu EN (přepínač EP). Pokud je EP=0, způsobí EN=0 přepis dat do výstupního registru. EN=1 zastaví přepis dat do výstupního registru, jsou zapamatována poslední platná data. Pokud je EP=1, je tomu naopak.
Přepínač CP (Clock polarity) určuje, která hrana hodinového signálu CLK bude provádět zápis bitu DATA do posuvného registru. Data v okamžiku zápisu musí být ustálená, je vhodné, aby se data měnila s opačnou hranou signálu CLK, než s kterou dochází k jejich zápisu do registru.
Pokud CP=0, bude při sestupné hraně CLK zapsán bit DATA do posuvného registru. Pokud CP=1, bude bit DATA zapsán do posuvného registru při náběžné hraně hodinového signálu CLK.
V Insideru jsou pro lepší přehled o dění v aplikaci zabudovány 4 kontrolní diody LED.
PWR | zelená dioda indikující přítomnost napájecího napětí |
DATA | červená dioda. Svítí pokud vstupní napětí signálu DATA je alespoň 2.2V (log.1) |
CLK | červená dioda. Svítí pokud vstupní napětí signálu CLK je alespoň 2.2V (log.1) |
EN | červená dioda. Svítí pokud vstupní napětí signálu EN je alespoň 2.2V (log.1) |
- vstupy CMOS - 3V, 5V / TTL / LVT kompatibilní | |||
- vstupní napětí log."1" | Vih | min 2.2 V | max 5.5 V |
- vstupní napětí log."0" | Vil | min 0 V | max 0.9 V |
- vstupní odpor | Rin | min 1 MOhm | |
- vstupní kapacita | Cin | max 250 pF | |
- mezní kmitočet | fm | max 50 MHz | |
- napájení střídavým napětím 9V/300mA (adaptér součástí dodávky) - připojení k aplikaci pomocí kabelu zakončeného měřícími klipsy (součástí dodávky) |
PIC - EXAMPLE 1: macro INSIDER UserReg | Download EXAMPLE |
PIC - EXAMPLE 2: call INSIDER, W=parameter | |
FPGA - EXAMPLE: schéma pro implementaci do FPGA |
; EXAMPLE 1: macro INSIDER UserReg ; ; Makro vypise nedestruktivne UserReg na displej Insideru. ; Nespotrebuje se zde zadny registr ani W, nespotrebuje se zadna uroven ; STACKU. Narocnost makra je 49 instrukci, bude vykonavano ; 49 instrukcnich cyklu. ;----------------------------------------------------------------------- ; DEFINICE HARDWARE list F=inhx8m, p=16F84, r=hex ; pro prekladac __config 3ffBh ; pojistky ;----------------------------------------------------------------------- ; User Pins Tris: 3F #define ICLK portb,7 ; #define IDATA portb,6 ; ; Special Function Registers INDF equ 00h ; sdileny pro obe banky TMR0 equ 01h ROption equ 01h PCL equ 02h ; sdileny pro obe banky STATUS equ 03h ; sdileny pro obe banky FSR equ 04h ; sdileny pro obe banky Porta equ 05h ; bank 0 Portb equ 06h ; bank 0 Trisa equ 05h ; bank 1 Trisb equ 06h ; bank 1 #define zero status,2 ; Zero flag #define DC status,1 ; DC flag #define carry status,0 ; C flag ; Uzivatelske registry UserReg1 set 0x0C ; uzivatelsky registr UserReg2 set 0x0D ; uzivatelsky registr ;----------------------------------------------------------------------- ; definice maker Insider macro OutReg ; makro vypise nedestruknivne obsah OutReg na ; displej Insideru, jehoz vsechny prepinace jsou 0 ; (CP=0,EU=0,EF=0,EP=0) bsf ICLK rlf OutReg,f bcf IDATA ; bit 7 btfsc carry bsf IDATA bcf ICLK bsf ICLK rlf OutReg,f bcf IDATA ; bit 6 btfsc carry bsf IDATA bcf ICLK bsf ICLK rlf OutReg,f bcf IDATA ; bit 5 btfsc carry bsf IDATA bcf ICLK bsf ICLK rlf OutReg,f bcf IDATA ; bit 4 btfsc carry bsf IDATA bcf ICLK bsf ICLK rlf OutReg,f bcf IDATA ; bit 3 btfsc carry bsf IDATA bcf ICLK bsf ICLK rlf OutReg,f bcf IDATA ; bit 2 btfsc carry bsf IDATA bcf ICLK bsf ICLK rlf OutReg,f bcf IDATA ; bit 1 btfsc carry bsf IDATA bcf ICLK bsf ICLK rlf OutReg,f bcf IDATA ; bit 0 btfsc carry bsf IDATA bcf ICLK bsf ICLK endm bnk0 macro ; makro nastavi banku 0 bcf status,5 endm bnk1 macro ; makro nastavi banku 1 bsf status,5 endm ;----------------------------------------------------------------------- org 0x00 goto Start ; 1. instrukce - skok na zacatek programu org 0x05 ; zacatek programu Start: bnk1 movlw 0x3F movwf TRISB ; nastaveni smeru portu B bnk0 ; (pin 0,6,7 output, pin 1 az 5 input) movlw 0x1A movwf UserReg1 ; UserReg1 obsahuje nejaka uzivatelska data ; (v tomto pripade 0x1A) movlw 0x3F movwf UserReg2 ; UserReg2 obsahuje nejaka uzivatelska data ; (v tomto pripade 0x3F) nop nop ; ...kdekoliv v programu Insider UserReg1 ; Nedestruktivne vypiseme hodnotu UserReg1 na displeji nop nop ; ...kdekoliv v programu Insider UserReg2 ; Nedestruktivne vypiseme hodnotu UserReg2 na displeji nop nop ; ...uzivatelsky program pokracuje Stop: goto Stop end
; EXAMPLE 2: call INSIDER, W=parameter ; ; Podprogram vypise obsah registru W na displej Insideru. ; V datove pameti se spotrebuje 1 registr (IREG), spotrebuje se ; 1 uroven STACKU. Hodnota W zustane nezmenena. Programova narocnost ; procedury je 20 instrukci. ;----------------------------------------------------------------------- ; DEFINICE HARDWARE list F=inhx8m, p=16F84, r=hex ; pro prekladac __config 3ffBh ; pojistky ;----------------------------------------------------------------------- ; User Pins Tris: 3F #define ICLK portb,7 #define IDATA portb,6 ; Special Function Registers INDF equ 00h ; sdileny pro obe banky TMR0 equ 01h ROption equ 01h PCL equ 02h ; sdileny pro obe banky STATUS equ 03h ; sdileny pro obe banky FSR equ 04h ; sdileny pro obe banky Porta equ 05h ; bank 0 Portb equ 06h ; bank 0 Trisa equ 05h ; bank 1 Trisb equ 06h ; bank 1 #define zero status,2 ; Zero flag #define DC status,1 ; DC flag #define carry status,0 ; C flag ; Registry Insideru IREG set 0x0C ; pracovni registr Insideru ; Uzivatelske registry ;UserReg set 0x0D ; zde jsou uzivatelske registry... ;----------------------------------------------------------------------- ; Definice maker bnk0 macro ; makro nastavi banku 0 bcf status,5 endm bnk1 macro ; makro nastavi banku 1 bsf status,5 endm ;----------------------------------------------------------------------- ; Startup org 0x00 goto Start ; 1. instrukce - skok na zacatek programu ;----------------------------------------------------------------------- ; Procedury org 0x05 ; Od teto adresy bude ulozen program Insider: ; Procedura vypise nedestruktivne W na displeji ; insideru, vsechny prepinace Insideru jsou ; nastaveny do 0 (CP=0,EU=0,EF=0,EP=0) movwf IREG ; Ulozeni W do IREG movlw 0x08 ; pocatecni inicializace cyklu ICykl: rlf IREG,f bcf IDATA btfsc carry ; test bitu a nastaveni pinu DATA bsf IDATA bsf ICLK ; zapis sestupnou hranou bcf ICLK btfss carry ; test na stav carry goto Ic0 ; carry je 0 addlw -1 ; carry byl 1, W=W-1 bsf carry ; obnoveni stavu carry Istop: btfss zero goto Icykl ; opakuje se 8x rlf IREG,f ; obnoveni stavu registru IREG movf IREG,w ; obnoveni registru W return Ic0: addlw -1 ; carry byl 0, W=W-1 bcf carry ; obnoveni stavu carry goto Istop ;----------------------------------------------------------------------- Start: bnk1 movlw 0x3F movwf TRISB ; nastaveni smeru portu B bnk0 ; (pin 6,7 output, pin 0 az 5 input) nop nop ; ...kdekoliv v programu movlw 0x1A call Insider ; nedestruktivne vypise W na displeji nop nop ; ...kdekoliv v programu addlw 0x01 ; inkrementujeme W call Insider ; a opet vypiseme na displeji nop nop ; ...uzivatelsky program pokracuje Stop: goto Stop end
FPGA - EXAMPLE: schéma automatu pro obsluhu Insideru ve dvouvodičovém zapojení
Všechny přepínače Insideru jsou přepnuty do 0 (CP=0,EU=0,EF=0,EP=0)
Copyright © 1991-2002 ASIX s.r.o.
The Microchip name, logo, PIC, PICmicro, "The Embedded Control Solutions Company", MPLAB, MPASM, ICEPIC, ICSP, In-Circuit Serial Programming, PICC, PICC Lite and PICC 18 are registered trademarks of Microchip Technology Inc. in the U.S.A. and other countries. All other trademarks used on these WWW pages are properties of their respective owners. This information is provided in the hope that it will be useful, but without any warranty. We disclaim any liability for the accuracy of this information. We are not responsible for the contents of web pages referenced by this site.