OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4082|回复: 0

关于TRF7963A的一些疑问

[复制链接]

19

主题

66

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
211
金钱
211
注册时间
2015-12-6
在线时间
47 小时
发表于 2017-1-18 17:30:30 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 我是520老谢 于 2017-1-19 14:46 编辑

最近在看TRF7963A的资料,关于TI提供的例程,有个地方没看明白,如果有使用过的人,希望可以不吝赐教,先谢过了。
使用  Trf796xRawWrite(&buf[0], 6);的时候,这些参数是这样的
buf[0] = 0X8F      复位FIFO,
buf[1] = 0X91      带CRC,
buf[2] = 0X3D     连续写寄存器
buf[3] = 0X00     写到0x1D寄存器的值
buf[4] = 0X20     寄存器1E,传输的字节数。
buf[5] = 0X31     [RD 2B command]  ------  最后这个我就没看明白什么意思了前面的都还好对应,但是最后的这条指令看备注还是没看明白表示的是什么?
//buf[6+30] = rd2b;                                                // addressed block

Trf796xRawWrite(&buf[0], 7);                        // set Special Function Register

是不是读两个字节命令
--------------------------------------------------------------------------------------------------相似的还有下面这个,都是类似的。
buf[0] = 0x8F;                //复位 FIFO
buf[1] = 0x90;                //发送命令,不带CRC
buf[2] = 0x3D;                //连续写寄存器,0X1D
buf[3] = 0x00;                //0XID的值
buf[4] = 0x0F;                //寄存器0X1E(传输的字节数)                                    【发送的是破碎字节,就是一个不完整的字节】
                                     {关于bit1~bit3,破碎字节的位数。bit0不完整字节的标志位,表示这是一个不完整的字节,只有3个bit.那么为什么发送REQA和WUPA需要使用破碎字节的方式。}
buf[5] = 0x26;                //发送REQA
Trf796xRawWrite(&buf[0], 6);
--------------------------------------------------------------------------------------------------
在TI的的论坛中还看到了这么一个
用连写寄存器的方式。
如发两字节0102就写8f913d00200102,可以用示波器看到数据正常发送(带crc)。
但如只想发1字节数据如0xa3,就写8f913d0010a3,但示波器观察不到数据发出,没有任何中断产生!

那么8f  91  3d  00  20  0102

8f 91 3d 00 10 a3
我想了一下,是不是说,20 就是传输两个字节
10就是传输一个字节
但是这都是我的猜测,还是不太明白。所以有了解的希望可以一起讨论
        

经过查看寄存器的一些介绍

http://www.icpdf.com/PartnoView.asp?id=8345318_256232&page=55#view
上面有说明   0X1D  和  0X1E寄存器的介绍。关于破碎字节。
貌似写入到0X1E的就是需要发送的字节的长度:
写个例子:eg
        buf[0] = 0x8F;                                                         // reset FIFO
        buf[1] = 0x91;                                                         // send with CRC
        buf[2] = 0x3D;                                                         // write continuous from register
        buf[3] = 0x00;                                                        // value for register 1D
        buf[4] = 0xA0;                                                        // register 1E (# of bytes to be transmitted)
        buf[5] = 0xA1;                                                        // WR2B command
        //buf[6] = wr2b;        
        Trf796xRawWrite(&buf[0], 15);


节选另外的一段代码,表示发送的字节长度是10个,那么10 + 5(bit0~bie4) = 15;

/*******************************************************************************/
buf[0] = 0x8F;                                                         // reset FIFO
buf[1] = 0x91;                                                         // send with CRC
buf[2] = 0x3D;                                                         // write continuous from register
buf[3] = 0x00;                                                        // value for register 1D
buf[4] = 0x60;                                                        // register 1E (# of bytes to be transmitted)
buf[5] = 0xA2;                                                        // WR2B command
//buf[6] = wr1b;
Trf796xRawWrite(&buf[0], 11);

那么这么看这个register 1E (# of bytes to be transmitted) ,的确是代表的是发送的是数据长度。

疑问2:
else if((*irq_status & BIT1) == BIT1)
{               
#ifdef ENABLE14443A
        //读取碰撞位置
        coll_poss = COLLISION_POSITION;
        Trf796xReadSingle(&coll_poss, 1);

        len = coll_poss - 0x20;                                                // number of valid bytes if FIFO
        if((len & 0x0f) != 0x00) len = len + 0x10;        // add 1 byte if broken byte recieved
                                                                                                //添加一个字节如果接受到打断字节               
        len = len >> 4;

1、读写器触发了中断,
2、判断中断位碰撞错误的位置
3、将碰撞位置- 0x20,    这个可以获取FIFO字节的有效位,这个是怎么获取这个计算方式的。





正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 08:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表