Quantcast
Channel: Other wireless technologies forum - Recent Threads
Viewing all 6646 articles
Browse latest View live

USB Driver installation

$
0
0

Hi,

I have new TrxEB and can't connect it to the PC.

OS: WIN7 64

Driver setup file: Setup_SmartRF_Drivers-1.2.0

SmartRF Studio 7 ver 2.0.0

The EB is appeared as "TrxEB USB CDC" under "other devices" in the device manager.

Action I took:

Reinstalled the driver according to ""> Cebal – CCxxxx Development Tools
USB Driver Installation Guide" document.

Reinstalled SmartRF studio

Reset the PC

When I try to update the driver I get a message "Windows is unable to install your TrxEB USB CDC" and "Windows could not find driver software to your device"

Need your help

Thanks,

Amatzya


SmartRF Studio hangs after few seconds working with CC Debugger

$
0
0

Hi,

I use CC Debugger with CC1200 connected to PC (Win7). CC Debugger is upgraded with the latest FW.

Smart RF Studio 7 2.0.0 sees CC Debugger and chip. Any test (TX, RX) starts as expected.

But after few seconds (sometimes minutes) Smart RF Studio hangs. I've tries on 2 PCs and with 2 different CC Debuggers.

CC1200 is a custom made module, connected to CC Debugger with 10 cm cable.

(The same CC1200 module works fine connected to TrxEB board)

May be someone knows this issue?

  

regarding settings in SmartRF Studio 7

$
0
0

Can you advise if the RX Filter bandwidth in the SmartRF Studio 7 is overall or +-? i.e if I set to 55KHz is this total BW or +- 55KHZ?

John

CC2538DK: SmartRF06 - No Driver Found for XDS100v3

$
0
0

On Win7-Pro 64-bit

Where do I get the drivers - nothing is mentioned in the Quick Start Guide; nor the pages it mentions:

www.ti.com/.../cc2538em-rd

(and why do I get the error twice??)

CC1101 datasheet discrepancy

$
0
0

We are having troubles with the CC1101 and found an apparent discrepancy on the datasheet for this part.

Page 27 of the SWRS0611 seems to indicate a soldermask opening with a square pad located north center, west center, east center, and south center on the center ground slug. This image has no dimensions.

Page 103 of the same datasheet has beautifully dimensioned drawing of the stencil and is a bit vague on the soldermask opening requirements, however given the stencil design, it is possible to imply intended soldermask requirements. It seems that this drawing is more detailed and specific and in accordance with many other device stencil/solder attach designs.

Since we are having production issues with this, we are investigating any area where there is area for concern. Since my first review of this design, I have been concerned with this exposed pad and stencil strategy. 

I have attached an excerpt from your datasheet for reference. I would like to get an explanation of which method is preferred and a rationale for using each type of both are acceptable. It appears that both thermal and RF ground would be better served by the stencil/pad design on Page 103.

 

Looking forward to a comment from TI.

I have attached an excerpt from your datasheet for reference. I would like to get an explanation of which method is preferred and a rationale for using each type of both are acceptable. It appears that both thermal and RF ground would be better served by the stencil/pad design on Page 103.

 

Looking forward to a comment from TI.

Starting 868 MHz design, short questions about CC1101

$
0
0

Hi,

we are planning to develop a 868 MHz transmitter which makes use of the RFSendInfinite() CC1101 feature. A MSP430 is attached through SPI to it. So my questions are:

  1. Which is the MSP430 most commonly used (more code examples) with this RF transmitter? 
  2. Do you think I can go with a simple MSP430G2xxx? First version of this board was using a MSP430F2xxx but I have some G unused :)
  3. Is there any EM board only including a CC1101 and no MCU so I can attach an external one to test?
  4. Is there any MSP430 launchpad which includes EM RF sockets to plug the EM board in question 3? I thought I had seen this plenty of times and now I cannot find it.

Ok, let's see your opinions! I wish you the nicest day from Barcelona! :)

CC2541, Packet Sniffer

$
0
0

Hi,

 i habe some quastion about the packet-sniffer capability on CC2541 radio.

1. How does it exactly work? It is the same as a "bit-radio"?

2. Can i use sniffer for two or more pakets one after another withot restarting the receiver?

3. Can I receive an infinite packet after an SFD is found? Or there is a limitation in the packet length?

Thanks in advance

D.Krush

Packet Sniffer

$
0
0

Hello!

I want to use SmartRF Packet Sniffer(with TI EVB) to check the message between AP to end device.

The set-up is function, but seen to only show one side messgae(end device).

Q1. How can determinate the message belong AP, end device & extender?

Q2. How to configurate Packet Sniffer for Q1?

BR


CC1200 RX offset?

$
0
0

I am using 2 CC1200 Modules that exhibit the same effect, these are set to receive at 433.92 and the signal comes from an Agilent \Sig Gen which is accurate, the effect is that for optimum reception I have to increase the RX Freq by 20kHZ (i.e to 433.940 MHz) I show below a screenshot of the device control panel and include the register export.

Any ideas would be useful.

static const registerSetting_t preferredSettings[]=
{
  {CC1200_IOCFG3,            0x11},
  {CC1200_IOCFG2,            0x49},
  {CC1200_IOCFG1,            0x46},
  {CC1200_IOCFG0,            0x09},
  {CC1200_SYNC_CFG1,         0x3F},
  {CC1200_DEVIATION_M,       0x48},
  {CC1200_DCFILT_CFG,        0x5D},
  {CC1200_PREAMBLE_CFG1,     0x00},
  {CC1200_PREAMBLE_CFG0,     0x8A},
  {CC1200_IQIC,              0xCB},
  {CC1200_CHAN_BW,           0x25},
  {CC1200_MDMCFG1,           0x00},
  {CC1200_MDMCFG0,           0x50},
  {CC1200_SYMBOL_RATE2,      0x3F},
  {CC1200_SYMBOL_RATE1,      0x75},
  {CC1200_SYMBOL_RATE0,      0x10},
  {CC1200_AGC_REF,           0x35},
  {CC1200_AGC_CS_THR,        0xEC},
  {CC1200_AGC_CFG3,          0x11},
  {CC1200_AGC_CFG1,          0x51},
  {CC1200_AGC_CFG0,          0x87},
  {CC1200_FIFO_CFG,          0x00},
  {CC1200_FS_CFG,            0x14},
  {CC1200_PKT_CFG2,          0x03},
  {CC1200_PKT_CFG1,          0x00},
  {CC1200_PKT_CFG0,          0x20},
  {CC1200_PA_CFG1,           0x5F},
  {CC1200_PKT_LEN,           0xFF},
  {CC1200_IF_MIX_CFG,        0x1C},
  {CC1200_FREQOFF_CFG,       0x21},
  {CC1200_MDMCFG2,           0x0C},
  {CC1200_FREQ2,             0x56},
  {CC1200_FREQ1,             0xC9},
  {CC1200_FREQ0,             0xBA},
  {CC1200_IF_ADC1,           0xEE},
  {CC1200_IF_ADC0,           0x10},
  {CC1200_FS_DIG1,           0x07},
  {CC1200_FS_DIG0,           0xAF},
  {CC1200_FS_CAL1,           0x40},
  {CC1200_FS_CAL0,           0x0E},
  {CC1200_FS_DIVTWO,         0x03},
  {CC1200_FS_DSM0,           0x33},
  {CC1200_FS_DVC0,           0x17},
  {CC1200_FS_PFD,            0x00},
  {CC1200_FS_PRE,            0x6E},
  {CC1200_FS_REG_DIV_CML,    0x1C},
  {CC1200_FS_SPARE,          0xAC},
  {CC1200_FS_VCO0,           0xB5},
  {CC1200_XOSC5,             0x0E},
  {CC1200_XOSC1,             0x03},
  {CC1200_PARTNUMBER,        0x20},
  {CC1200_PARTVERSION,       0x11},
  {CC1200_SERIAL_STATUS,     0x08},
  {CC1200_MODEM_STATUS1,     0x10},
};

Joihn

CC1110 vs. CC1101 sensitivity

$
0
0

 I was recently looking at the performance data for the sub 1GHz line. I was surprised to read that the CC1101 has considerably better receive sensitivity than the CC1110. It looks like a solid 10dBm at 250KBPS in the 915MHz range? What is the reason for this? My assumption is the noise generated by the MCU on the same die. 

Thanks,

Ron

CC1111 LED turn-on

$
0
0

Hey everyone,

I work with CC1111F32 (USB Dongle) (+ CC Debugger) and have initial problems programming it. In the "CC1111/CC2511 USB HW User’s Guide" I already looked up the bit (P1_1) to be set for turning the LED on, but until now my trials failed. 

The code below can be compiled (SDCC) without errors, but after loading the .hex file on the CC1111 per SmartRF Flash Programmer, the LED does not turn on.

Isn't it that simple? What do I have to consider further? Thank you in advance for your help!

SmartRF Studio is installed. Compiler: SDCC.

-------------------------------------------------

#include <8051.h>
#include <cc1110.h>

void main(void)
{
	P1SEL &= 0b11111101;	//change P1_1 to General Purpose I/O

	P1_1=1;		//set value of P1_1
	
	P1DIR |= 0b00000001;	//change P1_1 to Output

	while(1);
}

SmartRF Packet Sniffer - BLE Display Filter example

$
0
0

Hello TI Team!

I have a question about the SmartRF Packet Sniffer Display Filter.

I understand that there is a manual for the SmartRF Packet Sniffer, http://www.ti.com/lit/ug/swru187g/swru187g.pdf, but I noticed that the example for the display filtering (on pages 19 and 20) applies to Zigbee.

Do we have any examples for BLE using the Display Filter? If I can see my advertisement packet, how do I filter out all of the others so that I see only the packets of interest?

Any help is much appreciated!
Best,
Michael

Need help choosing Microcontroller product for wireless communication

$
0
0

I am putting together a module to do the following:

  • collect data from some external sensors
  • save data onto an SD card as a text file (implemented FAT32 file system)
  • Transmit Data wirelessly to a drone (ZigBee)
  • enter sleep states between transmission
  • wake up both on a sleep timer and when ever the drone is near by to collect data

Currently we are using the CC2538 and we have all of the above working, but we have run into issues when trying to wake the mu by transmitting a signal from the drone to the ground module. I'm interested in the CC2630 due to the sensor controller which allows capability to collect data while the mu is alseep, but I'm unsure if it is possible to wake the mu for transmission without using the sleep timer.

We have considered external interrupt but using IR detection, but one of the issues is visibility, the drone will mostly be covered by a canopy in a field. 

Range wise would need to be between 50-100 meters.

I was considering possibly a mu which has a uDMA that has access to an RF core  during sleep states in order to wake the mu on transmission but i'm not sure which mu would be best. We are looking to use ZigBee but are also interested in Wifi and Bluetooth. The Development board we have is the SmartRF06eb so if possible we would like to avoid purchasing a new board.

So my question is what microcontroller(s) will meet our needs? Any and all options are welcomed

almost MSP430G2553 & CC1101 :)

$
0
0

Good afternoon!

I'm trying to do a RFSendInfinite from MSP430G2553 using CC1101 :) I have proper SPI configuration (done by polling) and the CC1101 registers are being written. I see it in my logic analyzer. However, for some reason the code does not enter Port2 ISR when doing RFSendInfinite steps. 

The pinout is: SPI = port 1 pins 7 to 5 and using P1.4 as CS. GDO0 is at P2.6 and GDO2 is at P1.0. What I send is a bunch of 0xAA.

Here is my main().

int main(void) {

	// Stop watchdog timer
	// ---------------------
	WDTCTL = WDTPW + WDTHOLD;


	// MSP430 frequency & enable GIE
	// ------------------------------
	BCSCTL1 = CALBC1_1MHZ;
	DCOCTL = CALDCO_1MHZ;


	// SPI function configuration (1.4-7)
	// ----------------------------------
	P1DIR 	  |= BIT4;
	P1OUT 	  =  0;
	P1SEL 	  =  BIT5 + BIT6 + BIT7;
	P1SEL2 	  =  BIT5 + BIT6 + BIT7;
	UCB0CTL0  |= UCCKPL + UCMSB + UCMST + UCSYNC;  	// 3-pin, 8-bit SPI master
	UCB0CTL1  |= UCSSEL_2;                     		// SMCLK
	UCB0BR0   |= 0x02;                          	// /2
	UCB0BR1   =  0;                              	//
	UCB0CTL1  &= ~UCSWRST;                   		// init USCI


	// GPOx configuration, GDO0 (2.6) & GDO2 (1.0)
	// --------------------------------------------
    P2SEL 	&= ~(BIT7 + BIT6);				// initially p2.6 is XIN input
    P2SEL2 	&= ~(BIT7 + BIT6);

	TI_CC_GDO0_PxDIR &= ~TI_CC_GDO0_PIN;    // Set GDO0-Pin as Input
    TI_CC_GDO0_PxIES |=  TI_CC_GDO0_PIN;	// on falling edge
    TI_CC_GDO0_PxIE  |=  TI_CC_GDO0_PIN;	// Interrupt GD02 enabled
    TI_CC_GDO0_PxIFG &= ~TI_CC_GDO0_PIN;	// clear flag

    TI_CC_GDO2_PxDIR &= ~TI_CC_GDO2_PIN;	// similar for GDO2
    TI_CC_GDO2_PxIES |=  TI_CC_GDO2_PIN;
    TI_CC_GDO2_PxIE  |=  TI_CC_GDO2_PIN;
    TI_CC_GDO2_PxIFG &= ~TI_CC_GDO2_PIN;


    // SPI reset to CC1101
	// -------------------
	P1OUT 	  |= BIT4;
	P1OUT 	  &= ~BIT4;
	P1OUT 	  |= BIT4;
	__delay_cycles(75);		// CC1101 reset complete


	// SPI configuration
	// ------------------
	writeRFSettings2();
	/*TI_CC_SPIWriteReg(TI_CCxxx0_IOCFG2, 0x29); // GDO2 output pin config.
	TI_CC_SPIWriteReg(TI_CCxxx0_IOCFG1, 0x2E);
	TI_CC_SPIWriteReg(TI_CCxxx0_IOCFG0, 0x02); // GDO0 output pin config.*/
	__bis_SR_register(GIE);


	// WuTx FSM
	// ------------------
	while(1) {
		RFSendInfinite(dataArray, 350); //~450
		__delay_cycles(NUM_CYCLES_DELAY * 20);
		transmitting = 1;
		break;
	}
}


// ======================
//    ISR
// ======================
#pragma vector=PORT2_VECTOR
__interrupt void port2_ISR (void)
{
	  // packet_sent ISR
	  if (TI_CC_GDO0_PxIFG & TI_CC_GDO0_PIN)    //GDO0 interrupt triggered ?
	  {
	    if(writeRemainingDataFlag)
	    {
	      TI_CC_SPIWriteBurstReg(TI_CCxxx0_TXFIFO, pBufferIndex, BytesLeft);
	      BytesLeft = BytesLeft - fixedPacketLength;
	      TI_CC_GDO0_PxIE  &= ~TI_CC_GDO0_PIN;                                      //Disable Interrupt
	      packetSentFlag = 1;
	      writeRemainingDataFlag = 0;
	      TI_CC_SPIWriteReg(TI_CCxxx0_PKTCTRL0, 0x02);
	    }
	    else
	    {
	      TI_CC_SPIWriteBurstReg(TI_CCxxx0_TXFIFO, pBufferIndex, 60);
	      pBufferIndex = pBufferIndex + 60;
	      BytesLeft    = BytesLeft    - 60;
	      if(!(--iterations)) writeRemainingDataFlag = 1;
	      if (BytesLeft < 65)                                                       //252
	      {
	        TI_CC_SPIWriteReg(TI_CCxxx0_PKTCTRL0, 0x00);                            //fixed Packet length
	      }
	    }
	    TI_CC_GDO0_PxIFG &= ~TI_CC_GDO0_PIN;                                        //Clear Interrupt flag
	  }
}

// CC1101: packet_sent ISR and threshold ISR
#pragma vector=PORT1_VECTOR
__interrupt void port1_ISR (void)
{
  // threshold ISR
  if(TI_CC_GDO2_PxIFG & TI_CC_GDO2_PIN)
  {
    writeRemainingDataFlag = 0;
    packetSentFlag         = 1;
    TI_CC_SPIWriteReg(TI_CCxxx0_PKTCTRL0, 0x02);
    TI_CC_GDO2_PxIFG &= ~TI_CC_GDO2_PIN;
  }
}



// rest of ISR
#pragma vector=WDT_VECTOR, COMPARATORA_VECTOR, NMI_VECTOR, 	\
		TIMER1_A1_VECTOR, TIMER1_A0_VECTOR, USCIAB0TX_VECTOR, USCIAB0RX_VECTOR
__interrupt void ISR_trap(void)
{
	// the following will cause an access violation which results in a PUC reset
	WDTCTL = 0;
}

And this is my RFSendInfinite(), it is pretty similar to the examples in swrc253d, however we had to adapt this some time ago (this code was for a different MCU, one MSP430F2350 and also the example code is for CC112x). However, I'm not able to see why it is not going into port2_ISR, where the packetSentFlag is cleared.

void RFSendInfinite(char *txBuffer, int PacketLength)
{
    writeRemainingDataFlag = 0;
    packetSentFlag         = 0;
 
    pBufferIndex = txBuffer;
    BytesLeft = PacketLength + 2;
    fixedPacketLength = (BytesLeft-64) % 60;
    

    TI_CC_SPIWriteReg(TI_CCxxx0_PKTCTRL0, 0x02);				// 0x08, 0x02
    TI_CC_SPIWriteReg(TI_CCxxx0_PKTLEN,  fixedPacketLength); 	// 0x06, 0x30
    TI_CC_SPIWriteBurstReg(TI_CCxxx0_TXFIFO, txBuffer, 64);	  // 0x3F = TI_CCxxx0_TXFIFO + burst = 0x40 = 0x7F @ logic analyzer
       
    BytesLeft    = BytesLeft - 64;
    pBufferIndex = txBuffer  + 64; 
    iterations   = BytesLeft / 60;
            
    TI_CC_SPIStrobe(TI_CCxxx0_STX);  // 0x35
    
    while(!packetSentFlag)
    {
      //_NOP();                                                 // Wait for Interrupt
    }
    packetSentFlag         = 0;
    iterations             = 0;
    writeRemainingDataFlag = 0;
    
    TI_CC_SPIStrobe(TI_CCxxx0_SIDLE);
}

This is what I see at my logic analyzer, I've copied some values as comments (0x06,0x30) to help you check in the code :)



After some time, it comes the Strobe 0x35 STX :) The SPI communication seems nice to me!

However, GDO0 does not go low. It went once, but even then it did not trigger my port2_ISR. In fact, the debugger shows it gets stuck at this line:

while(!packetSentFlag)
    {
      //_NOP();                                                 // Wait for Interrupt
    }

So, what am I doing wrong? What are your ideas?

Have a really nice day! :)

Getting the Analog Light Sensor to work with a CC2650 EM and a SmartRF06

$
0
0

I want to learn how to program modern microcontrollers with wireless capabilities and so I bought a cc2650 development kit just to study the subject, I graduated a while ago and only had some experience with all microPICs.

I am trying to run the first example in the sensor controller studio Analog Light Sensor, I downloaded IAR, the required drivers etc and I am following the step by step walktrough in the documentation of the sensor controller studio. A

After generating the code I open the IAR workspace of the example but when I try to build it and compile it I am getting a bunche of errors of the type

Variable expansion failed.
Offending text: "$CC26XXWARE$\startup_files\ccfg.c"
Partial command line: ""$CC26XXWARE$\startup_files\ccfg.c" "-o" "C:\Users\DP\Documents\
Texas Instruments\Sensor Controller Studio\examples\analog_light_sensor\projects\iar\Debug\Obj"\
"--no_cse" "--no_unroll" "--no_inline" "--no_code_motion" "--no_tbaa" "--no_clustering" "--no_scheduling"
"--debug" "--endian=little" "--cpu=Cortex-M3" "-e" "--fpu=None" "--dlib_config" "$TOOLKIT_DIR$\INC\c\
DLib_Config_Normal.h" "-I" "$CC26XXWARE$"\ "-Ol" "

I have no idea what I am doing wrong and the documentation does not help much. Can somebody please guide me? I appreciate any help


sub 1GHz Zstack

$
0
0

Sub 1GHz,,whether Z stack will be provided by  TI / any road map?

Does CCS support CC1110 SoC?

$
0
0

Hi, 

I have a quick question regarding if CCS support CC1110 SoC?  I know that it is supported for IAR 8051, but wasn't sure if it is support by CCS.

Thanks

CC1101 RFSendInfinite only partial success

$
0
0

Good afternoon,

I'm trying to send a RFSendInfinite frame with CC1101 using one MSP430G2553. The SPI code for setting the registers works fine.

This is my program, it is very similar to the example for cc112x.

//******************************************************************************
//   MSP430G2553 as master - CC1101 as slave
//
//                    MSP430G2553
//                 -----------------
//             /|\|              XIN|-
//              | |                 |
//              --|RST          XOUT|-
//                |                 |
//         GDO0 ->|P2.6         P1.7|-> Data Out (UCB0SIMO)
//                |                 |
//         GDO2 ->|P1.0         P1.6|<- Data In (UCB0SOMI)
//                |                 |
//  Slave C_S   <-|P1.4         P1.5|-> Serial Clock Out (UCB0CLK)
//
//******************************************************************************
#include <msp430.h>
#include "Radio/radio.h"
#include "Defines/TI_CC_hardware_board.h"
#include "SPI_Library/SPI.h"


#define FIFO_SIZE 64
#define MAX_VARIABLE_LENGTH 255

// variables for WuC
// ------------------
int writeRemainingDataFlag = 0;
char dataArray[356];
char *txBuffer;
char *dataArrayPointer = &dataArray[0];
char *pBufferIndex = &dataArray[0];
int receiving, transmitting   = 0;
int PacketLength;
int packetSent = 0;
char *pBufferIndex;
int fixedPacketLength;
int BytesLeft;
char iterations;



// ======================================================
//      				main code
// ======================================================
int main(void) {

	// Initialize MCU and peripherals
	// ------------------------------
	WDTCTL = WDTPW + WDTHOLD;
	BCSCTL1 = CALBC1_1MHZ;
	DCOCTL = CALDCO_1MHZ;

	// ports defaults
	// --------------
	P1DIR = 0xFF;
	P1OUT = 0x00;
	P2DIR = 0xFF;
	P2OUT = 0x00;

	// port1 configuration for SPI
	// ---------------------------
	P1SEL 	  =  BIT5 + BIT6 + BIT7;
	P1SEL2 	  =  BIT5 + BIT6 + BIT7;
	P1DIR 	  |= BIT4;
	UCB0CTL0  |= UCCKPL + UCMSB + UCMST + UCSYNC;  	// 3-pin, 8-bit SPI master
	UCB0CTL1  |= UCSSEL_2;                     		// SMCLK
	UCB0BR0   |= 0x02;                          	// /2
	UCB0BR1   =  0;                              	//
	UCB0CTL1  &= ~UCSWRST;

	// RF configuration
	// ------------------
	writeRFSettings2();

	// port1 configuration for GDO2 = pin 1.0
	// ---------------------------------------
	P1DIR &= ~BIT0;	// similar for GDO2
	P1IFG &= ~BIT0;
	P1IES |=  BIT0;
	P1IE  |=  BIT0;

	// port 2 configuration for GDO0 = pin 2.6
	// ---------------------------------------
	P2SEL 	&= ~(BIT7 + BIT6);  // remove crystal function
	P2SEL2 	&= ~(BIT7 + BIT6);
	P2DIR &= ~BIT6; // Set GDO0-Pin as Input
	P2IFG &= ~BIT6;	// clear flag
	P2IES |=  BIT6;	// on falling edge
	P2IE  |=  BIT6;	// Interrupt GD02 enabled


	// SPI reset to CC1101
	// -------------------
	P1OUT 	  |= BIT4;
	P1OUT 	  &= ~BIT4;
	P1OUT 	  |= BIT4;
	__delay_cycles(75);		// CC1101 reset complete

	// enable global ints
	_BIS_SR(GIE);


	// fullfill the data to be sent
	// -----------------------------
    int i;
    for (i=0;i<200;i++)
    	dataArray[i] = i;

	// 1st part of the big frame
    // -------------------------
    TI_CC_SPIWriteReg(TI_CCxxx0_PKTCTRL0, 0x02);  // 0x02 means INFINITE PACKET LENGTH mode
    writeRemainingDataFlag = 0;
	PacketLength = 200;
    BytesLeft = PacketLength + 2;
    txBuffer = dataArray;
    pBufferIndex = txBuffer + FIFO_SIZE;	// pBuffer goes ahead
    iterations   = BytesLeft / 60;
    fixedPacketLength = BytesLeft % (MAX_VARIABLE_LENGTH + 1);


    // place first bytes & send
    // -------------------------
    TI_CC_SPIWriteReg(TI_CCxxx0_PKTLEN,  fixedPacketLength);
    TI_CC_SPIWriteBurstReg(TI_CCxxx0_TXFIFO, txBuffer, FIFO_SIZE);
    BytesLeft    -= FIFO_SIZE;
    TI_CC_SPIStrobe(TI_CCxxx0_STX);  // 0x35
    P2IFG &= ~BIT6;
    P2IE  |= BIT6;


    while(!packetSent) {
    }


	TI_CC_SPIStrobe(TI_CCxxx0_SIDLE);
    for(;;){}
    __delay_cycles(100000);
}


// ======================
//    ISR
// ======================
// interrupt for GDO0
// ---------------------
#pragma vector=PORT2_VECTOR
__interrupt void port2_ISR (void)
{
	  // packet_sent ISR
	  //if (P2IFG & BIT6)  {  //GDO0 interrupt triggered ?

		// last transmission burst
	    if(writeRemainingDataFlag)
	    {
	      TI_CC_SPIWriteBurstReg(TI_CCxxx0_TXFIFO, pBufferIndex, BytesLeft);
	      P1IE  &= ~BIT6;                                      // Disable Interrupt
	      /*packetSent = 1;
	      writeRemainingDataFlag = 0;
	      TI_CC_SPIWriteReg(TI_CCxxx0_PKTCTRL0, 0x02);*/
	    }
	    else
	    {
	      // load FIFO for subsequents part of big frame
	      // -------------------------------------------
	      TI_CC_SPIWriteBurstReg(TI_CCxxx0_TXFIFO, pBufferIndex, 60);

	      if (BytesLeft < 65)
		  {
			TI_CC_SPIWriteReg(TI_CCxxx0_PKTCTRL0, 0x00); // 0x00 means fixed Packet length MODE
		  }

	      pBufferIndex = pBufferIndex + 60;
	      BytesLeft    = BytesLeft    - 60;
	      if (!(--iterations))
	    	  writeRemainingDataFlag = 1;
	    }
	    P2IFG &= ~BIT6;                                        //Clear Interrupt flag
	  //}
}

// interrupt for GDO2 (p1.0)
// -------------------------
#pragma vector=PORT1_VECTOR
__interrupt void port1_ISR (void)
{
  if(P1IFG & BIT0)
  {
    packetSent = 1;
    P1IFG &= ~BIT0;
  }
}



// rest of ISR
#pragma vector=WDT_VECTOR, COMPARATORA_VECTOR, NMI_VECTOR, 	\
		TIMER1_A1_VECTOR, TIMER1_A0_VECTOR, USCIAB0TX_VECTOR, USCIAB0RX_VECTOR
__interrupt void ISR_trap(void)
{
	// the following will cause an access violation which results in a PUC reset
	WDTCTL = 0;
}

However, as you can see in the following picture, the MSP430g2553 is only sending one burst of 64 bytes to the CC1101. The last squares on the MOSI line are the TX_STROBE STX = 0x35.

The program effectively enters the GDO0 ISR but it does not do all the iterations, only the first one.

What may I be doing wrong? :) Probably to someone used to CC1101 this will be trivial.

Please let me know and do not hesitate telling me if you need more info!

wireless communication

$
0
0

hi, 

I am trying to connect two TM4C123GH6PMI using the XBee module series 1, I already did all the programming on both XBee I know that they work and they are communicating because a test them with the X-CTU software, to simplified things I'm using energia the code that I'm running is : 

void setup() {

// start serial port at 19200 bps
Serial.begin(9600);
pinMode (PF_4, OUTPUT);
}

void loop() {

if (Serial.available() > 0)
{
int val= Serial.read();
switch(val)
{
case 'D':
digitalWrite(PF_4,HIGH);
delay(100);
digitalWrite(PF_4,LOW);
delay(100);
break;

}
}
}

this is only the code for the receiver, what i'm using for the emitter is just the other XBee connected through the ftdi cable to the computer and using the X-CTU  software I'm sending the characters  to turn on the led on the board (TM4C123GH6PMI) . the problem here is that nothing happens even dough the XBee is connected to the  RX( PA_4) and TX(PA_5) pins  , the RX is connected to the TX of the XBee and the TX is connected to the RX of the XBee, when a test the same code in an arduino board it works,  what I read from the page of energia is that the code for arduino should work with  the TI board, if some one can help me    that would be awesome  thanks. 

Can CC1120DK communicate with eZ430 Chronos?

$
0
0

Hi,

Now I want to get the data of the accelerometer in the chronos watch, so can I make it successful using TrxEB with CC1120? Is it a problem whether communication between cc1120 and cc1101 can success?

Or do you have any other suggestions for my test?

 Regards,

Can

Viewing all 6646 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>