Quantcast
Channel: MSP low-power microcontroller forum - Recent Threads
Viewing all 22005 articles
Browse latest View live

MSP430G2955: CCI1B does not seem to be linked internally?

$
0
0

Part Number:MSP430G2955

Good day,

I'm currently working on a project that measures temperature via an NTC. It uses the method discussed in 21.2.8 of SLAU144J. However, the output from the Comparator_A+ module (CCI1B) does not seem to route to Timer0_A3 capture 1 input even if it is setup to use CCI1B.

I've routed CAOUT to an external pin (P4.6) and I can see the Comparator operating as it should. I have also managed to get the circuit to work by linking this output to the CCI1A input on P1.2; then configuring Timer0_A3 capture input to use CCI1A. However, the internal routing via CCI1B seems to be faulty. I cannot seem to find this issue documented in the errata either. The device I'm using is a Rev A.

Regards,

Gavin


MSP-FET: Uniquely identifying an MSP-FET for debug and test

$
0
0

Part Number:MSP-FET

Currently we have 2 MSP-FET units (as opposed to using an MSP-GANG) in a test fixture and we would prefer to be able to identify each FET uniquely so that it can be known which part of the fixture it's associated with.

This doesn't seem possible with MSPFlasher as the API states nothing about identifying the device except by com port. I am certain the Device will change (IE PC) running the fixture so that is less than helpful.

The MSP430 DLL API Documentation doesn't appear to have anything with regards to identifying the FET either but what is attached to it (IE the DUT [Device Under Test].

Am I missing something?

Or does this have to be each time the unit is migrated (or whatever) it has to be setup with the port id's given when they are connected etc?

Thanks for any insight on how to do this or best practices.

Stephen

CCS/MSP430FR6989: TIMER_A CONFIGURATION SHOWS ERROR

$
0
0

Part Number:MSP430FR6989

Tool/software: Code Composer Studio

Hi, I am reading the book "MSP430 Microcontroller Basics" and there is an exercise which is about toggling a LED with the use of timer A. The program is this:

#include "msp430.h"


#define LED1	BIT0

int main(void) {
    WDTCTL = WDTPW | WDTHOLD;	// Stop watchdog timer
    PM5CTL0 &= ~LOCKLPM5;

    P1OUT = ~LED1;
    P2DIR = LED1;
    TA0CTL = MC_2|ID_3|TASSEL_2|TACLR;

    for(;;){
    	while(TA0CTL_bit.TAIFG == 0){
    		TA0CTL_bit.TAIFG = 0;
    		P1OUT ^= LED1;
    	}
    }
}

But when I try to compile it, the IDE sends this error:  

Description Resource Path Location Type
#135 expected a field name main.c /Timer_and_Interruptions line 15 C/C++ Problem
#135 expected a field name main.c /Timer_and_Interruptions line 16 C/C++ Problem
#20 identifier "TA0CTL_bit" is undefined main.c /Timer_and_Interruptions line 15 C/C++ Problem
gmake: *** [main.obj] Error 1 Timer_and_Interruptions C/C++ Problem
gmake: Target 'all' not remade because of errors. Timer_and_Interruptions C/C++ Problem

In the book, they add this header: <io430x11x1.h>, but when I try with #incude "io430fr6989.h" it says it cannot be opened, and if I don't add it, it says the error from above in which says that TA0CTL_bit is not an identifier. I checked the User's Guide for MSP430 family and the register is there, maybe the way I am declaring it is not well. 

Where can I look for the header or what might the problem be? I know I can use the Driverlib, but first I want to do it this way.

Thank you!

RTOS/SIMPLELINK-MSP432-SDK: f_printf function usuability issue for writting string format to file on SD card

$
0
0

Part Number:SIMPLELINK-MSP432-SDK

Tool/software:TI-RTOS

Hi Team,

I am working on a project where I have to write the hex formatted string to a file on SD card.

I have used the fatsdraw example as a base.

The demo firmware works fine on its own without any modification.

But when I use the f_printf function in the same example, I get compilation error stating as "unresolved symbol f_printf, first referenced in ./fatsdraw.obj"

I did go through the app notes where it mentions that in order to use f_printf(), f_gets(), f_putc() and f_getc() functions the value of _USE_STRFUNC should be 1 or 2 but not 0.

I have already modified that value to 1 and also tried to modifying to 2.

But still I get the same error.

The library files are included in the project. I am attaching the project folder for you to refer in case I am doing something wrong.

Also when I try to refer that function it does takes to the ff.h file to make sure it is included.

I have also tried looking into the forums for solutions but no luck

Please guide me to resolve this issue.

Thank you in advance.

Vikram(Please visit the site to view this file)

RTOS/MSP-EXP430FR5994: Can't return from LPM3.5

$
0
0

Part Number:MSP-EXP430FR5994

Tool/software:TI-RTOS

I am using TI-RTOS and have built an application with several tasks running.  When all the worker tasks are done, the main task calls Task_sleep() and the MSP430 enters LPM3 for a set amount of time.  I would like to instead enter LPM3.5 and use an RTC alarm to return from LPM3.5 after a set amount of time.  I am able to get the MSP430 to enter LPM3.5 but I can't get it to return to normal operation.

I have been using the example project "ctpl_ex2_rtc_lpm35_msp-exp430fr5994" as a starting point on how to use the CTPL interface to enter LPM3.5 and store the system state when it returns from LPM3.5.  I can run this example application and it enters and exits LPM3.5 without issue. I copied the CTPL files from this example and added them to my project.  To make sure I didn't miss a peripheral that I need I am starting with all the "CTPL_SAVE" macros in ctpl_msp430fr5994.c enabled, so all peripheral settings and FRAM data should be retrieved upon return from LPM3.5.  I added the following to my main.c to support the RTC interrupt and the CTPL interface:

static void Board_initRTC(void)
{
    /* Configure RTC_C, interrupts every 2 seconds */
    RTCCTL0_H = RTCKEY_H;
    RTCCTL0_L = RTCTEVIE;
    RTCCTL1 = RTCSSEL_2 | RTCTEV_0 | RTCHOLD;
    RTCPS0CTL = RT0PSDIV0 | RT0PSDIV1;
    RTCPS1CTL = RT1SSEL1 | RT1PSDIV0 | RT1PSDIV1;

    /* Start RTC calendar mode */
    RTCCTL1 &= ~(RTCHOLD);
}

/*
 * This function will be called before main and initialization of variables.
 * The ctpl_init() function must be called at the start to enable the compute
 * through power loss library. If your application already declares this
 * function you can remove this file and add the call to ctpl_init() at the
 * start of your function.
 */
#if defined(__TI_COMPILER_VERSION__)
int _system_pre_init(void)
#elif defined(__IAR_SYSTEMS_ICC__)
int __low_level_init(void)
#endif
{
    /* Initialize ctpl library */
    ctpl_init();

    /* Insert application pre-init code here. */

    return 1;
}

void RTC_C_hwiIntFxn(void)
{
    static int secCount = 0;
    switch(__even_in_range(RTCIV, RTCIV__RT1PSIFG))
    {
        case RTCIV__NONE:      break;       // No interrupts
        case RTCIV__RTCOFIFG:  break;       // RTCOFIFG
        case RTCIV__RTCRDYIFG:              // RTCRDYIFG
            secCount++;
            __no_operation();               // Interrupts every second
            break;
        case RTCIV__RTCTEVIFG:              // RTCEVIFG
            __no_operation();               // Interrupts every minute - SET BREAKPOINT HERE
            break;
        case RTCIV__RTCAIFG:   break;       // RTCAIFG
        case RTCIV__RT0PSIFG:  break;       // RT0PSIFG
        case RTCIV__RT1PSIFG:  break;       // RT1PSIFG
        default: break;
    }
}

In my main task I changed the call to Task_sleep to:

ctpl_enterLpm35(CTPL_ENABLE_RESTORE_ON_RESET);

I've confirmed with EnergyTrace++ that the MSP430 does enter LPM3.5 upon this call.  However, it never returns from LPM3.5.  What else do I need to add to use LPM3.5 with TI-RTOS?

MSP-FET: Voltage Supply Problem

$
0
0

Part Number:MSP-FET

My original MSP-FET430UIF finally bricked after 8 years of use (while I was in the field performing code updates).  I ordered the new model and quickly had it up and running.  After updating another 25 units, the new FET stopped working.  I am using the Elprotronic flash programmer software to do all my updates using SBW.  When I attempt to perform an action (erase, write, or read) the programmer will only apply power to the target for a second then shuts off.  As a result, I can never get past the step of verifying the security fuse, nor actually doing anything useful.  Any thoughts or ideas on problems would be appreciated.

Thanks

MSP430G2553: Launching BOOST-DRV8711 GUI results in ERROR: MSP430: Trouble Reading Memory Block at 0x2e8 on Page 0 of Length 0x2: Read timed out.

$
0
0

Part Number:MSP430G2553

Hi,

I've been following BOOST-DRV8711 user guide.  In section 4, the guide describes executing BOOST-DRV8711_GUIvX.X.exe to start the GUI application.  Upon starting the application I get an error:

ERROR: MSP430: Trouble Reading Memory Block at 0x2e8 on Page 0 of Length 0x2: Read timed out.

I have little experience to fall back on to understand this error.  Any ideas.

thx

Matt

Finding the right part

$
0
0

We at Flex in Linköping mostly do wearable and IoT products, and it is also here we have the most issues finding low leakage parts. As the system typically is in deep sleep most of the time we need power supply parts that have a very low leakage, but when it is active it may consume 40-200mA (or more) on BLE/GNSS/LoRa/Sigbee/WiFi/etc.

We have both supply in the form of LiPo rechargeable and Li primary cells.

Normally the MCU is the only chip with constant supply, it typically uses about 2uA while in sleep.

We would like to see what TI would recommend for topology for such a product. Could for instance a LDO in parallel to a step down be an effective solution?


MSP-FET: Error connecting to the target: Unknown device only on the first attempt

$
0
0

Part Number:MSP-FET

Hi

I have a MSP-FET sitting betweena win10 PC and my custom board with a MSP430F6736A.
Connection is with a custom 8 wire ribbon cable, length 180mm.
The board is self powered.

An issue that has been annoying me for a long while is this:

The very fist time after reconnecting the FET to the PC & to the board, the FET loads my program without any problem.
The SECOND and SUBSEQUENT times i use the FET to load my program i get "Error connecting to the target:  Unknown device".
Once that message appears, I then click on "Retry" and it loads normally!!

IF, however, i disconnect the FET from the PC (but keep the FET still connected to my powered board) PRIOR to loading my program, the FET loads my program EVERYTIME!

My questions are:
1. How can i get the FET to load my program everytime without having to disconnect it from the PC?
2. Why does this happen?

thanks in advance

TIDM-WLMOTORMONITOR: TIDM-WLMOTORMONITOR

$
0
0

Part Number:TIDM-WLMOTORMONITOR

Hi! I am trying to build a demo of wireless motor monitoring module based on the reference design of TIDM-WLMOTORMONITOR

In the design guide document of the reference design, it is shown a 3D printed enclosure for the module. It is quite impressive.

It is mentioned in the doc that the STL design files for 3D print are included with this design. But I can not find the STL files under the TI link: 

So could anyone in TI help send the related STL files to me so that I can 3D print the enclosure and make the completed demo?

Thanks a lot and best regards,

Jin Li

.

CCS/MSP430FG4619: Comunicaction between PGA2500 and MSP430FG4619

$
0
0

Part Number:MSP430FG4619

Tool/software: Code Composer Studio

Hi!

I'm a Student who is doing a Project to make a code for comunicate and change the gain from the PgA2500 preamplifier. I know its connect by SPI mode, but i don't know how to write a code. I have the Code for SPI start , but i don't know how to send the configuration of th PGA2500 to change the gain. Can you help me?

Thanks

MSP430F5359: .

$
0
0

Part Number:MSP430F5359

Hi!

I am planning to use MSP430F5359 for an avionic application. Is it available in military grade or enhanced product?

It would be really helpful if i can get the complete part number.

Thanks in advance.

Regards,

Dhanyashree 

TSS721A: Is there any materials of Meter bus Communication?

$
0
0

Part Number:TSS721A

Dears:

Is there any materials of Meter bus Communication for slave and master?

I look forward to hearing from you!

Thanks a lot!

MSP430F5359: .

$
0
0

Part Number:MSP430F5359

Hi,

I am enclosing the page i referred from the datasheet to get the complete part number. I want to know if MSP430F5359TPZEP or MSP430F5359PZEP is available. Since I am planning to use this for an avionic application, Military grade or Enhanced Product is to be used. So kindly guide me on this. 

Thanks,

Dhanyashree

MSP432P401M: Uart communication error

$
0
0

Part Number:MSP432P401M

Hello,

    I am interfacing  SN65HVD485 to MSP432P401M controller. I want to transmitt 0x50 data in TXBUF resister. My code is :-

#include "msp.h"

int main(void)
{
WDT_A->CTL = WDT_A_CTL_PW | // Stop watchdog timer
WDT_A_CTL_HOLD;

CS->KEY = CS_KEY_VAL; // Unlock CS module for register access
CS->CTL0 = 0; // Reset tuning parameters
CS->CTL0 = CS_CTL0_DCORSEL_3; // Set DCO to 12MHz (nominal, center of 8-16MHz range)
CS->CTL1 = CS_CTL1_SELA_2 | // Select ACLK = REFO
CS_CTL1_SELS_3 | // SMCLK = DCO
CS_CTL1_SELM_3; // MCLK = DCO
CS->KEY = 0; // Lock CS module from unintended accesses

// Configure UART pins
P9->SEL0 |= BIT6 | BIT7; // set 2-UART pin as secondary function

// Configure UART
EUSCI_A3->CTLW0 |= EUSCI_A_CTLW0_SWRST; // Put eUSCI in reset
EUSCI_A3->CTLW0 = EUSCI_A_CTLW0_SWRST | // Remain eUSCI in reset
EUSCI_B_CTLW0_SSEL__SMCLK; // Configure eUSCI clock source for SMCLK
// Baud Rate calculation
// 12000000/(16*9600) = 78.125
// Fractional portion = 0.125
// User's Guide Table 21-4: UCBRSx = 0x10
// UCBRFx = int ( (78.125-78)*16) = 2
EUSCI_A3->BRW = 78; // 12000000/16/9600
EUSCI_A3->MCTLW = (2 << EUSCI_A_MCTLW_BRF_OFS) |
EUSCI_A_MCTLW_OS16;

EUSCI_A3->CTLW0 &= ~EUSCI_A_CTLW0_SWRST; // Initialize eUSCI
EUSCI_A3->IFG &= ~EUSCI_A_IFG_RXIFG; // Clear eUSCI RX interrupt flag
EUSCI_A3->IE |= EUSCI_A_IE_RXIE; // Enable USCI_A3 RX interrupt

// Enable sleep on exit from ISR
SCB->SCR |= SCB_SCR_SLEEPONEXIT_Msk;

// Enable global interrupt
__enable_irq();

P9->DIR |= BIT5; //Enable P1.0 pin
P9->OUT |= BIT5; //Set EN(active low) pin of UART as secondary function

EUSCI_A3->TXBUF = 0X50;

// Enable eUSCIA3 interrupt in NVIC module
NVIC->ISER[3] = 1 << ((EUSCIA3_IRQn) & 31);

//Enter LPM0
// __sleep();
// __no_operation(); // For debugger
}

// UART interrupt service routine
/*void EUSCIA3_IRQHandler(void)
{
if (EUSCI_A3->IFG & EUSCI_A_IFG_RXIFG)
{
// Check if the TX buffer is empty first
while(!(EUSCI_A3->IFG & EUSCI_A_IFG_TXIFG));

// Echo the received character back
EUSCI_A3->TXBUF = 0X50;
}
}*/

 When i debug the code and pause the CCS takes me to loaderexit() in exit.c

/****************************************************************************/

/* ABORT - ABNORMAL PROGRAM TERMINATION.  CURRENTLY JUST HALTS EXECUTION.   */
/****************************************************************************/
void abort(void)
{
    loader_exit());
    for (;;);   /* SPINS FOREVER */   // here i get stuck..
}


On the external crystal vibration of M432P401

$
0
0

I encountered the following problems when I output M432P401R P4.2. I can't make LFXTCLK_ON 1. I refer to the example of MSP432P401R for the output of 48MHz, but it is still unable to output the external crystal vibration of P4.2.I need your help. I look forward to your reply.thank you

MSP430F1611: I2CIE Register writing problem

$
0
0

Part Number:MSP430F1611

Hello,  

I am using the MSP430F1611 in a simple application which provides i2c to RS232/485 conversion.  

I am having a problem in the i2c interrupt routine where I am writing to the I2CIE register to clear the TXRDYIE bit.  For some reason, the bit does not always clear properly.  I first clear the bit, then I added a nop just for good measure, then I am reading the bit again, and clearing it again if it was not already cleared.  For some reason, the bit is not being cleared on the first attempt sometimes.  I am using IAR EW430 7.10.3.  Here is the code:

#pragma vector = USART0TX_VECTOR                
__interrupt void slave_byte(void){               // slave i2c interface
  switch (__even_in_range(I2CIV, 0x10)) {                      // trigger on interrupt
  case I2CIV_NONE:                              // (0x0000u)    /* I2C interrupt vector: No interrupt pending */
    break;
  case I2CIV_AL:                                // (0x0002u)    /* I2C interrupt vector: Arbitration lost (ALIFG) */
    break;
  case I2CIV_NACK:                              // (0x0004u)    /* I2C interrupt vector: No acknowledge (NACKIFG) */
    break;
  case I2CIV_OA:                                // (0x0006u)    /* I2C interrupt vector: Own address (OAIFG) */
      i2cbuff_p = 0;                            // init to first char in i2c buffer
      break;
  case I2CIV_ARDY:                              // (0x0008u)    /* I2C interrupt vector: Access ready (ARDYIFG) */
      break;
  case I2CIV_RXRDY:                             // (0x000Au)    /* I2C interrupt vector: Receive ready (RXRDYIFG) */
      i2cbuff[i2cbuff_p] = I2CDRB;
      if (i2cbuff_p < MAX_I2C_BUFF_P)
        if (++i2cbuff_p == 2) {
          I2CIE = (OAIE | RXRDYIE);             // disable tx interrupt to provide clock stretching and trigger process_i2c   FIRST ATTEMPT TO CLEAR TXRDYIE BIT
          __no_operation();                               
          if ((I2CIE & TXRDYIE) != 0)            // CHECK TO SEE IF BIT ACTUALLY CLEARED
            I2CIE = (OAIE | RXRDYIE);             // disable tx interrupt to provide clock stretching and trigger process_i2c  I AM SETTING A BREAK POINT HERE AND IT

                                                                    // IS STOPPING HERE ON OCCASTION WITH THE TXRDYIE BIT STILL SET IF I INSPECT IN THE REGISTERS IN IAR.
        }
      break;
  case I2CIV_TXRDY:                             // (0x000Cu)    /* I2C interrupt vector: Transmit ready (TXRDYIFG) */
      I2CDRB = i2c_tx_char;                     // copy outgoing byte
      break;
  case I2CIV_GC:                                // (0x000Eu)    /* I2C interrupt vector: General call (GCIFG) */
      break;
  case I2CIV_STT:                               // (0x0010u)    /* I2C interrupt vector: Start condition (STTIFG) */
      break;
  } // end switch
} // end receive bit interrupt

Any suggestions would be greatly appreciated.

Thanks,

Greg Dunn

MSP430G2553: connect directly GPIO pin to the enable pin of an IC or use external pull-up or pull-down resistors?

$
0
0

Part Number:MSP430G2553

Hi, I have a very basic question but I can not clarify me. I am using the MSP430G2553. When a GPIO pin of the microcontroller is connected to a pin enable of an integrated circuit, can it be connected directly or is it necessary (or better) to use external pull-up or pull-down resistors? In this way, would you ensure that the ICs are in a controlled state while the values of the MSP430G2553 registers are set to the value programmed in the code? Thanks

Best regards,

Fran Martin.

CCS/MSP430G2403: I2C Mulit-Master Transmit enviroment. Doesn't work with more than 5 masters

$
0
0

Part Number:MSP430G2403

Tool/software: Code Composer Studio

Hello,

I'm working on a project that can have up to 9 masters all trying to send information to 1 slave. It is a daisy chain connection. 1 is the slave, and then 2-10 are the masters. I have been able to get 3 and 4 masters consistently transmitting data correctly, but once I add 5, 6, and 7 masters things start to get inconsistent. I'm using buffer chip, TCA9509DGKR, to account for the capacitance in the system. In the Errata sheet of the MSP430G2403, it said that it has some issues with a multi-master transmitting scenario, and so I switched out the MSP430G2403 for MSP430G2553. Even with the new micro controllers, I am still getting the same issues. One thing that is interesting is that when I hook up launchpads together in the same enviroment, even with the buffer chips, it is successful. For some reason I'm having problems on my board, but not the launchpads.

Best Regards,

-Thomas Pinewski

CCS/MSP430FR5994: demo of "transform_ex1_fft_fixed_q15" have an error of MSP_LEA_INCORRECT_REVISION

$
0
0

Part Number:MSP430FR5994

Tool/software: Code Composer Studio

Hi :

    Hardware:MSP-EXP430FR5994     Rev1.2      the mcu's version is REV B

      MSP430Ware - v:3.60.00.10(can't update to the latest version, the issue I have checked)

      When I run the demo of  "transform_ex1_fft_fixed_q15" have an error of MSP_LEA_INCORRECT_REVISION. So it stop at below:

/* LEA incorrect revision, loop forever. */

caseMSP_LEA_INCORRECT_REVISION:evision, loop forever. */

while(true)__no_operation();

Viewing all 22005 articles
Browse latest View live


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