ST意法半导体
直播中

李慎梓

8年用户 1506经验值
私信 关注
[问答]

为什么会显示无法检测查询命令ST25RU3993的执行情况?

嗨,
我正在开发基于AS3993,AKA ST25RU3993的产品。我一直在使用FEMTO模块(由AMS)来测试我的应用程序代码。
到目前为止,我能够验证初始化,SPI,中断线,cristall稳定和PLL锁定。一切似乎都没问题。
我现在正在尝试阅读标签。
使用FEMTO的defautl配置,如下:
为了开始阅读标签。我首先在寄存器中写入上面的值,然后在寄存器0x00上使能RF_ON位。
发送Query命令0x98并将以下字节写入FIFO:
// 0B00

// dr = 0b01
// m = 0b10
// Trext = 0b000x18
// sel = 0b00

// session = 0b00
// target = 0b00
// q = 0b000x00
之后我开始等待tx中断结束,但我检测到irq_noresp。
任何见解?

以上来自于谷歌翻译


以下为原文




Hi,
I am developing a product based on the AS3993, AKA ST25RU3993. I have been using the FEMTO module (by AMS) to test my application code.
So far I was able to verify the initialization, SPI, interrupt line, cristall stabilization and PLL lock. Everything seems to be OK.
I am now trying to read a TAG.
Using the defautl configurations of the FEMTO, as follow:
In order to start reading a tag. I first write the values above in the registers, then I enable the bit RF_ON on register 0x00.
After send the Query command 0x98 and write the following bytes to the FIFO:
//0b00

//dr = 0b01
//m = 0b10
//Trext = 0b000x18
//sel = 0b00

//session = 0b00
//target = 0b00
//q = 0b000x00
After that I start to wait for the end of tx interrupt, but I detect a irq_noresp instead.
Any insights?

回帖(4)

康伟

2019-7-22 16:04:31
你好蒂亚戈,
请检查您的Query命令以及您写入FIFO的字节。
注意,DR,TRext和Target只有一位而Q有4位。
您写入FIFO的字节的主要问题是Miller编码和BLF将是不正确的。
假设您想使用DR = 1,Target = 0和Q = 0000,您应该将字节0x30和0x00写入FIFO。
问候,


以上来自于谷歌翻译


以下为原文




Hello Tiago,
please check your Query command and the bytes you are writing to the FIFO.
Note that DR, TRext and Target have one bit only while Q has 4 bits.
The main issue with the bytes you write to the FIFO will be that the Miller coding and BLF will be incorrect.
Assuming you would like to use DR = 1, Target = 0 and Q = 0000 you should be writing the bytes 0x30 and 0x00 to the FIFO.
Regards,
B
举报

李慎梓

2019-7-22 16:20:30
嗨巴特,
感谢您的回复。是的,我注意到了。即使我做了这个改变,我的代码仍然无效。
我确信我的硬件正常工作,因为我一直在使用AMS的FEMTO 2.1来测试我的代码。我的SPI通信也是正确的,我可以在FEMTO中读写寄存器。
我使用以下值来设置会话以尝试读取标记:
寄存器描述地址值
之后,我尝试通过执行以下操作来读取标记:
1 - 将寄存器0x3E设置为0x1E - 将1个字节和7个位发送到FIFO
2 - 发送查询命令 - 0x98
3 - 在FIFO中写入0x30 0x00
4 - 我发现我检测到传输中断结束
5 - 我等待接收中断结束
 但我检测到寄存器0x38(前导码检测错误/ FIFO溢出错误)中的值0x01和寄存器0x37中的0x50(位Irq_err和Irq_rx为高)。我期待只检测到Irq_rx高。
我不知道我做错了什么。
任何想法都非常感谢。感谢您的时间。

以上来自于谷歌翻译


以下为原文




Hi Bart,
Thank you for reply. Yes, I noticed that. Even though I made this change, my code still does not work.
I am sure that my hardware is working, because I have been using the FEMTO 2.1 from AMS to test my code. My SPI communiction is also correct, I can read and write the registers in FEMTO.
I am using the following values to set a session to try read a tag:
Register Description                                                 Address                                                                      Value
After that I try to read a tag by doing the following:
1 - Set the register 0x3E with 0x1E - Sending 1 byte and 7 bits to FIFO
2 - Send the Query command - 0x98
3 - Write 0x30 0x00 in FIFO
4 - Aftet that I detect the end of transmission interrupt
5 - I wait for the end of reception interrupt
But I detect the values 0x01 in register 0x38 (Preamble detect error / FIFO overflow error) and 0x50 in register 0x37 (Bits Irq_err and Irq_rx high ). I was expecting to detect only Irq_rx high.
I have no idea what I am doing wrong.
Any idea is very much appreciated. Thank you for your time.
举报

赵静

2019-7-22 16:38:16
受到警告
提示: 作者被禁止或删除 内容自动屏蔽
举报

马熠杨

2020-3-1 14:09:06
楼主,我使用的是ST25RU3993的模块,与STM32之间就是SPI和IRQ的几根引脚,使用官方EVEL***的,目前只能初始化到SPI,中断线里要写两三次才能产生中断,后面的cristall稳定和PLL锁定都不行,楼主加微信m4416202探讨下
举报

更多回帖

发帖
×
20
完善资料,
赚取积分