EM - CC430F5137 device boot with Dash7

Anonymous
2012-12-30
2013-05-30

  • Anonymous
    2012-12-30

    Hi All
    A week ago I got my boards(CC430F5137 +FET430UIF + CCS +win XP) still trying to get Opentag to work… non of the sample seem to work on the default board configuration.
    Obviously I need to change to 433Mhz, but  I don't think this is the issue since the firmware doesn't even finish it's boot.
    Does Dash 7 require the 32.768kHz crystal to be soldered?
    the  FW gets stack in an infinit loop under board_EM430RF.h
        // Loop until XT2, XT1, and DCO all stabilize
        do {
            UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);
            SFRIFG1 &= ~OFIFG;
        } while (SFRIFG1&OFIFG);

    Does any one know if I can run both  the OTcom and CCS trough the FET430UIF the same time? or I should try to get the CC430 UART connector?
    How can this be done? ( do I need an FTDI cable such as http://www.ftdichip.com/Products/Cables/USBTTLSerial.htm)

    thanks in advance for any help
    Yaniv

     
  • JP Norair
    JP Norair
    2012-12-30

    For the default configuration, you need to solder the crystal to XT1.  The alternative is to use REFOCLK, an internal oscillator, but this requires changing the configuration.  soldering the crystal is easier.

    You cannot use OTcom and FET430 on the same port.  The FET430 is a single-ended USB device, so it only supports one connection (which is the JTAG interface).  Plus, the JTAG pins do not have a serial port included.  However, you can use OTcom and FET430 at the same time, for debugging.  For debugging, it is actually easiest to use an external UART-USB converter instead of internal USB that some MCUs have.  I won't explain all the reasons, but most importantly the USB connection can drop when you are at a breakpoint if you are using internal USB.  CC430 doesn't have internal USB, but some MSP430F5 devices and many STM32 do have it.  Even when I am using these parts, I don't usually work with the internal USB until everything else is debugged.

    Any USB-serial converter can be used to attach the CC430 UART to a USB PC.  FTDI is a good one, so is SiLabs CP210x.  You only need to connect the RX-TX and TX-RX pins.  There is no flow-control in the OpenTag MPipe, because it is just a 1:1 pipe.

     

  • Anonymous
    2013-01-06

    Hi JP,

    Finished with these steps and still I'm not getting any messages on the OTcom.
    I'm using CC430F5137, WIN-XP, FTDI cable connected to P1.5(UART RX), and P1.6(UART TX) each is connected vis versa RX->TX and TX-> RX to the FTDI cable.
    All i'm seeing in the OTCOM is a lot of "0" printed( in raw mode).

    Do I need to send some commands to mux the CC430F5137 UART?

    maybe something like this?

    void main(void)
    {
      WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
     
      PMAPPWD = 0x02D52;                        // Get write-access to port mapping regs 
      P1MAP5 = PM_UCA0RXD;                      // Map UCA0RXD output to P1.5
      P1MAP6 = PM_UCA0TXD;                      // Map UCA0TXD output to P1.6
      PMAPPWD = 0;                              // Lock port mapping registers
     
      P1DIR |= BIT6;                            // Set P1.6 as TX output
      P1SEL |= BIT6 + BIT5;                     // Select P1.6 & P1.5 to UART function
     
      UCA0CTL1 |= UCSWRST;                      // **Put state machine in reset**
      UCA0CTL1 |= UCSSEL_1;                     // CLK = ACLK
      UCA0BR0 = 0x03;                           // 32kHz/9600=3.41 (see User's Guide)
      UCA0BR1 = 0x00;                           //
      UCA0MCTL = UCBRS_3+UCBRF_0;               // Modulation UCBRSx=3, UCBRFx=0
      UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
      //UCA0IE |= UCRXIE;                         // Enable USCI_A0 RX interrupt
      P3DIR |= BIT3 + BIT4 + BIT5;               // P3.3, 4 & 5 (connected to LEDs)
      TA1CCTL0 = CCIE;                          // CCR0 interrupt enabled
      TA1CCR0 = 50000;
      TA1CTL = TASSEL_2 + MC_2 + TACLR;         // ACLK, contmode (Continuous mode: Timer counts up to 0FFFFh), clear TAR

      __bis_SR_register(LPM3_bits + GIE);       // Enter LPM0, enable interrupts
      __no_operation();                         // For debugger
    }

    // Timer A0 interrupt service routine
    #pragma vector=TIMER1_A0_VECTOR
    __interrupt void TIMER1_A0_ISR(void)
    {
      while (!(UCA0IFG&UCTXIFG));             // USCI_A0 TX buffer ready?
      __delay_cycles(20);
      UCA0TXBUF = UCA0RXBUF;
      P3OUT ^= BIT3 + BIT4 + BIT5;              // Toggle P1.0
      TA1CCR0 += 50000;                         // Add Offset to CCR0
    }
     

    Thanks
    Yaniv

     

  • Anonymous
    2013-01-07

    On the other Hand, I seem to have some problem while initializing in this function void vl_init()
    Are these eclipse project properties correct? (for 5137)