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.

[参考译文] RF430FRL153H:使用 ROM 功能控制 GPIO

Guru**** 662690 points
Other Parts Discussed in Thread: RF430FRL153H, RF430FRL152H, RF430FRL154H, RF430FRL152HEVM, DLP-7970ABP, TRF7970A, MSP-FET, PCA9306
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/996815/rf430frl153h-controlling-gpio-with-rom-functions

器件型号:RF430FRL153H
主题中讨论的其他器件: RF430FRL152HRF430FRL154HRF430FRL152HEVMMSP-EXP430G2DLP-7970ABPTRF7970AMSP-FETPCA9306

您好!

我打算在项目中使用 RF430FRL153H。 我需要读取模拟传感器、读取后发送1.5V 信号以复位传感器。

传感器输出引脚将连接到 ADC、我想使用 GPIO 发送复位信号。

我的问题是我是否需要一个定制固件、或者我是否可以使用内置 ROM 函数。

谢谢。  

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

    您好、Delson、

    如果没有自定义固件、则无法实现所需的功能。 这并不是很复杂。 实现此目的的一种方法是使用我们示例代码中的 SensorHub 项目。 除了 ADC0数字传感器1之外,还在固件中启用 GPIO,并将 GPIO 的初始化代码放入 DigitalSensorInit()中,然后在 DigitalSensorMeasurement() 子例程中放入代码 ,以控制 GPIO ,以便 重置传感器。 处理来自 SensorHub 项目的数字传感器的大多数代码可从这些子例程中删除。

    例如:

    void DigitalSensorInit()
    {
    
        P1DIR |= BIT0;
        P1OUT &= ~BIT0;
    }
    
    
    u08_t DigitalSensorMeasurement ()
    {
    	u08_t sensor_sampled = 0;       // flag to keep track if any sensor was actually sampled
    
    	if (SENSOR_TYPE_MAILBOX == DIGITAL_SENSOR1) // does the ROM code request digital sensor 1 to be sampled?
    	{
    	    P1OUT |= BIT0;
    	    __delay_cycles(100);
    	    P1OUT &= ~BIT0;
    
    		sensor_sampled = 0;     // no sensor sampling was performed
    	}
    	else if(SENSOR_TYPE_MAILBOX == DIGITAL_SENSOR2) // does the ROM code request digital sensor 2 to be sampled?
    	{
            sensor_sampled = 0;     // no sensor sampling was performed
    	}
    	else if(SENSOR_TYPE_MAILBOX == DIGITAL_SENSOR3) // does the ROM code request digital sensor 3 to be sampled?
    	{
            sensor_sampled = 0;     // no sensor sampling was performed
        }
    
    	return sensor_sampled;			// if 1 indicates that a sensor read was performed, the ROM code will only store the value on a non-zero result here
    }

    此致、

    Helfried

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

    您好、Helfried、

    感谢您的快速响应! 我认为该代码将对我大有帮助。

    但我还有一些其他问题:

    1) 1)为了确认、BIT0 = 0x01?

    2.1)尽管 RF430FRL153H 没有用于数字传感器的串行接口(I2C、SPI)、但该代码是否可以与 RF430FRL153H 搭配使用?

    2.2)根据我描述的功能、您是否认为 RF430FRL153H 确实是 RF430FRL15xH 器件中的最佳选择?

    3) 3)我是否可以使用射频编程将固件下载到芯片中? 如果是、需要哪些硬件工具? (我目前正在使用装有 Windows 8操作系统的 PC)

    此致。

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

    您好、Delson、

    1。是 BIT0 = 0x01、在文件中、为每个位定义了 rf430frl152h.h。

    2.你是对的。 因为我只有带 RF430FRL152H 的 EVM、所以它适合我。 在固件控制寄存器中禁用 USCI 支持后、不再支持数字传感器。 在本例中、RF430FRL154H 似乎是正确的选择。

    固件可通过射频编程下载。 RF430FRL152H EVM 的 GUI 实现了此功能。

    如需更多信息、请参阅 EVM 用户指南:

    https://www.ti.com/lit/pdf/slau607

    此致、

    Helfried

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

    您好、Helfried、

    感谢你的帮助!

    我想购买 RF430FRL152HEVM 并使用射频编程来实现我的功能(从连接到 ADC 的模拟传感器获取读数、通过 NFC 发送数据、然后发送高电平信号以复位传感器)。 但我对这样做所需的设备有点困惑。 我找不到可供购买的 MSP-EXP430G2器件、根据您提供的文档、这是所需的工具之一。  

    您能帮我找到最适合我的设备、以便将固件下载到 EVM 中吗?

    此致

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

    尊敬的 Delson:

    要使用 RF430FRL152HEVM 的 GUI、您需要 TRF7970A 读取器、该读取器由 EXP430G2 Launchpad 和 DLP-7970ABP Booster Pack 组成。 EXP430G2虽然已停产、但已被完全兼容的 EXP430G2ET 取代。 这应可从大多数分销商处获得。

    要将固件加载到 EXP430G2ET Launchpad、电路板上集成了具有 USB 端口的调试硬件。 RF430FRL152HEVM 的固件可通过射频下载、但我建议您购买 MSP-FET、该器 件连接 JTAG 接口并可与 Code Composer Studio 一起用于下载和调试代码。

    https://www.ti.com/tool/MSP-FET

    此致、

    Helfried

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

    您好、Helfried、

    感谢你的帮助!

    我仍然对 EVM 有疑问:我是否能够将自己的传感器连接到此板上的 ADC? 我提出这一问题是因为用户指南显示 ADC0、ADC1和 ADC2已连接到热敏电阻和光传感器。  

    此致

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

    尊敬的 Delson:

    没错、但有标有 DNP 的连接器 SV1、可以焊接到电路板上以访问 ADC 信号。 必须移除电阻器 R16。

    此致

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

    您好、Helfried、

    让我检查是否理解正确。 通过移除 R16、我将切断光传感器和 ADC0之间的连接。 因此、我可以使用连接器 SV1的引脚3将自己的传感器连接到 ADC0。 对吗?

    此致

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

    尊敬的 Delson:

    没错。 如果您计划使用 GPIO P1.0、且1.5V 信号电平足以满足您的传感器需求、则可以将其连接到电阻器 R13。

    此致

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

    您好、Helfried、

    感谢您的所有帮助!

    是的、1.5V 信号电平足以满足我的传感器需求、更具体地说、它需要0.9V 至1.65V 之间的电压电平。 关于您建议的连接、我还有两个问题:

    1) 1)我应该如何准确地将传感器连接到 R13? 是否必须从电路板上移除 R13?

    2) 2)根据用户指南第2.1节所示的方框图、P1.0连接到电平转换器。 这个电平转换器能给我带来什么麻烦吗?

    此致

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

    尊敬的 Delson:

    1) 1)我建议将 R13用作复位信号的连接点、以便将导线焊接到传感器。 您的应用不需要该电阻器、可以移除该电阻器以节省功耗。

    2) 2)只要不提供电平转换器的3.3V 电压、就不会给您带来任何麻烦。

    此致、

    Helfried

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

    您好、Helfried、

    非常感谢您的帮助! 您的回答对于我的项目将非常有用。

    我还想知道、即使使用自定义固件、我也能否使用 GUI 读取传感器数据。

    此致、

    Delson

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

    尊敬的 Delson:

    您必须使用 GUI 设置虚拟寄存器、这意味着启用数字传感器和 ADC、然后 GUI 知道配置并可以读取传感器数据。

    此致、

    Helfried

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

    您好、Helfried、

    如果我只想对模拟传感器进行采样、我仍然无法完全理解为什么必须启用数字传感器。 请您进一步向我解释一下。

    此致、

    Delson

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

    尊敬的 Delson:

    我将尝试解释一下。 RF430FRL152H ROM 固件与处理使能传感器的调度程序配合使用。 您的目标是使用 ADC 对模拟传感器进行采样、当配置为满足您的需求时、ROM 固件可以完全处理该传感器。 之后、您需要向传感器发送数字复位信号。 因此、我建议启用数字传感器。 由于数字传感器是特定于客户的、因此客户需要使用软件部件来处理这些传感器、必须由客户编写。 启用数字传感器后、调度程序也将执行此特定代码。 数字传感器的代码由两部分组成。 一个是 传感器的初始化、另一个是测量部分。 在您的情况下、它非常简单、因为初始化部分只是传感器复位信号的端口设置、而测量部分是在定义的时间内设置复位信号。 启用数字传感器后、初始化部分将在启动时执行、然后调度程序将首先处理您的 ADC 模拟测量、之后是数字传感器、在您的情况下、仅处理复位信号。

    此致、

    Helfried

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

    您好、Helfried、

    感谢您的清晰解释!

    我相信我 现在理解了它。 我必须实施数字传感器驱动器(Init 和 Measurement 函数)来触发端口、在本例中为 P1.0。 芯片通电后、ROM 调度程序将执行初始化部分、并等待我向块0x02 (8字节块)发送写入单块命令、从而设置增益、数字滤波器、抽取率和虚拟接地。 然后、通过向块0x00发送写入单个块命令、我将选择要采样的传感器(我必须选择 ADC0和数字传感器1)、并设置 Start 位以开始采样过程。 最后、我能够使用发送到块0x09的读取单块命令从传感器读取存储的数据(由于 DigitalSensorMeausure测量()返回0)、因此未记录来自数字传感器1测量的数据。

    请告诉您我上面描述的内容是否正确?

    此致、

    Delson

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

    尊敬的 Delson:

    是的、您所描述的是正确的。

    此致、

    Helfried

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

    您好、Helfried、

    感谢您的反馈!

    我认为我已经准备好开始编写代码了。 我已从 TI 的网页上下载 SensorHub 项目并在我的计算机上安装了 CCS 10.3.0。 但项目文件夹中有很多文件(main.c、main.h、patch.c、types.h 等)、我不确定要更改哪些文件才能使所有文件正常工作。 我仅更改了 main.c 中的 Init 和 Measurement 函数、但我不知道它是否足够。

    您能不能指导我完成这个过程、因为这是我第一次做这样的事情?

    此致、

    Delson

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

    尊敬的 Delson:

    很抱歉耽误你的回答。 似乎我错过了这个。 这是否仍然是一个开放式问题、或者您能否取得一些进展?

    此致、

    Helfried

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

    您好、Helfried、

    是的、我的问题仍然存在。 我修改了"main.c"文件、添加了触发 P1.0的功能、并删除了最初包含在 SensorHub 项目中的数字传感器驱动程序。 我已经在 CCS 上构建了这个项目、并且在项目的 Debug 文件夹中生成了一个 txt 文件。 不过,我想知道这是否是正确的程序。 我正在使用 EVM、我想通过射频下载固件、但我不想与中断矢量发生混乱、因为我没有 MSP-FET。 请帮帮我。

    此致、

    Delson

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

    尊敬的 Delson:

    如果 可以、您可以在此处将项目或 TXT 文件发布为 ZIP 文件、我将检查 RF 下载是否正常工作、而不会使 EVM 混乱。

    此致、

    Helfried

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

    您好、Helfried、

    感谢你的帮助!

    在下面、您将找到编译后生成的 txt 二进制文件。

    e2e.ti.com/.../RF430FRL152H_5F00_SensorHub_5F00_Project.zip

    此致、

    Delson

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

    尊敬的 Delson:

    我已通过 RF 将 TXT 文件下载到 EVM、但仍可通过 RF 访问。 我尝试测量要在 P1.0上使用的复位信号、但在启用数字传感器1时无法测量信号。 您的代码中是否已经实现了这一点?

    此致、

    Helfried

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

    您好、Helfried、

    感谢你的帮助!

    是的、我在启用数字传感器1时实现了 P1.0上的复位信号、正如您之前所建议的那样。 唯一的区别是我使用了"__delay_cycles (10000)"而不是"__delay_cycles (100)"。 这可能是问题的原因吗?

    我使用  "__delay_cycles (100)"重建了项目。 您可以在下面找到 txt 文件。

    现在我有一个问题:如何将周期数转换为实际时间?

    e2e.ti.com/.../RF430FRL152H_5F00_SensorHub_5F00_Project_5F00_v2.zip

    此致、

    Delson

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

    尊敬的 Delson:

    执行一些测量后、我看到电平转换器 U4 (PCA9306)、即使未供电、也会影响 P1.0上的输出信号。 使用 P1.3是更好的选择、您可以将信号连接到电阻器 R20 (100k)。

    _DELAY_CYCLLES (n)指令基于设置为2MHz 的 CPU 时钟(MCLK)。 值100表示100 * 500ns = 50µs μ s。

    此致、

    Helfried

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

    您好、Helfried、

    我很高兴告诉您、我成功地通过射频对 EVM 进行了编程。 我按照您的建议使用 P1.3来实现复位信号、一切都很顺利。 我还成功控制了改变周期数的脉冲宽度、并且根据我的测量结果、它也按预期工作。

    非常感谢!!

    P.S.:我想知道我是否可以将 P1.0保留为项目板上复位信号的源(因为那里没有电平转换器)。

    此致、

    Delson

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

    尊敬的 Delson:

    很高兴听到您可以在项目中取得进展。

    输出 P1.0也可用于项目的板上。 该问题仅由 EVM 上实现的逻辑引起。

    此致、

    Helfried

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

    您好、Helfried、

    非常感谢您的帮助! 我成功地根据需要通过射频对 EVM 进行编程、并且还能够按照您的所有说明将传感器连接到 ADC0和 P1.3、一切都很顺利。  

    我想我们最终可以将该线程标记为已关闭。 再次感谢!

    此致、

    Delson

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

    尊敬的 Delson:

    感谢您的回答。 我会为您的项目向您提供最佳的一切。

    来自巴伐利亚的问候和问候、

    Helfried