Input Capture - PowerPoint PPT Presentation

1 / 33
About This Presentation
Title:

Input Capture

Description:

Pulse-rate sensing. Pulse-rate modulation. Pulse-width modulation. 2. Time Processor Unit (TPU) ... Pin state forced to high (immediate output selected). 26 ... – PowerPoint PPT presentation

Number of Views:44
Avg rating:3.0/5.0
Slides: 34
Provided by: dianet4
Category:
Tags: capture | high | input | pulse | rate

less

Transcript and Presenter's Notes

Title: Input Capture


1
Input Capture Output Compare
  • Input event detection
  • Output event generation
  • Pulse-rate sensing
  • Pulse-rate modulation
  • Pulse-width modulation

2
Time Processor Unit (TPU)
3
TPU
Controls 16 channels (available as pins). Can
observe events on these channels (input). Can
generate events on these channels (output).
Events transitions to indicate some state.
4
TPU
5
TPU Timers
Two timers TCR1 TCR2 -- 16 bits each
All channel events are created or captured w.r.t.
a timer.
TCR1 programmed in TPUMCR.
TCR2 can be driven by an external clock.
6
TPU Registers
TPU Module Configuration Register TPUMCR 0x30
4000
7
TPU Control Registers
TPU Interrupt Configuration Register (TICR) 0x30
4008
8
TPU Control Registers
Channel Interrupt Enable Register (CIER) 0x30 400a
0 interrupt disabled 1 interrupt enabled
9
TPU Control Registers
Channel Interrupt Status Register (CISR) 0x30 4020
Channel interrupt status 0 interrupt not
asserted 1 interrupt asserted
10
Channel Programming
16 predefined functions.
Input Capture capture one or multiple
transitions on an input pin.
11
Channel Programming
Program as an output channel. Output Compare
generate an event on the output a single output
transition, a single pulse, or a continuous 50
duty cycle pulse train.
12
Channel Initialization
Choose channel function Code for IC 0xA Channel
function code for OC 0x4
13
Input Capture Parameters
14
Input Capture/Transition Counter
Input Parameters MAX_COUNT The TPU raises an
interrupt after counting as many events as
MAX_COUNT.
Output Parameters TRANS_COUNT current count of
captured transitions. FINAL_TRANS_TIME Timer
time when the final transition (MAX_COUNTth) is
captured. LAST_TRANS_TIME Timer time when the
last transition (TRANS_COUNTth) is captured.
15
Memory Map of Parameters
Channel 0 MAX_COUNT 0x30 4104 TRANS_COUNT 0x30
4106 FINAL_TRANS_TIME 0x30 4108 LAST_TRANS_TIME
0x30 410A
General Channel Y MAX_COUNT 0x30
41Y4 TRANS_COUNT 0x30 41Y6 FINAL_TRANS_TIME
0x30 41Y8 LAST_TRANS_TIME 0x30 41YA
16
General Parameter Memory Map
0x3041
Ch 0
Ch 1
Ch 2
Ch 15
17
Channel Control Options
Part of channel initialization
18
Channel Priority
Choose channel priority 0disable 1low
2 medium 3 high
19
Channel Function Activation
After initializing channel, the channel function
is activated by host service request, which can
be further specialized through host sequence.
20
Host Sequence
Transition sequencing x0 single shot x1
continual
21
Typical Initialization Sequence
  • Disable the channel before programming it
  • CPRch ? 00 (channel priority disabled)
  • Assign the channel function
  • CFSRch ? 0xA (for input capture/ITC)
  • Program the function parameters
  • MAX_COUNT1 for input capture
  • Channel control TBS 000x (input channel
    capture TCR1) PAC 001 (detect rising edge)
    PSC 11 (do not force)
  • Host sequence single shot. Write 00 into
    HSQRRch.
  • etc.
  • Initialize host service (activate the channel)
  • HSRRch ? 01 (initialize TCR mode)
  • Enable the channel
  • CPRch ? 01, 10, 11

22
Shared Register Modification
00 Host service complete ? by TPU channel 01
Initialize TCR mode ? by CPU Program
Modification of HSRR involves read-modify-write
lhz r6, 0x401a(r5) //read andi r6, r6, 0xfffc
// modify (write 01 to HSRRch0) ori r6, r6,
0x1 sh r6, 0x401a(r5) // write
Does it work?
How many independent potential writers into HSRR1?
23
Shared Register Modification
We dont really know what happens to ch 1-7
fields while we modify ch 0 field.
24
Shared Register Modification.
Solution into ch 1-7 fields, write something we
are definitely not supposed to write.
00 is written by only the TPU, no CPU program
should legitimately write that value.
li r6, 0x1 //00 00 00 00 00 00 01 sth r6,
0x401a(r5)
01
Write guard logic only allows 01, 10, 11 to go
through!
25
Output Compare (OC)
26
Output Compare (OC)
OC parameters specified by the CPU program
REF_TIME1 as a pointer into the parameter space
of any of the 16 channels. Parameter address
space 0x3041 00 0x3041 fe Need to specify
only 8-bits of address for REF_ADDR1. OFFSET a
16-bit quantity 0x0 0x8000.
27
OC Programming
Point REF_ADDR1 to 0x3041 ec (TCR1 value
captured at this parameter address).
OFFSET 0x1000 with TCR1 resolution at 1
micro-s 4.096 milli-s.
Channel function code for OC 0x4 CFSRch ? 0x4
28
Output Compare
OC initialization (host service request of 01 --
host initiated pulse mode) writes the current
value TCR1 ? 0x3041 ec TCR2 ? 0x3041ee
Program channel 0 for this pulse.
29
OC Channel Control Options
30
OC Channel Control
31
OC Channel Control
32
Other OC Parameters
We will write 0s into RATIO, REF_ADDR2, and
REF_ADDR3.
33
OC Output Parameters
When a channel is initialized for OC through a
service request of 01, REF_TIME is computed as
(REF_ADDR1) OFFSET and placed in parameter
REF_TIME. REF_TIME is the next time instant when
an event would occur (and an interrupt is
raised). This is the match event compare TCR1/2
with REF_TIME for a match.
ACTUAL_MATCH_TIME is updated with the TCR1/2
time when the match is serviced (by raising an
interrupt, and changing the level of the output
channel).
Write a Comment
User Comments (0)
About PowerShow.com