主题中讨论的其他器件:CC1120
您好!
我有两个 CC1120模块:
- 在 SmartRF Studio 中使用修订版2.1识别的第一个 Fishrt
- SmartRF Studio 中标识的第二个版本号2.3、其标签上有附加注释"仅用于评估;未经 FCC 批准..."
在尝试使用 perl 脚本发送简单数据包时、CC1120修订版2.1工作正常、所有数据包都接收到、但当我使用 CC1120修订版2.3时、我什么也没有
我不知道 Perl 命令有什么变化吗?
有人能解释什么是问题或帮助我找到解决方案吗?
谢谢。
下面是我要使用的 perl 脚本:
#!c:/Perl/bin/perl.exe
#
#
文件: dal_send.pl
#
简述:此脚本模拟 SmartRF Studio 中的数据包 TX 功能。
#
#
使用 DAL_EB;
#此脚本可与所有 IEEE 802.15.4兼容设备按原样工作。 要
将其#与其他射频器件配合使用、您必须包含一个包含
要使用的寄存器#设置的文件(取消注释以下行、并根据
您的#需求调整文件)。 寄存器设置文件可由 SmartRF Studio 7、器
件#控制面板->寄存器导出生成。 选择 Perl 作为模板、然后导出到
要与此脚本一起使用的#文件(默认 dal_registers.pl)。
#
@"CC1120.pl"; my $packet =
@ARGV[0];my $F2 =@ARGV[1];my $F1 =@ARGV[2];my $F0 =@ARGV[3];my $Power =
@ARGV[4];my $Amount =
@ARGV[5];my $Interval =
~ ARGV[6];my $HexPacket =$n (x
);my Hexpacket =$n、print $n、$ 1、spring/包=$n、$。
打印“功率为$Power dbm\n”;
打印“间隔为$Interval msec\n;
#启动应用
程序 my $DAD= new DAL_ext::DALExt();#创建 DAL 对象
my$status=$DADal->getStatus();
打印“DAL 创建状态:$status\n”;
DIE,除非$eq 状态为0;
#在枚举列表中选择发送器(以用作示例)。 列表
#按 USB 设备 ID 排序(升序)。
我的$ebDevIndex = 0;
我的$packetInterval = 1;# Second
#枚举设备
$devicename=&DalEb::deviceEnum ($DAL、$ebDevIndex);
if ($devicename)
{
#在请求
的错误 EB 索引中找到设备$DEV = new ext_DALExtDevice ($devicename->打印)。 "\n";
裸片、除非&DalEb::connectEB ($dev、$ebDevIndex) eq 0;
#如果
$fRegsDefined、则使用自定义寄存器设置 writeRegisters ($dev、$F2、$F1、$F0);
$dev->writeRegister ("PA_CFG2"、 $Power);
#将射频器件置于 TX 模式
打印"$ebDevIndex: TX enable ";
$dev->setRegPacketTx();
裸片"Init TX Failed",除非$dev->initTx() eq 0;
打印"OK";
# my $regname ="PA_CFG2";
#$value =$dev->readRegister ($regname);
# print "MARCSTATE =$value";
if ($devicename eq "CC1200")
{
#确保它处于空闲状态
我的$regname ="MARCSTATE";
我的$value = 0;
我的$count = 0;
while (($value!= 65)&&($count < 100)
{
$value =$dev->readRegister ($regname);
打印"MARCSTATE =$VALUE \n";
$COUNT++;
}
裸片"器件未处于空闲状态。" 除非$count < 100;
}
我的$regname ="PA_CFG2";
$value =$dev->readRegister ($regname);
打印“PA_CFG2 =$value requested $Power\n\n-
$dev->setPktInterval($Interval);
#开始数据包传输
我的$i=0;
while ($i<$amount)
{
打印"$ebDevIndex:发送$$i $Packet ...\n";
$buf=$dev->sendPacket ($Packet、0);
$buf=$dev->sendPacket ($HexPacket、0);
$i++;
}
$dev->destroy();
}$dal
-> destroy();