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.