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.

CC1120EM-868-915-RD: Packet Tx with different CC1120 revisions

Part Number: CC1120EM-868-915-RD
Other Parts Discussed in Thread: CC1120

Hi, 

I have two CC1120 modules:

  • fisrt one identified in smartRF studio with rev # 2.1
  • the second identified in smartRF studio with rev # 2.3 and it has addtional note on its sticker "for Evaluation only; Not FCC approved..."

while trying to send a simple packet using perl script the CC1120 rev. 2.1 works fine and all packets receievd on but when I'm using the CC1120 rev. 2.3 I get nothing

is there any change in Perl commands i'm not aware of? 

can someone explain what is the issue or help ,me find a solution? 

Thanks. 

Here's the perl script i'm using: 

#!c:/Perl/bin/perl.exe
# *****************************************************************************
#
#    File:     dal_send.pl
#
#    Brief:    This script emulates the Packet TX function in SmartRF Studio.
#
# *****************************************************************************
#
use dal_eb;

# This script works AS IS with all IEEE 802.15.4 compatible devices. To use it
# with other RF devices, you must include a file that contains the register 
# settings you want to use (uncomment the line below, and adapt the file to your
# needs). Register settings files can be generated by SmartRF Studio 7, Device
# Control Panel -> Register Export. Select PERL as template, and export to the
# file you want to use with this script (default dal_registers.pl).
#
require "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 = $Packet;
$HexPacket =~ s/(.)/sprintf("%x",ord($1))/eg;
print "The Packet is $Packet $HexPacket\n";
print "The Frequancy is $F2$F1$F0\n";
print "The Power is $Power dBm\n";
print "The Interval is $Interval mSec\n";

# Start application
my $dal= new dal_ext::DALExt(); # Create DAL object
my $status= $dal->getStatus();
print "DAL creation status: $status\n";
die unless $status eq 0;

# Select the EB that will act as transmitter (index in enumeration list). The list
# is ordered by USB Device ID (ascending order).
my $ebDevIndex = 0;
my $packetInterval = 1; # Second

# Enumerate devices
$devicename= &DalEb::deviceEnum($dal,$ebDevIndex);

if ($devicename)
{
  # A device is found at the requested EB index
  $dev= new dal_ext::DALExtDevice($devicename);
  print $dal->getErrorMessage() . "\n";

  die unless &DalEb::connectEB($dev,$ebDevIndex) eq 0;
   
    
  # Using custom register settings
  writeRegisters($dev, $F2, $F1, $F0) if $fRegsDefined;
  $dev->writeRegister("PA_CFG2", $Power);

  
  
    
  # Place RF device in TX mode
  print "$ebDevIndex: TX enable ";
  $dev->setRegPacketTx();
  die "Init TX failed" unless $dev->initTx() eq 0;
  print "OK\n";

  
  # my $regname = "PA_CFG2";
  # $value = $dev->readRegister($regname);
  #    print "MARCSTATE = $value\n";

  if ($devicename eq "CC1200")
  {
    # Make sure it is in IDLE state 
    my $regname = "MARCSTATE";
    my $value = 0;
    my $count = 0;
    while (($value != 65) && ($count < 100))
    {
      $value = $dev->readRegister($regname);
      print "MARCSTATE = $value\n";
      $count++;
    }
    
    die "Device not in IDLE state." unless $count < 100;
  }

my $regname = "PA_CFG2";
   $value = $dev->readRegister($regname);
      print "PA_CFG2 = $value requested $Power\n\n";

  $dev->setPktInterval($Interval); 
    
  # Start packet transmission
  
  my $i= 0;
  while ($i<$amount)
  {
    print "$ebDevIndex: send #$i $Packet ...\n";
    #$buf= $dev->sendPacket($Packet,0);
    $buf= $dev->sendPacket($HexPacket,0);
    
    $i++;
  }
    
  $dev->DESTROY();
}

$dal->DESTROY();

  • Hi,

    The differences between PG 2.1 and 2.3 versions is addressed in Errata document here:
    www.ti.com/.../swrz039d.pdf

    Are you reusing the code written for PG2.1 on PG2.3 revision silicon. I am curious about why you are using a PG2.1 device.
    Also, are you able to test a RF link between the devices using SmartRF studio?

    Regards,
  • Hi, 

    answering last question - using SmartRF RF link is OK.

    "Are you reusing the code written for PG2.1 on PG2.3"  can't really tell if the perl script I attached refers specifically to PG2.1, I assume there are no difference between to revisions when using this perl script

    "I am curious about why you are using a PG2.1 device."  just got 2 different revisions from the distributor and found out that 2.1 works with my script while 2.3 don't

    thanks

  • Are you able to identify the device correctly with the PERL script? Is there an error message?
  • I am closing this thread since there has not been any activity for some time. Please re-post if the problem is still not solved.

    Regards,

  • Hi SVS I missed your re Question. 

    with Perl scripts I get no errors no error  device is identify the correctly.

    moreover the script are running OK for dal_send but I get nothing on my other ref device, no packets at all. 

    Regards, 

    Nir

  • Hello Nir,

    I am closing this thread since this is very old and I assume that this issue has been resolved.

    Please create new thread if you are still having trouble.

    Regards,