主题中讨论的其他器件: RF430FRL152H、 RF430FRL154H、 RF430FRL152HEVM、 MSP-EXP430G2、 DLP-7970ABP、 TRF7970A、 MSP-FET、 PCA9306
您好!
我打算在项目中使用 RF430FRL153H。 我需要读取模拟传感器、读取后发送1.5V 信号以复位传感器。
传感器输出引脚将连接到 ADC、我想使用 GPIO 发送复位信号。
我的问题是我是否需要一个定制固件、或者我是否可以使用内置 ROM 函数。
谢谢。
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。 我需要读取模拟传感器、读取后发送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、
感谢您的所有帮助!
是的、1.5V 信号电平足以满足我的传感器需求、更具体地说、它需要0.9V 至1.65V 之间的电压电平。 关于您建议的连接、我还有两个问题:
1) 1)我应该如何准确地将传感器连接到 R13? 是否必须从电路板上移除 R13?
2) 2)根据用户指南第2.1节所示的方框图、P1.0连接到电平转换器。 这个电平转换器能给我带来什么麻烦吗?
此致
尊敬的 Delson:
我将尝试解释一下。 RF430FRL152H ROM 固件与处理使能传感器的调度程序配合使用。 您的目标是使用 ADC 对模拟传感器进行采样、当配置为满足您的需求时、ROM 固件可以完全处理该传感器。 之后、您需要向传感器发送数字复位信号。 因此、我建议启用数字传感器。 由于数字传感器是特定于客户的、因此客户需要使用软件部件来处理这些传感器、必须由客户编写。 启用数字传感器后、调度程序也将执行此特定代码。 数字传感器的代码由两部分组成。 一个是 传感器的初始化、另一个是测量部分。 在您的情况下、它非常简单、因为初始化部分只是传感器复位信号的端口设置、而测量部分是在定义的时间内设置复位信号。 启用数字传感器后、初始化部分将在启动时执行、然后调度程序将首先处理您的 ADC 模拟测量、之后是数字传感器、在您的情况下、仅处理复位信号。
此致、
Helfried
您好、Helfried、
感谢您的清晰解释!
我相信我 现在理解了它。 我必须实施数字传感器驱动器(Init 和 Measurement 函数)来触发端口、在本例中为 P1.0。 芯片通电后、ROM 调度程序将执行初始化部分、并等待我向块0x02 (8字节块)发送写入单块命令、从而设置增益、数字滤波器、抽取率和虚拟接地。 然后、通过向块0x00发送写入单个块命令、我将选择要采样的传感器(我必须选择 ADC0和数字传感器1)、并设置 Start 位以开始采样过程。 最后、我能够使用发送到块0x09的读取单块命令从传感器读取存储的数据(由于 DigitalSensorMeausure测量()返回0)、因此未记录来自数字传感器1测量的数据。
请告诉您我上面描述的内容是否正确?
此致、
Delson
您好、Helfried、
感谢您的反馈!
我认为我已经准备好开始编写代码了。 我已从 TI 的网页上下载 SensorHub 项目并在我的计算机上安装了 CCS 10.3.0。 但项目文件夹中有很多文件(main.c、main.h、patch.c、types.h 等)、我不确定要更改哪些文件才能使所有文件正常工作。 我仅更改了 main.c 中的 Init 和 Measurement 函数、但我不知道它是否足够。
您能不能指导我完成这个过程、因为这是我第一次做这样的事情?
此致、
Delson
您好、Helfried、
是的、我的问题仍然存在。 我修改了"main.c"文件、添加了触发 P1.0的功能、并删除了最初包含在 SensorHub 项目中的数字传感器驱动程序。 我已经在 CCS 上构建了这个项目、并且在项目的 Debug 文件夹中生成了一个 txt 文件。 不过,我想知道这是否是正确的程序。 我正在使用 EVM、我想通过射频下载固件、但我不想与中断矢量发生混乱、因为我没有 MSP-FET。 请帮帮我。
此致、
Delson
您好、Helfried、
感谢你的帮助!
在下面、您将找到编译后生成的 txt 二进制文件。
e2e.ti.com/.../RF430FRL152H_5F00_SensorHub_5F00_Project.zip
此致、
Delson
您好、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