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:采样率

Guru**** 2532430 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/969559/rf430frl152h-sampling-rate

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

大家好、团队、

请问如何控制 RF430FRL152h 的采样率? 目前、我已将传感器连接到 ADC0、我正在从 Android 手机读取数据。 我目前正在接收数据。 我需要将其增加到数据/ms。 非常感谢您在这方面提出的建议。

此致

阿陶尔

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

    阿陶尔、您好!

    请参阅"技术参考手册"第204页、了解根据精度可能的采样率:

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

    我假设您使用的是 RF430FRL152H 的内置 ROM 固件。 要加快采样速度、您必须配置"ADC0传感器配置寄存器(ADR. 0xF87A)"并设置滤波器参数、从而实现不同的采样速度。

    采样开始可以通过在每次想要获得新值时设置 START 位来完成、也可以在启动时设置具有无限采样的调度程序。 在"中断控制寄存器"位0中设置无限采样。 在 这种情况下、必须将"通过的寄存器数量(ADR. 0xF86C)"设置为"2"、并将"频率寄存器(ADR. 0xF86B)"设置为所需的值以实现所需的速度。

    固件用户指南:

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

    另请参阅以下涉及类似问题的主题:

    https://e2e.ti.com/support/wireless-connectivity/other-wireless/f/667/p/956315/3535078

    此致、

    Helfried

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

    您好、Helfried、

    非常感谢您的快速回复。

    是的、我正在使用 ROM 固件中的构建。

    我根据您的优惠尝试了以下步骤、但不起作用;

    i)在 GUI 界面的演示模式下、我启动了演示。

    ii)在第1代配置中: 常规控制寄存器>已检查 开始采样过程>已检查 LPM3;传感器控制寄存器>已检查光传感器;通过数寄存器> 2;频率寄存器>自定义时间;然后检查无限采样。

    III)、位于 Sensor Config:光传感器配置寄存器>增益(1)>滤波器类型(CIC)>过采样(32)

    IV)在报警控件中:存储样本存储器>1

    V)在传感器阈值配置中:自定义时间寄存器在块3中> 40ms。

    然后我单击"全部写入设置"。 之后、我从 TI 读取器中删除了补丁并通过 Android 应用读取。 我仍在接收一个数据点 我在这里有什么问题吗? 芯片是否未配置这些步骤?

    我是否还需要检查"System (系统)"选项卡上的任何内容? 以及如何选择  "Interept control register"位0?

    期待您的回复。

    此致

    阿陶尔

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

    阿陶尔、您好!

    我采用了我的设置、与您一样、一切似乎都正常。

    当您最后执行"写入所有设置"时、转到"通用器件配置"选项卡并执行"只读此选项卡"。 您应在状态寄存器中看到"Sampling in Progress"。 当您切换到"查看传感器数据"选项卡并反复 按"读取记录的数据"时、您将注意到光传感器 数据 会有所不同。

    到目前为止一切都还可以。 但是、当您从 射频场中移除 RF430FRL152H 时 、需要 再次设置"Start Sampling Process"来启动它。 这就是您无法使用 Android 应用程序获取数据的原因。

    如果在使用 Android 应用程序执行"读取单个块0"之前设置了起始位、并使用"写入单个块0"再次写入数据。

    您也可以使用演示 GUI 尝试此操作。 从现场移除电路板后、写回"Gen device config"选项卡中的数据以 重新开始测量。

    此致、

    Helfried  

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

    尊敬的 Helfried:

    感谢您的回复。 实际上、我们正在努力处理在 Android 应用中设置中断控制电阻器(0)、通过次数寄存器(2)和频率寄存器(达到所需值)的给定指令。 我们在代码中的命令 o 下找到以下初始设置。

    初始设置:

    (字节) 0x01、//通用控制寄存器

    (字节) 0x00、//-状态寄存器

    (字节) 0x07、//传感器控制寄存器

    (字节) 0x03、//-频率寄存器

    (字节) 0x01、//传递数寄存器

    (字节) 0x01、//额外采样寄存器

    (字节) 0x00、//功率模式

    (字节) 0x40

     

    结果:每秒获得1个数据点。

     我们按如下方式更改了设置:

    立即设置:

    (字节) 0x00、//通用控制寄存器

    (字节) 0x00、//-状态寄存器

    (字节) 0x07、//传感器控制寄存器

    (字节) 0x00、//频率寄存器

    (字节) 0x02、//传递数寄存器

    (字节) 0x01、//额外采样寄存器

    (字节) 0x00、//功率模式

    (字节) 0x40

    结果:每秒获得大约5个数据点。

    请告诉我命令0、命令1是什么意思。。 命令8? 以及如何设置您建议的指令。 我在给定代码中找不到中断控制寄存器。 如何将该位置于可实现40ms 采样周期的位置? 您能否指导我们进行上述寄存器设置、以获得所需的采样率?

    提前感谢您的合作。

    此致

    阿陶尔

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

    阿陶尔、您好!

    您看到的采样速度来自"频率寄存器"中设置为"00"的设置、这意味着每秒4次。 当您需要更快的速度时、您必须将其设置为"Custom Time"并在"Custom Timer Value Register"(块3字节0)中定义时间。 请参阅固件用户指南。

    如何使用 Android 应用程序对寄存器进行编程? 我假设您正在使用8字节块执行单个写入块。

    我已经编写了一个小型 Windows GUI 、 这可能有助于更好地理解。 要将其与 TRF7970A 读取器和 RF430FRL152H EVM 配合使用、请在第一个选项卡中的第一个"Init Reader"处按。 在第二个选项卡中、您可以看到所有 RF430FRL152H 寄存器。 当选择一个寄存器时、块数据中的相关字节将被突出显示。 所有寄存器都位于0 - 8块中(每个都是8字节块)。

    e2e.ti.com/.../RF430FRL152H_5F00_Util_5F00_V1_5F00_2_5F00_0F.zip

    此致、

    Helfried

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

    您好、Helfried、

    非常感谢。 GUI 应用在了解寄存器方面非常有帮助。

    我的目标是实现40ms 的采样周期。 我理解的是、我们必须在 BlockNr -0的频率寄存 器中选择16 (根据固件用户指南)、然后在 BlockNr -3中设置自定义计时器 vaue、这是一个8位寄存器。

    您能否指导我如何在8位自定义计时器值寄存器中设置时间?

    实际上、我在上一封邮件中谈论的是 Android 应用程序的源代码。 我们发现、通过更改源代码中命令0的频率寄存器中的数字、我们可以根据固件用户指南在应用程序上更改采样率、但自定义计时器除外。 命令3是否反映了您提供的 GUI 应用程序的 BlockNr 3? 如果是这种情况、我们是否需要更改命令3中的自定义时间值?

    此致

    阿陶尔

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

    阿陶尔、您好!

    您的理解是正确的、您必须将"频率"寄存 器设置为16 (= 10十六进制)才能指定"自定义计时器值"。   

    使用 ISO15693命令"写入单个块"、BlockNumber = 3、Blockdata ="28000000FFFFFFFFF"、可以将"自定义时间值"设置为所需的40ms (= 28十六进制)、假设使用"低/高阈值参考 ADC1"寄存器、 它们是块数据的“FFFFFFFF”部分,不会被使用并保持其默认值。

    此致、

    Helfried

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

    尊敬的 Helfried:

    再次感谢。

    我按照 ISO15693命令"写入单个块"块编号=3中的如下方式设置块数据。 我没有看到40ms 的采样。 请您进一步检查我是否有任何问题并进行相应的更正吗?

    字节 Command0[]= 新字节[]{  
         (字节) 0x01、 //通用控制寄存器  
          (字节) 0x00、 //-状态寄存器  
          (字节) 0x07、 //传感器控制寄存器  
          (字节) 0x10、 //频率寄存器  
          (字节) 0x02、 //传递数寄存器  
          (字节) 0x01、 //额外采样寄存器、平均值计算寄存器  
          (字节) 0x00、 //功率模式、 中断 寄存器  
          (字节) 0x40  //错误控制寄存器  
    };  
    字节 Command1[]= 新字节[]{  
         (字节) 0x00、 //参考 ADC1传感器跳过计数器  
          (字节) 0x00、 //-热敏电阻 ADC2传感器跳过计数器  
          (字节) 0x00、 //-ADC0传感器跳过计数器  
          (字节) 0x00、 //频率寄存器、内部传感器跳过计数器  
          (字节) 0x00、 //-数字 Sensor1 跳过计数器  
          (字节) 0x00、 //数字传感器2跳过计数器  
          (字节) 0x00、 //数字传感器3跳过计数器  
          (字节) 0x00  //接收到的块数  
    };  
    字节 Command2[]= 新字节[]{  
         (字节) 0x19、 //参考 ADC1配置  
          (字节) 0x19、 //-热敏电阻 ADC2配置  
          (字节) 0x18、 //-ADC0传感器配置  
          (字节) 0x00、 //内部传感器配置  
          (字节) 0x00、 //初始延迟周期设置  
          (字节) 0x00、 //-JTAG 使能密码  
          (字节) 0x00、 //初始延迟周期  
          (字节) 0x00  //-JTAG  
    };  
    字节 Command3[]= 新字节[]{  
         (字节) 0x28、 //自定义定时器值  
          (字节) 0x00、 //自定义定时器值  
          (字节) 0x00、 //自定义定时器值  
          (字节) 0x00、 //自定义定时器值  
          (字节) 0xFF、 //-低阈值参考-ADC1  
          (字节) 0xFF、 //-低阈值参考-ADC1  
          (字节) 0xFF、 //-高阈值参考-ADC1  
          (字节) 0xFF  //-高阈值参考- ADC1  
    };  
    字节 Command4[]= 新字节[]{  
         (字节) 0x00、 //低阈值热敏电阻-ADC2传感器  
          (字节) 0x00、 //低阈值热敏电阻-ADC2传感器  
          (字节) 0x00、 //高阈值热敏电阻-ADC2传感器  
          (字节) 0x00、 //高阈值热敏电阻-ADC2传感器  
          (字节) 0x00、 //-低阈值 ADC0传感器  
          (字节) 0x00、 //-低阈值 ADC0传感器  
          (字节) 0x00、 //高阈值 ADC0传感器  
          (字节) 0x00  //高阈值 ADC0传感器  
    };  
    字节 Command5[]= 新字节[]{  
         (字节) 0x00、 //低阈值内部温度传感器  
          (字节) 0x00、 //低阈值内部温度传感器  
          (字节) 0x00、 //高阈值内部温度传感器  
          (字节) 0x00、 //高阈值内部温度传感器  
          (字节) 0x00、 //-低阈值数字1传感器  
          (字节) 0x00、 //-低阈值数字1传感器  
          (字节) 0x00、 //-高阈值数字1传感器  
          (字节) 0x00  //高阈值数字1传感器  
    };  
    字节 Command6[]= 新字节[]{  
         (字节) 0x00、 //-低阈值数字2传感器  
          (字节) 0x00、 //-低阈值数字2传感器  
          (字节) 0x00、 //高阈值数字2传感器  
          (字节) 0x00、 //高阈值数字2传感器  
          (字节) 0x00、 //-低阈值数字3传感器  
          (字节) 0x00、 //-低阈值数字3传感器  
          (字节) 0x00、 //-高阈值数字3传感器  
          (字节) 0x00  //高阈值数字3传感器  
    };  
    字节 Command7[]= 新字节[]{  
         (字节) 0x00、 //参考或 ADC1警报配置  
          (字节) 0x00、 //-热敏电阻和 ADC2警报配置  
          (字节) 0x00、 //-ADC0报警配置  
          (字节) 0x00、 //-内部警报配置  
          (字节) 0x00、 //-数字1报警配置  
          (字节) 0x00、 //-数字2报警配置  
          (字节) 0x00、 //-数字3报警配置  
          (字节) 0x00  
    };  

     

    WriteSingleBlock 代码:  

     

    Iso15693WriteSingleBlock iso15693WriteSingleBlock = new Iso15693WriteSingleBlock (mContext、 mTag、 1、 1);  
    iso15693WriteSingleBlock.WriteSingleBlock ((字节) 1、 Command1、 mOnCommandExecutedCallBack);  
    iso15693WriteSingleBlock.WriteSingleBlock ((字节) 2、 Command2、 mOnCommandExecutedCallBack);  
    iso15693WriteSingleBlock.WriteSingleBlock ((字节) 3、 Command3、 mOnCommandExecutedCallBack);  
    iso15693WriteSingleBlock.WriteSingleBlock ((字节) 4、 Command4、 mOnCommandExecutedCallBack);  
    iso15693WriteSingleBlock.WriteSingleBlock ((字节) 5、 Command5、 mOnCommandExecutedCallBack);  
    iso15693WriteSingleBlock.WriteSingleBlock ((字节) 6、 Command6、 mOnCommandExecutedCallBack);  
    iso15693WriteSingleBlock.WriteSingleBlock ((字节) 7、 Command7、 mOnCommandExecutedCallBack);  
    iso15693WriteSingleBlock.WriteSingleBlock ((字节) 0、 Command0、 mOnCommandExecutedCallBack);  

    ..................................................................................................

    期待您的合作。

    此致

    阿陶尔

     

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

    阿陶尔、您好!

    您启用了3个不同的传感器(传感器控制寄存器= 0x07)。 指定的自定义时间为40ms。 调度程序尝试 在40ms 内读取所有启用的传感器、这是不可能的。 您可以减少到仅一个传感器、其最短采样时间为32ms、也可以延长自定义时间。

    此致、

    Helfried