共8条
1/1 1 跳转至页
IC,TDA8007BHL,C3 [求助]用过IC卡接口芯片TDA8007BHL/C3的高手请进!急需帮助!

问
最近做一个系统用到philips的IC卡接口芯片TDA8007BHL/C3,看完资料后开始编程初始化,但是始终都不能通过TDA8007给IC卡上电,芯片资料上面说:一次只能选一个卡,给一个设置参数,给一个卡上电,但是我选一个卡却不能上电,相反,我选两个卡,选三个卡才能上电,于是很是不解!
上电后,用TDA8007B的内部定时产生108ETU,然后却发现定时器根本就不中断,从而无法进行后面的拉高RSTIN,无法给卡复位,也就无法得到后面的返回字节,我所编写的程序是参考网上的那个TDA8007B的IC卡接口程序编写的,http://embed.21ic.com/html/70/show1632.htm
;******************************************************************
P1.5=0; //片选TDA8007
CSR&=0xf8;
CSR|=ncard; //选择卡,ncard=1,2,//请问:到底是先选卡还是先复位RIU和置位RIU?
CSR&=0xf7;//请问:根据芯片资料,选卡后RIU复位会让CSR的低三位全清"0",这样不就是相当于又变成一个卡都没有选吗???
CSR|=0xf7; //请问:这句的的作用是将CSR的低3位都置1吗,是不是就是选了3个卡的意思!
CSR|=0x08; //复位UART的寄存器
UCR2&=0xf7; //异步模式,SAN=0
CCR&=0xdf; //时钟停止于低电平
UCR2|=0x60; //关闭附加中断及收发中断
GTR=0xff; //保持时间12ETU
If(v==1) //v为函数变量
PCR|=0x08; //1.8V卡用
else if(v==3)
PCR|=0x02; //3V卡用
Else
PCR&=0xfd; //5V卡用
UCR2&=0xfc; //CKU=PSC=0,--31
FCR=0x00; //1奇偶校验1FIFO
PDR=0x0c; //Divider=12
CCR=0x00; //不分频
PCR&=0xfb; //RSTIN=0
UCR2|=0x04; //不自动转换
UCR1=0x01; //正向约定
UCR1&=0xf7; //接收模式
flag3=0; //复位定时标志
flagatr=0; //接收ATR首字节定时标志
PCR|=0x01; //激活
TOR2=0x6c;
TOR3=0x00;
TOC=0x61; //RST拉高前等待108ETU
while(flag3==0); //定时时间到,在中断中设置flag3=1
TOC=0x00; //关闭定时器
PCR|=0x04; //给复位拉高
TOR2=0x78;
TOR3=0x00;
TOC=0x61; //RST拉高前等待
flagatr=1;
ATR(); //复位应答处理函数
;******************************************************************
请高手帮忙,
如果有哪位高手做过类似的程序,请帮小弟解决一下当务之急,不胜感激,
如有可能请将程序发到我的信箱:happyleehappy@163.com 答 1: 难道没有人知道TDA8007吗,难道没有人知道TDA8007吗,
请问谁会用啊,如果能帮小弟一把,将感激不尽!
鞠躬!!! 答 2: 请帮帮小弟,弟弟请帮帮小弟,弟弟
请问谁会用啊,如果能帮小弟一把,将感激不尽!
上电后,用TDA8007B的内部定时产生108ETU,然后却发现定时器根本就不中断,从而无法进行后面的拉高RSTIN,无法给卡复位,也就无法得到后面的返回字节,我所编写的程序是参考网上的那个TDA8007B的IC卡接口程序编写的,http://embed.21ic.com/html/70/show1632.htm
;******************************************************************
P1.5=0; //片选TDA8007
CSR&=0xf8;
CSR|=ncard; //选择卡,ncard=1,2,//请问:到底是先选卡还是先复位RIU和置位RIU?
CSR&=0xf7;//请问:根据芯片资料,选卡后RIU复位会让CSR的低三位全清"0",这样不就是相当于又变成一个卡都没有选吗???
CSR|=0xf7; //请问:这句的的作用是将CSR的低3位都置1吗,是不是就是选了3个卡的意思!
CSR|=0x08; //复位UART的寄存器
UCR2&=0xf7; //异步模式,SAN=0
CCR&=0xdf; //时钟停止于低电平
UCR2|=0x60; //关闭附加中断及收发中断
GTR=0xff; //保持时间12ETU
If(v==1) //v为函数变量
PCR|=0x08; //1.8V卡用
else if(v==3)
PCR|=0x02; //3V卡用
Else
PCR&=0xfd; //5V卡用
UCR2&=0xfc; //CKU=PSC=0,--31
FCR=0x00; //1奇偶校验1FIFO
PDR=0x0c; //Divider=12
CCR=0x00; //不分频
PCR&=0xfb; //RSTIN=0
UCR2|=0x04; //不自动转换
UCR1=0x01; //正向约定
UCR1&=0xf7; //接收模式
flag3=0; //复位定时标志
flagatr=0; //接收ATR首字节定时标志
PCR|=0x01; //激活
TOR2=0x6c;
TOR3=0x00;
TOC=0x61; //RST拉高前等待108ETU
while(flag3==0); //定时时间到,在中断中设置flag3=1
TOC=0x00; //关闭定时器
PCR|=0x04; //给复位拉高
TOR2=0x78;
TOR3=0x00;
TOC=0x61; //RST拉高前等待
flagatr=1;
ATR(); //复位应答处理函数
;******************************************************************
请高手帮忙,
如果有哪位高手做过类似的程序,请帮小弟解决一下当务之急,不胜感激,
如有可能请将程序发到我的信箱:happyleehappy@163.com 答 1: 难道没有人知道TDA8007吗,难道没有人知道TDA8007吗,
请问谁会用啊,如果能帮小弟一把,将感激不尽!
鞠躬!!! 答 2: 请帮帮小弟,弟弟请帮帮小弟,弟弟
请问谁会用啊,如果能帮小弟一把,将感激不尽!

3楼
lz朋友 我现在也在了解这款IC,方便的话加QQ:1066541095.(注明TDA8007)大家相互交流下 谢谢



共8条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏10分 | |
【我踩过的那些坑】DRC使用位置错误导致的问题被打赏100分 | |
我踩过的那些坑之混合OTL功放与落地音箱被打赏50分 | |
汽车电子中巡航控制系统的使用被打赏10分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏100分 | |
分享汽车电子中巡航控制系统知识被打赏10分 | |
分享安全气囊系统的检修注意事项被打赏10分 | |
分享电子控制安全气囊计算机知识点被打赏10分 | |
【分享开发笔记,赚取电动螺丝刀】【OZONE】使用方法总结被打赏20分 | |
【分享开发笔记,赚取电动螺丝刀】【S32K314】芯片启动流程分析被打赏40分 |