Enhanced Modular I/O Subsystem (eMIOS200)
MPC5510 Microcontroller Family Reference Manual, Rev. 1
Freescale Semiconductor
26-21
Preliminary
EMIOS_CBDR[n] register. Reading EMIOS_CBDR[n] register forces B1 be updated with A1 register
content and re-enables transfers from B2 to B1, to take effect at the next trailing edge capture. Transfers
from B2 to A1 are not blocked at any time.
The input pulse width is calculated by subtracting the value in B1 from A2.
shows how the unified channel can be used for input pulse-width measurement.
Figure 26-16. Input Pulse-Width Measurement Example
shows the A1 and B1 updates when EMIOS_CADR[n] and EMIOS_CBDR[n] register reads
occur. The A1 register has always coherent data related to A2 register. When EMIOS_CADR[n] read is
performed, the B1 register is loaded with the A1 register content. This guarantees that the data in register
B1 always has the coherent data related to the last EMIOS_CADR[n] read. The B1 register updates remain
locked until EMIOS_CBDR[n] read occurs. If EMIOS_CADR[n] read is performed, B1 is updated with
A1 register content even if the B1 update is locked by a previous EMIOS_CADR[n] read operation.
0x000500
0x001000
0x001100
0x001250
0x001525
0x0016A0
Selected
Counter Bus
FLAG
Set Event
B
B
B
A2 (Captured)
Value
2
0xxxxxxx
0xxxxxxx
0x001100
0x001525
Notes:
1
After input filter
2
EMIOS_CADR[n] = A2
Input Signal
1
EDPOL = 1
A
A
B1 Value
3
0x001525
0x001100
0xxxxxxx
0xxxxxxx
0x001000
0x001250
0x001250
0x001000
0xxxxxxx
0x001000
0x001250
0x0016A0
0x001250
0x001000
B2 (Captured)
Value
3
EMIOS_CBDR[n] = B1
0xxxxxxx
0xxxxxxx
0x001000
0x001250
0x001250
0x001000
A1 Value
3