paths changed
[kk_librfid.git] / firmware / doc / .svn / text-base / piccsim.txt.svn-base
blob3f149da5e852ec632153a79fba00237ae2c3b579
1 PICCSIM design
3 ISO14443 anticollision:
4 - Configure TC 
5         - to reset TC2 on every falling edge
6         - to use FORCE_FAST for TC IRQ
7         - to enable TC2 ETRGS
8 - CARRIER_DIV is switched to 212kHz / 424kHz
9         - this results in SSC Rx is 4x (2x?) oversampling
10 - Set SSC Rx start condition to 4x/2x SOF pattern
11 - upon reception of first falling edge, we
12         - end up in TC FIQ
13         - read out TC0 current value
14         - reconfigure TC0 RA/RB to be in-phase with previously-read TC0
15           value (subtracting some fixed offset depending on FIQ latency)
16         - reconfigure TC2 
17                 - to use external event on every rising edge
18                 - to reset(trigger) on every external event
19                 - to clear TIOA2 on RC compare (RC is high)
20                 - to set TIOA2 on RA compare (RA set later)
21                 - disable TC2 IRQ (and FIQ FAST_FORCE)
22 - Wait for SSC Rx Interrupt (DMA complete, or PIO)
23         - Read and decode single 32bit word
24         - determine whether it is REQA or WUPA
25                 - abort if not, start over
26         - depending on last bit 0/1, configure TC2 RA (FDT)
27         - recconfig TC0 to produce 1.6MHz CARRIER_DIV clock for SSC Tx
28                 - make sure this is done synchronously
29                 - 
30         - set up SSC Tx 
31                 - DMA with pre-encoded (and user-configured) ATQA
32                 - start Tx at a rising edge of TF (asserted by TC2 RA)
33                 - Send Interrupt once TX DMA is done
34 - Once TC2 RA compare happens, the rising edge of TIOA2 will trigger SSC 
35 - Wait for SSC Tx DMA to finish
36 - Repeat similar steps for ANTICOL/SELECT command, differences:
37         - single-byte compare after frame Rx is not sufficient
38                 - evaluate number of valid bits ASAP
39         - we might receive and transmit split frame at non-byte-boundaries
40                 - just shift a prepared ANTICOL/Select response 
41                 - make sure parity is handled correctly!
42 - Once we've completed the select, we go on with normal