background image
© 2005 Ubicom, Inc. All rights reserved.
- 25 -
www.ubicom.com
SX20AC/SX28AC
11.0 COMPARATOR
The device contains an on-chip differential comparator.
Ports RB0-RB2 support the comparator. Ports RB1 and
RB2 are the comparator negative and positive inputs,
respectively, while Port RB0 serves as the comparator
output pin. To use these pins in conjunction with the com-
parator, the user program must configure Ports RB1 and
RB2 as inputs and Port RB0 as an output. The CMP_B
register is used to enable the comparator, to read the out-
put of the comparator internally, and to enable the output
of the comparator to the comparator output pin.
The comparator enable bits are set to "1" upon reset,
thus disabling the comparator. To avoid drawing addi-
tional current during the power down mode, the compara-
tor should be disabled before entering the power down
mode. Here is an example of how to setup the compara-
tor and read the CMP_B register.
The final "mov" instruction in this example performs an
exchange of data between the working register (W) and
the CMP_B register. This exchange occurs only with Port
B accesses. Otherwise, the "mov" instruction does not
perform an exchange, but only moves data from the
source to the destination.
Figure 11-1 shows the comparator block diagram.
CMP_B - Comparator Enable/Status Register
mov M,#$08
;set MODE register to access
;CMP_B
mov W,#$00
;clear W
mov !RB,W
;enable comparator and its
;output
...
;delay after enabling
;comparator for response
mov M,#$08
;set MODE register to access
;CMP_B
mov W,#$00
;clear W
mov !RB,W
;enable comparator and its
;output and also read CMP_B
;(exchange W and CMB_B)
and W,#$01
;set/clear Z bit based on
;comparator result
snb $03.2
;test Z bit in STATUS reg
;(0 => RB2<RB1)
jmp rb2_hi
;jump only if RB2>RB1
...
CMP_EN CMP_OE Reserved
CMP_RES
Bit 7
Bit 6
Bits 5­1
Bit 0
CMP_RES
Comparator result: 1 for RB2>RB1 or 0
for RB2<RB1. Comparator must be en-
abled (CMP_EN = 0) to read the result.
The result can be read whether or not the
CMP_OE bit is cleared.
CMP_OE
When cleared to 0, enables the compar-
ator output to the RB0 pin.
CMP_EN
When cleared to 0, enables the compar-
ator.