Jump to content

Search the Community

Showing results for tags 'MSP430F2274'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • News
    • Announcements
    • Suggestions
    • New users say Hi!
  • Spotlight!
    • Sponsor Spotlight
    • Sponsor Giveaways
  • Energia
    • Energia - MSP
    • Energia - TivaC/CC3XXX
    • Energia - C2000
    • Energia Libraries
  • MSP Technical Forums
    • General
    • Compilers and IDEs
    • Development Kits
    • Programmers and Debuggers
    • Code vault
    • Projects
    • Booster Packs
    • Energia
  • Tiva-C, Hercules, CCXXXX ARM Technical Forums
    • General
    • SensorTag
    • Tiva-C, Hercules, CC3XXX Launchpad Booster Packs
    • Code Vault
    • Projects
    • Compilers and IDEs
    • Development Kits and Custom Boards
  • Beagle ARM Cortex A8 Technical Forums
    • General
    • Code Snippets and Scripts
    • Cases, Capes and Plugin Boards
    • Projects
  • General Electronics Forum
    • General Electronics
    • Other Microcontrollers
  • Connect
    • Embedded Systems/Test Equipment Deals
    • Buy, Trade and Sell
    • The 43oh Store
    • Community Projects
    • Fireside Chat
  • C2000 Technical Forums
    • General
    • Development Kits
    • Code Vault
    • Projects
    • BoosterPacks

Calendars

There are no results to display.


Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Website URL


Location


Interests


Sparkfun


Github

Found 3 results

  1. This code example works with Anaren and CC2500 BoosterPacks, (and of course with many other CCxxxx boards, like eZ430-RF2500,) and with G2553 LaunchPad. The code was based on slaa325 from TI (I am using same RF configs.) To use it, just un-comment one of the following lines in msp.h: //#define HARDWARE 2500 // CC2500 BoosterPack SPI1 G2553 LP //#define HARDWARE 915 // Anaren (915MHz) G2553 LP //#define HARDWARE 4302500 // EZ430-RF2500 CCxxxx.zip
  2. Hello friends. I have purchased one EZ430RF2500. My application includes transfer of sampled (@20KHz, 10 bit) analog data between the ED and the AP. I have started with modifying the Sensor demo example to move towards my objective. I have modified the main_AP.c and main_ED.c to remove the ADC function altogether from both the files. Instead I am sending only an integer value (99). Also I have decreased the value of TACCR0 to 30. AS the debugger operates at a maximum rate of 9600 bps, we are using a UART to USB bridge converter to increase the data transfer rate between the AP and the PC. Further I have changed the baud rate setting from 9600 to 115200. I am using a software 'terminal' to log the data received at the COM port of the PC. But still I am receiving data in the in the previous format as follow: $0001,-34.5F,4.4,032,N#<0> I cannot find the integer (99) in the received data. Why am I not getting the integer in the received data? Why the old data format is still followed? The modified data is supposed to send only a single integer value. But why is it not? Soliciting help. Thanks in advance. //main_ED.c #include "bsp.h" #include "mrfi.h" #include "nwk_types.h" #include "nwk_api.h" #include "bsp_leds.h" #include "bsp_buttons.h" #include "vlo_rand.h" /*------------------------------------------------------------------------------ * Defines *----------------------------------------------------------------------------*/ /* How many times to try a TX and miss an acknowledge before doing a scan */ #define MISSES_IN_A_ROW 2 /*------------------------------------------------------------------------------ * Prototypes *----------------------------------------------------------------------------*/ static void linkTo(void); void createRandomAddress(void); __interrupt void ADC10_ISR(void); __interrupt void Timer_A (void); /*------------------------------------------------------------------------------ * Globals ------------------------------------------------------------------------------*/ static linkID_t sLinkID1 = 0; /* Temperature offset set at production */ volatile int * tempOffset = (int *)0x10F4; /* Initialize radio address location */ char * Flash_Addr = (char *)0x10F0; /* Work loop semaphores */ static volatile uint8_t sSelfMeasureSem = 0; /*------------------------------------------------------------------------------ * Main *----------------------------------------------------------------------------*/ void main (void) { addr_t lAddr; /* Initialize board-specific hardware */ BSP_Init(); /* Check flash for previously stored address */ if(Flash_Addr[0] == 0xFF && Flash_Addr[1] == 0xFF && Flash_Addr[2] == 0xFF && Flash_Addr[3] == 0xFF ) { createRandomAddress(); // Create and store a new random address } /* Read out address from flash */ lAddr.addr[0] = Flash_Addr[0]; //lAddr.addr[1] = Flash_Addr[1]; //lAddr.addr[2] = Flash_Addr[2]; //lAddr.addr[3] = Flash_Addr[3]; /* Tell network stack the device address */ SMPL_Ioctl(IOCTL_OBJ_ADDR, IOCTL_ACT_SET, &lAddr); /* Initialize TimerA and oscillator */ //DCOCLT |=DCO2; //BCSCTL2|= BCSCTL3 |= LFXT1S_2; // LFXT1 = VLO TACCTL0 = CCIE; // TACCR0 interrupt enabled TACCR0 = 30; // ~ 0.025 sec TACTL = TASSEL_1 + MC_1; // ACLK, upmode /* Keep trying to join (a side effect of successful initialization) until * successful. Toggle LEDS to indicate that joining has not occurred. */ while (SMPL_SUCCESS != SMPL_Init(0)) { BSP_TOGGLE_LED1(); BSP_TOGGLE_LED2(); /* Go to sleep (LPM3 with interrupts enabled) * Timer A0 interrupt will wake CPU up every second to retry initializing */ __bis_SR_register(LPM3_bits+GIE); // LPM3 with interrupts enabled } /* LEDs on solid to indicate successful join. */ BSP_TURN_ON_LED1(); BSP_TURN_ON_LED2(); /* Unconditional link to AP which is listening due to successful join. */ linkTo(); while(1); } static void linkTo() { uint8_t msg[1]; #ifdef APP_AUTO_ACK uint8_t misses, done; #endif /* Keep trying to link... */ while (SMPL_SUCCESS != SMPL_Link(&sLinkID1)) { BSP_TOGGLE_LED1(); BSP_TOGGLE_LED2(); /* Go to sleep (LPM3 with interrupts enabled) * Timer A0 interrupt will wake CPU up every second to retry linking */ __bis_SR_register(LPM3_bits+GIE); } /* Turn off LEDs. */ BSP_TURN_OFF_LED1(); BSP_TURN_OFF_LED2(); /* Put the radio to sleep */ SMPL_Ioctl(IOCTL_OBJ_RADIO, IOCTL_ACT_RADIO_SLEEP, 0); while (1) { /* Go to sleep, waiting for interrupt every second to acquire data */ __bis_SR_register(LPM3_bits); /* Time to measure */ if (sSelfMeasureSem) { //volatile long temp; //int volt; //int results[1]; #ifdef APP_AUTO_ACK uint8_t noAck; smplStatus_t rc; #endif /* Get voltage */ // ADC10CTL1 = INCH_0 + ADC10DIV_4; // AVcc/2 ADC10CLK/5 //ADC10CTL0 = SREF_1 + ADC10SHT_2 + REFON + ADC10ON + ADC10IE + REF2_5V; // __delay_cycles(240); // ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start //__bis_SR_register(CPUOFF + GIE); // LPM0 with interrupts enabled //results[0] = ADC10MEM; // Retrieve result /* Stop and turn off ADC */ //ADC10CTL0 &= ~ENC; //ADC10CTL0 &= ~(REFON + ADC10ON); /* message format, UB = upper Byte, LB = lower Byte ------------------------------- |degC LB | degC UB | volt LB | ------------------------------- 0 1 2 */ //temp = results[0]; //volt = (temp*25)/512; msg[0] = 99;//volt; /*msg[1] = 1; msg[2] = 2; msg[3] = 3; msg[4] = 4; msg[5] = 5; msg[6] = 6; msg[7] = 7; msg[8] = 8; msg[9] = 9;*/ /* Get radio ready...awakens in idle state */ SMPL_Ioctl( IOCTL_OBJ_RADIO, IOCTL_ACT_RADIO_AWAKE, 0); #ifdef APP_AUTO_ACK /* Request that the AP sends an ACK back to confirm data transmission * Note: Enabling this section more than DOUBLES the current consumption * due to the amount of time RX waiting for the AP to respond */ done = 0; while (!done) { noAck = 0; /* Try sending message MISSES_IN_A_ROW times looking for ack */ for (misses=0; misses < MISSES_IN_A_ROW; ++misses) { if (SMPL_SUCCESS == (rc=SMPL_SendOpt(sLinkID1, msg, sizeof(msg), SMPL_TXOPTION_ACKREQ))) { /* Message acked. We're done. Toggle LED 1 to indicate ack received. */ BSP_TURN_ON_LED1(); __delay_cycles(2000); BSP_TURN_OFF_LED1(); break; } if (SMPL_NO_ACK == rc) { /* Count ack failures. Could also fail becuase of CCA and * we don't want to scan in this case. */ noAck++; } } if (MISSES_IN_A_ROW == noAck) { /* Message not acked */ BSP_TURN_ON_LED2(); __delay_cycles(2000); BSP_TURN_OFF_LED2(); #ifdef FREQUENCY_AGILITY /* Assume we're on the wrong channel so look for channel by * using the Ping to initiate a scan when it gets no reply. With * a successful ping try sending the message again. Otherwise, * for any error we get we will wait until the next button * press to try again. */ if (SMPL_SUCCESS != SMPL_Ping(sLinkID1)) { done = 1; } #else done = 1; #endif /* FREQUENCY_AGILITY */ } else { /* Got the ack or we don't care. We're done. */ done = 1; } } #else /* No AP acknowledgement, just send a single message to the AP */ SMPL_SendOpt(sLinkID1, msg, sizeof(msg), SMPL_TXOPTION_NONE); #endif /* APP_AUTO_ACK */ /* Put radio back to sleep */ SMPL_Ioctl( IOCTL_OBJ_RADIO, IOCTL_ACT_RADIO_SLEEP, 0); /* Done with measurement, disable measure flag */ sSelfMeasureSem = 0; } } } void createRandomAddress() { unsigned int rand;//, rand2; do { rand = TI_getRandomIntegerFromVLO(); // first byte can not be 0x00 of 0xFF } while( (rand & 0xFF00)==0xFF00 || (rand & 0xFF00)==0x0000 ); //rand2 = TI_getRandomIntegerFromVLO(); BCSCTL1 = CALBC1_1MHZ; // Set DCO to 1MHz DCOCTL = CALDCO_1MHZ; FCTL2 = FWKEY + FSSEL0 + FN1; // MCLK/3 for Flash Timing Generator FCTL3 = FWKEY + LOCKA; // Clear LOCK & LOCKA bits FCTL1 = FWKEY + WRT; // Set WRT bit for write operation Flash_Addr[0]=(rand>>8) & 0xFF; //Flash_Addr[1]=rand & 0xFF; //Flash_Addr[2]=(rand2>>8) & 0xFF; //Flash_Addr[3]=rand2 & 0xFF; FCTL1 = FWKEY; // Clear WRT bit FCTL3 = FWKEY + LOCKA + LOCK; // Set LOCK & LOCKA bit } /*------------------------------------------------------------------------------ * ADC10 interrupt service routine *----------------------------------------------------------------------------*/ //#pragma vector=ADC10_VECTOR //__interrupt void ADC10_ISR(void) //{ // __bic_SR_register_on_exit(CPUOFF); // Clear CPUOFF bit from 0(SR) //} /*------------------------------------------------------------------------------ * Timer A0 interrupt service routine *----------------------------------------------------------------------------*/ #pragma vector=TIMERA0_VECTOR __interrupt void Timer_A (void) { sSelfMeasureSem = 1; __bic_SR_register_on_exit(LPM3_bits); // Clear LPM3 bit from 0(SR) } The main_ED.c is attached herewith for your kind consideration.
  3. I finally did a breakout for the msp430 chips that use the tssop-38 pin layout. I made it generic so it can be used with various chips. The layout makes no assumption about power or the SBW pins. There are a couple of vias that could be used for a LFXTAL or decoupling caps. Just drag a wirewrap gauge wire to the right pin. Find a rendered image and brd file here: http://oshpark.com/shared_projects/Yk6KHu43 -rick
×
×
  • Create New...