clrc663 polling felica卡时总是超时,请大神帮忙看下设置有没有问题

sky_vostro 2014-03-07 04:53:24
/*****************协议设置*********************/
send [2]: 0f 98 /* T0控制寄存器:定时器在接收前4位后将立即停止、定时器在传输结束时自动开始、在计数器值达到零值时,定时器会用T0ReloadValue的预设值重启计时*/
recv [1]: 0f
send [2]: 14 92 /* T1控制寄存器:定时器在接收前4位后将立即停止、定时器在传输结束时自动开始、定时器输入时钟为定时器0的下溢*/
recv [1]: 14
send [2]: 19 20 /* T2控制寄存器:定时器用于无下溢时的LFO微调*/
recv [1]: 19
send [2]: 1a 03 /* 定时器2预设值的高字节*/
recv [1]: 1a
send [2]: 1b ff /* 定时器2预设值的低字节*/
recv [1]: 1b
send [2]: 1e 00 /* T3控制寄存器:定时器不会自动开始、定时器输入时钟在13.56 MHz*/
recv [1]: 1e
send [2]: 02 90 /* FIFO的控制寄存器:FIFO大小为255字节*/
recv [1]: 02
send [2]: 03 fe /* WaterLevel寄存器*/
recv [1]: 03
send [2]: 0c 80 /* RxBitCtrl接收器控制寄存器*/
recv [1]: 0c
send [2]: 34 00 /* RxSofD寄存器*/
recv [1]: 34

send [2]: 00 00 /* Terminate a probably running command */
recv [1]: 00

send [1]: 82 /* Flush FiFo */
recv [1]: a0
send [2]: 02 b0
recv [1]: 02

send [2]: 06 7f /* clear all IRQ0 flags */
recv [1]: 06

send [2]: 07 7f /* clear all IRQ1 flags */
recv [1]: 07

send [1]: 84 /* Read out the lower FiFo Level bits */
recv [1]: 00

send [2]: 05 08 /* Perform actual write to FiFo */
recv [1]: 05

send [2]: 05 08
recv [1]: 05

send [1]: 88 /* Enable IRQ0 interrupt sources */
recv [1]: 00
send [2]: 08 10
recv [1]: 08

send [1]: 89 /* Enable IRQ1 interrupt sources */
recv [1]: 00
send [2]: 09 40
recv [1]: 09

send [2]: 00 0d /* start the command */
recv [1]: 00

send [1]: 87 /* wait until the command is finished */
recv [1]: 60
send [2]: 08 00 /* 关IRQ0中断*/
recv [1]: 08
send [2]: 09 00 /* 关IRQ1中断*/
recv [1]: 09
send [1]: 86
recv [1]: 70

send [1]: 82 /* Flush FIFO if contents are not retrieved */
recv [1]: a0
send [2]: 02 b0
recv [1]: 02

send [1]: 8a /* read the error register */
recv [1]: 00

send [1]: a8 /* Read out DrvMode register */
recv [1]: 8f

send [2]: 28 8f /* Apply RegisterSet using library register set */
recv [1]: 28
send [2]: 29 17
recv [1]: 29
send [2]: 2a 01
recv [1]: 2a
send [2]: 2b 0a
recv [1]: 2b
send [2]: 2c 09
recv [1]: 2c
send [2]: 2d 09
recv [1]: 2d
send [2]: 2e 08
recv [1]: 2e
send [2]: 2f 00
recv [1]: 2f
send [2]: 30 03
recv [1]: 30
send [2]: 31 80
recv [1]: 31
send [2]: 33 01
recv [1]: 33
send [2]: 35 05
recv [1]: 35
send [2]: 37 3f
recv [1]: 37
send [2]: 38 12
recv [1]: 38
send [2]: 39 02
recv [1]: 39

send [1]: a8 /* PHHAL_HW_CONFIG_ASK100 Read out DrvMode register */
recv [1]: 8f

send [1]: b1 /* Read TxWaitControl register*/
recv [1]: 80
send [2]: 31 c0 /* Write changed register */
recv [1]: 31
send [2]: 32 00 /* Set the 8 LSBs */
recv [1]: 32

send [1]: b3 /* Apply Parity settings from Shadow */
recv [1]: 01

send [1]: ac /* Apply Tx-CRC settings from Shadow */
recv [1]: 09

send [1]: ad /* Apply Rx-CRC settings from Shadow */
recv [1]: 09

send [1]: ae /* Apply TxLastBits settings from Shadow */
recv [1]: 08
send [2]: 2e 08
recv [1]: 2e

send [2]: 36 86 /* PHHAL_HW_CONFIG_RXDEAFBITS SetConfig*/
recv [1]: 36

send [1]: b1 /* PHHAL_HW_CONFIG_TXWAIT_US SetConfig*/
recv [1]: c0
send [2]: 31 c0 /* 发射器等待控制*/
recv [1]: 31
send [2]: 32 00 /* 发射器等待时间低字节*/
recv [1]: 32

send [2]: 10 19 /* 定时器0重载值的高寄存器*/
recv [1]: 10
send [2]: 11 00 /* 定时器0重载值的低寄存器*/
recv [1]: 11
send [2]: 15 00 /* 定时器1重载值高寄存器*/
recv [1]: 15
send [2]: 16 00 /* 定时器1重载值低寄存器*/
recv [1]: 16

send [1]: a9 /* 发射器放大器寄存器*/
recv [1]: 17

send [1]: a8 /* 驱动器模式寄存器*/
recv [1]: 8f

send [1]: 8b /* 含有通信状态*/
recv [1]: 00


/*******************场复位*********************************/
/* Switch off the field */
send [1]: a8 /* Read out DrvMode register */
recv [1]: 8f
send [2]: 28 87 /* Write DrvMode register */
recv [1]: 28

send [2]: 10 34 /* 定时器0预设值的高字节*/
recv [1]: 10
send [2]: 11 f8 /* 定时器0预设值的低字节*/
recv [1]: 11
send [2]: 15 00 /* 定时器1预设值的高字节*/
recv [1]: 15
send [2]: 16 04 /* 定时器1预设值的低字节*/
recv [1]: 16
send [1]: 8e /* 读取TCONROTL寄存器值*/
recv [1]: 00
send [2]: 07 7f /* 07为IRQ0,写入7F为清除0-6位的中断请求*/
recv [1]: 07
send [2]: 0e 33 /* 写入TCONTROL寄存器值33,表示定时器0和定时器1启动*/
recv [1]: 0e
send [1]: 88 /* 读取IRQ0En中断请求使能寄存器的值*/
recv [1]: 00
send [1]: 89 /* 读取IRQ1En中断请求使能寄存器的值*/
recv [1]: 00
send [2]: 08 00 /* 0-7为表示的IRQ0中断请求都不允许传送到GlobalIrq*/
recv [1]: 08
send [2]: 09 42 /* LPCD_IrqEn,Timer1IrqEn的IRQ1中断请求能够传送到GlobalIrq*/
recv [1]: 09
send [1]: 87 /* 读取IRQ1寄存器的值*/
recv [1]: 21 /* 在低功耗卡检测序列(LPCD)中检测到卡、定时器0产生下溢*/
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 63 /* 有效的Irq 发生、在低功耗卡检测序列(LPCD)中检测到卡、定时器1产生下溢、定时器0产生下溢*/
send [2]: 08 00 /* 关IRQ0中断*/
recv [1]: 08
send [2]: 09 00 /* 关IRQ1中断*/
recv [1]: 09
send [2]: 0e 03 /* 停止定时器0和定时器1*/
recv [1]: 0e

send [2]: 10 19 /* 定时器0预设值的高字节*/
recv [1]: 10
send [2]: 11 00 /* 定时器0预设值的低字节*/
recv [1]: 11
send [2]: 15 00 /* 定时器1预设值的高字节*/
recv [1]: 15
send [2]: 16 00 /* 定时器1预设值的低字节*/
recv [1]: 16



send [1]: a8 /* 读取驱动器模式寄存器值*/
recv [1]: 87
send [2]: 28 8f /* 设置驱动器模式寄存器值*/
recv [1]: 28

send [2]: 10 34 /* 定时器0预设值的高字节*/
recv [1]: 10
send [2]: 11 f8 /* 定时器0预设值的低字节*/
recv [1]: 11
send [2]: 15 00 /* 定时器1预设值的高字节*/
recv [1]: 15
send [2]: 16 04 /* 定时器1预设值的低字节*/
recv [1]: 16

send [1]: 8e /* 读取TCONROTL寄存器值*/
recv [1]: 00
send [2]: 07 7f /* 07为IRQ0,写入7F为清除0-6位的中断请求*/
recv [1]: 07
send [2]: 0e 33 /* 写入TCONTROL寄存器值33,表示定时器0和定时器1启动*/
recv [1]: 0e
send [1]: 88 /* 读取IRQ0En中断请求使能寄存器的值*/
recv [1]: 00
send [1]: 89 /* 读取IRQ1En中断请求使能寄存器的值*/
recv [1]: 00
send [2]: 08 00 /* 0-7为表示的IRQ0中断请求都不允许传送到GlobalIrq*/
recv [1]: 08
send [2]: 09 42 /* LPCD_IrqEn,Timer1IrqEn的IRQ1中断请求能够传送到GlobalIrq*/
recv [1]: 09
send [1]: 87 /* 读取IRQ1寄存器的值*/
recv [1]: 21 /* 在低功耗卡检测序列(LPCD)中检测到卡、定时器0产生下溢*/
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 21
send [1]: 87
recv [1]: 63 /* 有效的Irq 发生、在低功耗卡检测序列(LPCD)中检测到卡、定时器1产生下溢、定时器0产生下溢*/
send [2]: 08 00 /* 关IRQ0中断*/
recv [1]: 08
send [2]: 09 00 /* 关IRQ1中断*/
recv [1]: 09
send [2]: 0e 03 /* 停止定时器0和定时器1*/
recv [1]: 0e

send [2]: 10 19 /* 定时器0预设值的高字节*/
recv [1]: 10
send [2]: 11 00 /* 定时器0预设值的低字节*/
recv [1]: 11
send [2]: 15 00 /* 定时器1预设值的高字节*/
recv [1]: 15
send [2]: 16 00 /* 定时器1预设值的低字节*/
recv [1]: 16



/*******************激活卡片************************************/
/*******************phpalFelica_Sw_ReqC*************************/
send [2]: 10 97
recv [1]: 10
send [2]: 11 70
recv [1]: 11
send [2]: 15 00
recv [1]: 15
send [2]: 16 00
recv [1]: 16
06 00 ff ff 00 00

-------------------------1
-------------------------2
-------------------------3
send [2]: 00 00
recv [1]: 00
-------------------------4
send [1]: 82
recv [1]: a0
send [2]: 02 b0 /* Flush FiFo */
recv [1]: 02
-------------------------5
send [2]: 06 7f /* clear all IRQ0 flags */
recv [1]: 06
-------------------------6
send [2]: 07 7f /* clear all IRQ1 flags */
recv [1]: 07
-------------------------7 wNumPrecachedBytes=0
-------------------------8
send [1]: 84
recv [1]: 00
send [2]: 05 06
recv [1]: 05
send [2]: 05 00
recv [1]: 05
send [2]: 05 ff
recv [1]: 05
send [2]: 05 ff
recv [1]: 05
send [2]: 05 00
recv [1]: 05
send [2]: 05 00
recv [1]: 05
-------------------------9
-------------------------10 wTxLength=0 wTmpBufferLen=0
send [2]: 00 07 /* start the command 06 00 ff ff 00 00*/
recv [1]: 00
-------------------------11
/* wait until the transmission is finished */
send [1]: 88 /* Read IRQ0En registers */
recv [1]: 00
send [1]: 89 /* Read IRQ1En registers */
recv [1]: 00
send [2]: 08 18 /* 允许空闲中断请求、发射器中断请求被传送到GlobalIrq*/
recv [1]: 08
send [2]: 09 42 /* 允许LPCD中断请求、定时器1中断请求被传送到GlobalIrq*/
recv [1]: 09
send [1]: 87 /* Read 中断请求寄存器1的值*/
recv [1]: 60 /* 有效的Irq 发生、在低功耗卡检测序列(LPCD)中检测到卡*/
send [2]: 08 00 /* 关中断IRQ0*/
recv [1]: 08
send [2]: 09 00 /* 关中断IRQ1*/
recv [1]: 09
send [1]: 86 /* 读取IRQ0寄存器*/
recv [1]: 68 /* Status1Reg 寄存器中的HiAlert位被设置、STATUS1寄存器中的LoAlert位被设置、数据传输结束*/
-------------------------15
send [2]: 06 40 /* Clear high-alert irq flag */
recv [1]: 06
bIrq0WaitFor=55 bIrq1WaitFor=02
send [1]: 88 /* Read IRQ0En registers */
recv [1]: 00
send [1]: 89 /* Read IRQ1En registers */
recv [1]: 00
send [2]: 08 55 /* 允许缓冲区高警告的中断请求(由HiAlertIrq位显示)、空闲中断请求(由IdleIrq 位显示)、接收器中断请求(由RxIrq 位显示)、将允许RxSOF中断请求(由RxSOFIrq 位显示)被传送到GlobalIrq*/
recv [1]: 08
send [2]: 09 42 /* 允许LPCD中断请求、定时器1中断请求被传送到GlobalIrq*/
recv [1]: 09
send [1]: 87 /* Read 中断请求寄存器1的值*/
recv [1]: 20 /* 低功耗卡检测序列(LPCD)中检测到卡*/
send [1]: 87
recv [1]: 20
send [1]: 87
recv [1]: 63 /* 有效的Irq 发生、在低功耗卡检测序列(LPCD)中检测到卡、定时器1产生下溢、定时器0产生下溢*/
send [2]: 08 00 /* 关中断IRQ0*/
recv [1]: 08
send [2]: 09 00 /* 关中断IRQ1*/
recv [1]: 09
send [1]: 86 /* 读取中断请求寄存器0的值*/
recv [1]: 28 /* STATUS1寄存器中的LoAlert位被设置、数据传输结束*/
-------------------------16
-------------------------17
-------------------------18
send [1]: 8e
recv [1]: 10 /* Timer0正在运作*/
send [2]: 0e 03 /* 停止Timer0 Timer1*/
recv [1]: 0e
-------------------------19 status=1
-------------------------20 status=1
-------------------------23
send [2]: 00 00 /* stop the command */
recv [1]: 00

send [1]: 82
recv [1]: a0
send [2]: 02 b0 /* Flush FiFo */
recv [1]: 02

-------------------------24 0000
phhalHw_Exchange status=513
status2=513
/*******************phpalFelica_Sw_ReqC*************************/


pIDmPMmOut=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

---------------------------Detect Card flag = 0
...全文
1729 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
xqhrs232 2016-09-24
  • 打赏
  • 举报
回复
这么早就在搞 CLRC663啊 ?!!!

3,846

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 无线
社区管理员
  • 无线
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧