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


OBSAH

1. INSIDER
2. POUŽITÍ
3. VLASTNOSTI INSIDERU
4. POPIS FUNKCE

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

5. NASTAVENÍ PŘEPÍNAČŮ INSIDERU
6. VOLBA REŽIMU ČINNOSTI INSIDERU

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)

7. NASTAVENÍ POLARITY SIGNÁLU CLK
8. INDIKAČNÍ DIODY LED
9. TECHNICKÁ SPECIFIKACE
10. PŘÍKLADY ZDROJOVÉHO KÓDU

1. INSIDER

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.


2. POUŽITÍ

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.


3. VLASTNOSTI INSIDERU

4. POPIS FUNKCE

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

Blokové schéma Insideru

Zvětšit

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í

Obr.2

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

Obr.3

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

Obr.4

Uživatel nastaví polaritu signálu EN opačně, než je polarita uvažovaného signálu CS.


5. NASTAVENÍ PŘEPÍNAČŮ INSIDERU

CP - (Clock polarity) volí polaritu signálu CLK.
CP=0 - sestupná hrana (při sestupné hraně CLK dojde k zapsání dat do registru)
CP=1 - náběžná hrana (při náběžné hraně CLK dojde k zapsání dat do registru)
EU - (Enable used) určuje, zda uživatel používá signál EN
EU=0 - signál EN se ignoruje
EU=1 - signál EN se používá (viz příklady výše)
 
Poznámka: nezapomeňte v případě EU=0 nastavit také EP=0, aby Insider mohl přijímat data!
EF - (Enable function) určuje, zda signál EN plní funkci hradlování vstupních hodin CLK (Clock enable), nebo zda EN plní funkci zachycení dat logickou úrovní "1" nebo "0" dle nastavené polarity signálu EN (Latch)
EF=0 - signál EN plní funkci hradlování CLK (Clock enable)
EF=1 - signál EN plní funkci zachycení dat logickou úrovní (Latch)
EP - (Enable polarity) volí polaritu signálu EN. Význam signálu EN je ovlivněn přepínači EU a EF.
EP=0 - data jsou přijímána při EN=0, při EN=1 jsou nová data ignorována (funkce paměti)
EP=1 - data jsou přijímána při EN=1, při EN=0 jsou nová data ignorována (funkce paměti)
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



6. VOLBA REŽIMU ČINNOSTI INSIDERU

6.1  2-vodičový režim zachycení dat délky 4/8/12/16 bitů

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.

6.2  3-vodičový režim, EN plní funkci hradlování hodin

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.

6.3  3-vodičový režim, EN plní funkci zachycení dat (Latch)

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.


7. NASTAVENÍ POLARITY SIGNÁLU CLK

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.


8. INDIKAČNÍ DIODY LED

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)

9. TECHNICKÁ SPECIFIKACE

- 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)

10. PŘÍKLADY ZDROJOVÉHO KÓDU

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)

Schéma implementace do FPGA


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.