This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RF430FRL152H:通过 RF13M 模块进行射频通信

Guru**** 2585285 points
Other Parts Discussed in Thread: RF430FRL152H, TRF7970A

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/760654/rf430frl152h-rf-communication-via-rf13m-module

器件型号:RF430FRL152H
主题中讨论的其他器件: TRF7970A

Hallo 大家、

我将 RF430FRL152H 微控制器用于一个项目。
主要目标是向 接收器发送数据(作为转发器)。 用户可以使用集成的 RF13M 模块来实现这一目的。
我没有找到任何示例代码来实现此射频通信。 我不知道如何开始编程。

如果有 示例或有人知道如何操作、我 有兴趣知道。

感谢您的支持。

此致、
Giuliano Cairoli

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Giuliano、

    RF430FRL152H 兼容 ISO15693并具有处理 RF13M 模块的内置软件堆栈。

    您不需要任何自己的软件。 使用读取器(即 TRF7970)、您可以通过"读取块"命令访问 FRAM。

    如需更多信息、请参阅 RF430FRL152H 常见问题解答。

    http://www.ti.com/lit/an/sloa247b/sloa247b.pdf

    此致、

    Helfried

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Helfried、

    那么、如果我很理解、使用 TRF7970 (例如)、我能否直接看到存储在特定变量/寄存器中的值?

    非常感谢你的帮助。

    最棒的
    朱利亚诺

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Giuliano、

    有关 TRF7970读取器和 RF430FL152H 的更多信息、请参阅以下文档:

    http://www.ti.com/lit/ug/slau607c/slau607c.pdf

    以下文档介绍了 ROM 固件中的编译。

    http://www.ti.com/lit/ug/slau603b/slau603b.pdf

    有关可 通过射频接口访问的存储器(0xF868 - 0xFFFF)、请参阅第4.4章。

    无法通过射频接口访问寄存器。 这必须由自己的软件处理。  

    此致、

    Helfried

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Helfried、

    我能够将两个器件连接在一起、并且我可以获得温度(例如)。

    现在、我想获得一个在程序中计算并存储在特定值中的特定值。 有可能吗? 如何实现? 我还尝试用我的愿望值覆盖温度变量、以在 TRF 软件图形上获得结果、但我显然做了错误(或者不可能?!)。

    使用 TRF7970A 的 GUI、我可以读取这些块、但我不理解它们包含的内容。 如何找出这些块中包含的数据是什么?

    现在、我正在阅读和搜索 TI 文档。

    谢谢你。
    朱利亚诺
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Giuliano、

    由于您使用读取块命令访问 FRAM 的某些部分、因此取决于您的软件这些块包含的内容。
    它们将包含位于 FRAM 区域中的程序代码以及程序存储在此存储器区域中的数据。
    您将在 CCS .map 文件中找到有关使用的地址的有用信息。

    此致、
    Helfried
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Helfried、

    我的工作方式与您所说的一样、通过查看映射文件等来实现

    我尝试添加一个应该在寄存器上创建切换的简单代码行、但是通过 GUI、我看不到任何更改、读取块也是如此。
    奇怪的是,必须执行 userCustomCommand()函数。 因此、我的"while"应该通过观察 RF13MTXF_L 寄存器的变化来无限执行。

    注意:这只是一个调试代码、用于了解数据的保存位置(哪个块)等

    我真的卡住了。

    此致、
    朱利亚诺

    空 userCustomCommand()
    {
    u08_t 控制;
    
    if (RF13MFIFOFL_L == CRC_LENGTH_IN_BUFFER + DATA_IN_LENGTH) // CRC_LENGTH + 1字节
    {
    控制= RF13MRXF_L;//从接收 FIFO 中提取一个字节
    
    P1DIR |= BIT4;//将 ALARM LED 设置为输出
    
    IF (控制)
    {
    P1OUT |= BIT4;//打开报警 LED
    }
    其他
    {
    P1OUT &=~BIT4;//关闭报警 LED
    }
    
    //器件具有32字节 RX FIFO 和32字节 TX FIFO、这包括 CRC 字节
    
    //使用 RF13MRXF 接收两个字节
    //使用 RF13MRXF_L 接收一个字节
    //要接收多个字节,只需继续读取 RF13MRXF_L 寄存器。
    //限制为32字节,但实际上由于协议开销,限制更小
    RF13MTXF_L = 0x0; //无错误,发出
    //为每个数据字节/字重复发送多个字节将数据写入 RF13MTXF_L,并将数据输入要发送的 FIFO
    }
    其他
    {
    RF13MTXF_L = 0x1;//错误响应
    }
    //------ 我的代码----------------
    while (1){
    RF13MTXF_L = 0xFF;
    
    volatile u32_t busyWait = 0;
    
    for (busyWait = 100000000;busyWait > 0;busyWait--){asm ("NOP");}
    
    RF13MTXF_L = 0x00; 


    for (busyWait = 100000000;busyWait > 0;busyWait--){} ///----------------------------

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Giuliano、

    您是否在未先修改的情况下尝试了纯默认代码?
    您是否能够在发送自定义命令0xAA 时打开和关闭端口 P1.4?

    此致、
    Helfried
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Helfried、

    我将示波器连接到 JTAG (P1.4)引脚、但在发送0xAA 命令后没有注意到任何变化。 我应该期待什么?

    无论如何、我希望能找到一种方法来尽快将数据从 RF430frl 发送到 trf7970A。

    感谢您的回复。 BR、
    朱利亚诺

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Giuliano、您好!

    我不知道您使用什么阅读器来发送命令。

    通过以下设置、我可以设置/复位 P1.4 (FRL152HEVM 上的红色 LED U7警报)。

    我的设置如下:

    RF430FRLHEVM 与仅 NFC 项目(具有自定义命令0xAA 中的构建)

    带 EXP430G2 Launchpad 且固件为"MSP430G2 LP TRF7970ABP 主机控制"的 TRF7970ABP (sloc346)

    通过终端程序(即术语)、您可以与读取器通信。 (波特率无关紧要、"真实"USB) 不会终止 CR 或 LF 的命令。

    初始化:

    命令:0108000304FF0000                    响应:TRF7970A EVM

    命令:010C00030410002101020000  响应:寄存器写入请求

    命令:0109000304F0000000                 响应:AGC 切换

    LED 开/关:

    命令:010C0003041802AA07010000   响应:请求模式

    命令:010C0003041802AA07000000   响应:请求模式

    突出显示了自定义命令。

    希望这会有所帮助。

    此致、

    Helfried

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Giuliano、您好!

    我将 RF430FRL152H SensorHub 项目用作在定制存储器位置读取和存储传感器数据的基础。 并使用 TRF7970A EVM 读取这些存储器位置。 (请注意、TI 已停产此产品、我不知道原因、工作正常)
    如果您需要有关此设置的进一步帮助、我将提供帮助。



    您好、Helfried、

    您能帮我找到 TRF7970ABP 的最大读取频率吗? 如前所述、我有 EVM 板、每秒最多只能读取20次。 当我尝试提高此读取周期速度时、系统将变得无响应。 我不确定这是由 NFC 设备或读取器设备引起的。



    谢谢
    Selman。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Selman、

    EVM 在低数据速率下的最大速度为~20ms 周期时间。

    这总结如下:
    PC 到 EVM 的通信@ 115200波特->命令~2ms、响应~2ms
    RF 读取块命令到标签~3ms
    标签响应(64位@ 6、6kB/s 低数据速率)~10ms
    总共~17ms 加上一段时间在 EVM 中进行处理
    此外、您的 PC 还会为此周期时间增加一些时间。

    您可以做的一件事是从低数据速率切换到高数据速率、这样您就可以获得2.5ms 而不是10ms 的标签响应。 (请参阅读取块命令中的标志设置)

    此致、
    Helfried