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

CCS/MSP432P401R: Cannot open source file msp.h while running BOOSTXML-EDUMKII_MicrophoneFFT_MSP432P401R

$
0
0

Part Number:MSP432P401R

Tool/software: Code Composer Studio

Hi,


I am trying to run the Microphone FFT example with the Booster Pack MKII mounted on the MSP 432. I am following the steps mentioned here (http://www.ti.com/lit/an/slaa707/slaa707.pdf) to import the example mentioned at ( www.ti.com/.../slaa707 ) onto CCS as explained in Section 6.3 . However, when I try to build the project, I observe an error which says "cannot open source file msp.h" . There also appears to be no msp.h in the slaa707 directory. Could you please let me know how I might be able to fix this ?

Thanks!

Avi


CCS/BOOSTXL-K350QVG-S1: LCD Display problem with MSP432 and K350

$
0
0

Part Number:BOOSTXL-K350QVG-S1

Tool/software: Code Composer Studio

Hi Guys, I'm Pauline and I am a new user of Texas Intruments.
I wanted to program a LCD screen so I've bought the BOOSTXL-K350QVG and the launchpad MSP432P401R from TI. I plugged this screen directly on the launchpad and till now, as I am familiar with Arduino, I I tried to use Energia, but it failed (screen seems to be off). Nothing worked and I just can't found any tuto on the web.

Then I changed for CCS. Nothing in the ressources explorator so I searched on the net and I've read something like installing the graphical libray, which I did.

I downloaded and imported the needed programms and also watched videos on Youtube.

On all the library example, I have only one that can turn on the screen, but it is a blank screen.

If I read the C code source from the BOOSTXL-K350QVG-S1 GrlibExample_MSP432..., and adding what I watched on Youtube, I'm not supposed to get only a blank screen ! (although it's an improve that the screen turned on)

Then, sometimes I get (when debugging), the error "memory map prevented reading xxx", what does it mean, given that I've changed nothing on the example code downloaded from TI ??

Can someone please lead me on programming this screen ?

MSP430G2333: MSP430G2333

CCS/MSP430I2041: Load program Error

$
0
0

Part Number:MSP430I2041

Tool/software: Code Composer Studio

I am working on MSP430i2041.

I tried to load the example code "blinking LED".

During this procedure, I used the MSP-FET Flash Emulation Tool(JTAG).

Code Composer Studio version is 8.1.0.

I confirmed the error code below after clicking the debug botton.

How can I solve this problem?

MSP432P401R: MSP432P401R MCUs with an integrated 16-bit precision ADC

$
0
0

Part Number:MSP432P401R

 We are planning to use MSP432P401R  for the industrial sensor data measurement using ADC. I read in the technical manual that  MSP432P401R  has SAR Analog-To-Digital Converter (ADC) With 16-Bit Precision and up to 1 Msps. My concern is, parametric specification mention that it has 14 bits ADC Resolution. So I Just want to know that How can we achieve 16-Bit Precision using  14 bits ADC Resolution in MSP432P401R  


I am bit confused Please describe it

RTOS/MSP430F5438A: How to access the flash over 64 K bytes

$
0
0

Part Number:MSP430F5438A

Tool/software: TI-RTOS

Hello guys,

I have a question regarding the internal flash access which is over 64K bytes.

Background:

I am using a MSP430F5438A chip which has 256K bytes internal flash and TI-RTOS.

Since we need to use the XDCTool to configure the TI-RTOS, we can only use the small Data Model for the compiler (IAR 7.11.1) .

(XDCTool does not support the Large or Medium Data Model).

I am trying to access the whole flash area. But it seems the address is restricted to 16 bit then can not be bigger than 0xffff.

Possible Solutions:

I have did some investigation on this problem and there are three possible solutions proposed on the web.

1) Use the Big Data Model ( not supported in this scenario).

2) Use Assembly Code to access the address bigger than 0xFFFF. (Not proved yet).

3) Use the __DATA20 intrinsic provided by the IAR to define the pointer or data. (Not supported by small Data Model neither).

4) Any other solutions ??

It seems we can only use option 2)? I am not very familiar with the Assembly language, who can give some example code?

This is from internet, but there is one compilation error:

http://msp430-gcc-users.1086195.n5.nabble.com/Accessing-20-bit-memory-range-issues-with-indirect-addressing-mode-td7110.html

/*

* 20-bit write access to flash func
*/
static inline void FlashWriteByte (uint32_t Address, uint8_t Byte)
{
unsigned int sr, flash;
__asm volatile("mov r2,%0":"=r"(sr):);
_DINT();
__asm volatile("movx.a %1,%0":"=r"(flash):"m"(Address));
__asm volatile("movx.b %1,@%0":"=r"(flash):"m"(Byte));
__asm volatile("mov %0,r2"::"r"(sr));
_NOP();
_EINT();
}

Or I am wondering whether the TI-RTOS has some memory/ flash management system or API that can work in this scenario?

Thanks 

Allen

MSP432P401R: External DMAE0 Trigger SPI

$
0
0

Part Number:MSP432P401R

Hi,

i am trying to get external DMA trigger to work with an external ADC (ADS131A02).

I am receiving the INT from ADS131A02 but DMA is not getting triggert. 

Is there anything wrong with my code:

#define SAMPLE_LENGTH 512
int32_t data_array1[SAMPLE_LENGTH];
int32_t data_array2[SAMPLE_LENGTH];
uint8_t data_array[4]={0x00,0x00,0x00,0x00};
volatile int switch_data = 0;

void ADS131A02_DMASetup(void)
{

    //Assigning DMA to SPI Channels
    DMA_enableModule();
    DMA_setControlBase(controlTable);


    DMA_assignChannel(DMA_CH0_EUSCIB0TX0);
    DMA_assignChannel(DMA_CH1_EUSCIB0RX0);
    DMA_assignChannel(DMA_CH6_EXTERNALPIN);

    DMA_disableChannelAttribute(DMA_CH6_EXTERNALPIN,UDMA_ATTR_ALTSELECT | UDMA_ATTR_USEBURST |UDMA_ATTR_HIGH_PRIORITY |UDMA_ATTR_REQMASK);

    // Setup the TX transfer characteristics & buffers
    DMA_setChannelControl( DMA_CH6_EXTERNALPIN | UDMA_PRI_SELECT,UDMA_SIZE_32 | UDMA_SRC_INC_NONE | UDMA_DST_INC_32 | UDMA_ARB_1);
    DMA_setChannelTransfer(DMA_CH6_EXTERNALPIN | UDMA_PRI_SELECT,UDMA_MODE_BASIC, data_array,(void *) MAP_SPI_getTransmitBufferAddressForDMA(EUSCI_B0_BASE), 4);

    DMA_setChannelControl (DMA_CH0_EUSCIB0TX0 | UDMA_PRI_SELECT,UDMA_SIZE_32 | UDMA_SRC_INC_NONE | UDMA_DST_INC_32 | UDMA_ARB_1);
    DMA_setChannelTransfer(DMA_CH0_EUSCIB0TX0 | UDMA_PRI_SELECT,UDMA_MODE_BASIC, data_array,(void *) MAP_SPI_getTransmitBufferAddressForDMA(EUSCI_B0_BASE),3);

    DMA_setChannelControl (DMA_CH1_EUSCIB0RX0 | UDMA_PRI_SELECT,UDMA_SIZE_32 | UDMA_SRC_INC_NONE | UDMA_DST_INC_32 | UDMA_ARB_1);
    DMA_setChannelTransfer(DMA_CH1_EUSCIB0RX0 | UDMA_PRI_SELECT,UDMA_MODE_PINGPONG,(void *) MAP_SPI_getReceiveBufferAddressForDMA(EUSCI_B0_BASE),data_array1,SAMPLE_LENGTH);

    DMA_setChannelControl (DMA_CH1_EUSCIB0RX0 | UDMA_PRI_SELECT,UDMA_SIZE_32 | UDMA_SRC_INC_NONE | UDMA_DST_INC_32 | UDMA_ARB_1);
    DMA_setChannelTransfer(DMA_CH1_EUSCIB0RX0 | UDMA_PRI_SELECT,UDMA_MODE_PINGPONG,(void *) MAP_SPI_getReceiveBufferAddressForDMA(EUSCI_B0_BASE),data_array2,SAMPLE_LENGTH);

    DMA_assignInterrupt(DMA_INT1, 6);
    DMA_clearInterruptFlag(INT_DMA_INT1);
    DMA_clearInterruptFlag(6);

    Interrupt_enableInterrupt(DMA_INT1);
    Interrupt_enableMaster();
    DMA_enableChannel(6);
    DMA_enableChannel(0);
    DMA_enableChannel(1);
}

And here is my DMA INT:

void DMA_INT1_IRQHandler(void)
{
    DMA_clearInterruptFlag(6);
    /* Switch between primary and alternate bufferes with DMA's PingPong mode */
    if (DMA_getChannelAttribute(6) & UDMA_ATTR_ALTSELECT)
    {
        DMA_setChannelControl(UDMA_PRI_SELECT  | DMA_CH1_EUSCIB0RX0,UDMA_SIZE_32 | UDMA_SRC_INC_NONE | UDMA_DST_INC_32 | UDMA_ARB_1);
        DMA_setChannelTransfer(UDMA_PRI_SELECT | DMA_CH1_EUSCIB0RX0,UDMA_MODE_PINGPONG, (void*)MAP_SPI_getReceiveBufferAddressForDMA(EUSCI_B0_BASE),data_array1, SAMPLE_LENGTH);
        switch_data = 1;
    }
    else
    {
        DMA_setChannelControl(UDMA_ALT_SELECT | DMA_CH1_EUSCIB0RX0,UDMA_SIZE_32 | UDMA_SRC_INC_NONE | UDMA_DST_INC_32 | UDMA_ARB_1);
        DMA_setChannelTransfer(UDMA_ALT_SELECT | DMA_CH1_EUSCIB0RX0,UDMA_MODE_PINGPONG, (void*)MAP_SPI_getReceiveBufferAddressForDMA(EUSCI_B0_BASE),data_array2, SAMPLE_LENGTH);
        switch_data = 0;
    }
}

CCS/MSP430FR5994: Remove a character from UART stream

$
0
0

Part Number:MSP430FR5994

Tool/software: Code Composer Studio

Hello,

I have connected my MSP430FR5994-LP to a sensor which can send data via UART. As mentioned in its datasheet "The output is an ASCII capital “R”, followed by four ASCII character digits representing the range in millimeters, followed by a carriage return (ASCII 13)." I have tested it, I receive an "R"when i acquire the data. How can I remove letter "R" from it? Can I use the remaining information to do some averaging on it?

Regards,

Prudhvi Sagar


RTOS/MSP432E411Y: How to enable hardware averaging

$
0
0

Part Number:MSP432E411Y

Tool/software: TI-RTOS

Dear Ti-Expert,

I try to learn how to use the "TI Driver" for the ADCs of an MSP432E411Y.

There are quite some examples in TiREX' SimpleLink path und doxygen documention like ADCBuf and ADCBufMSP432E4, but I couldn't find, how to use the "Hardware Sample Averaging Circuit".

Is it supported by "TI Driver"?

If not:The driverlib seems to offer a function called "ADCHardwareOversampleConfigure". Can I use it instead? How to use it in the "TI Driver" context?

MSP432E401Y: Generating IGBT gating sequences with Driverlib functions and the PWM module on the MSP432E401Y Launchpad

$
0
0

Part Number:MSP432E401Y

Currently trying out the MSP432E401Y launchpad. and 1 would like to have some code help using non-RTOS  driverlib functions to implement 

2 separate IGBT gate triggering examples . Looking at the current SDK examples, i have not found a similar one to meet my needs

Example 1) 

I have 3 half-bridge IGBTs. I will label the gate pairs  G1-G2, G3-G4, G5-G6

The following  6-step pattern should be repeated.

With the full 6 steps corresponding to 1 period

G6G5G4G3G2G1
Step 1011001
Step 2101001
Step 3100101
Step 4100110
Step 5010110
Step 6011010

 Naturally I will have to insert a deadtime at the 'switch-over' point of each half bridge pair.

All the output waveforms will need to be synchronized and also note the 120 degrees (1/3 period) phase shift of each 

of the gating signal pairs among the half-bridges. E.g G1-G3-G5 have a 12 degree (1/3 period phase shift).

Example 2

I have 4 full-bridge IGBTs. I will label the triggering  pairs for eaach full-bridge IGBT,  T1-T2, T3-T4, T5-T6  T7-T8

The following  8-step pattern should be repeated. With the full 8 steps corresponding to 1 period .

So each trigger will have a 1/8 duty cycle but synchronized and delayed from the previous by about 1/8 of a period.

I will have to insert a deadband between each step.

T8T7T6T5T4T3T2T1
Step 100000001
Step 200000010
Step 300000100
Step 400001000
Step 500010000
Step 600100000
Step 701000000
Step 810000000

Thanks

David Nyarko

Compiler/MSP430FR6989: Constant voltage reference on physical pin for NTC sensor

$
0
0

Part Number:MSP430FR6989

Tool/software: TI C/C++ Compiler

Hello,

please visit my old TI forum post related to same topic :

https://e2e.ti.com/support/microcontrollers/msp430/f/166/t/696279

Please refer below schematic :

I'm use Energia IDE.I want a static Vref constant internal voltage for NTC and NTC working on coin cell.

I refer link : energia.nu/.../ . But on physical P1.1 pin didn't get any reference voltages.

So,How could I generate Internal reference and check physically on reference pin P1.1(Vref+) ?

and Internal reference means it generate internal reference for ADC or we can check voltage physically on respective pin P1.1? Please clarify this confusion.

Thank you.

Regards,

Pratik

MSP432E401Y: Is there a MSP-EXP432E401Y pinmux file available?

Compiler/MSP430F2274: How to place an array at a specific memory location that is provided from a variable?

$
0
0

Part Number:MSP430F2274

Tool/software: TI C/C++ Compiler

For an embedded system project, an array is supposed to be placed in RAM. I have split the device's RAM into two sections, one which stores globals and other data, and another section, RAM_DATA, which I wish to store two arrays (a source location and a destination location).

There is a global value mem_val that is set to the start of the RAM_DATA address, and now wanted to make the source array begin at the location which is stored held in location.

From what I have garnered from online sources, they utilize the stdint.h header file to use uintptr_t and uint32_t values to set start of the array. When debugging the program, the array does not start at this value, and was inquiring about how to fix this problem. Here is some code that is relevant to the question.

volatile uintptr_t mem_val = 0x0219;

 int main(void)
 {
      char cur_loc[128];
      uint32_t *cur_loc = (void *)mem_val;
      ...
      return 0;
 }

Obviously there is something wrong with the array initialization and then making it pointer, but beyond that, is there a method of making the array cur_loc begin at the value given to mem_val?

CCS/MSP430FR5994: Unable average the data from arduino

$
0
0

Part Number:MSP430FR5994

Tool/software: Code Composer Studio

Hello,

I am using MSP430FR5994 LP. I am receiving data from Arduino every 3 seconds. After every 10 readings I am planning to take an average and store it in the FRAM. After 10 such data in FRAM I am pushing the data through MSP430 CCS serial monitor via UART. I am unable to make my code work. Kindly help me.

Regards,

Prudhvi Sagar

#include <msp430.h>
#include <stdio.h>
#include <stdint.h>

#define WRITE_SIZE      10//128
//void FRAMWrite(void);

#pragma PERSISTENT(FRAM_write)
unsigned long FRAM_write[WRITE_SIZE] = {0};

unsigned char count = 0;
volatile unsigned char TXData = 1;
long datanow[10] = {0};
long data;
int d = 0;
int k = 0;
long avge = 0;
//******************************************************************************
// Pin Config ******************************************************************
//******************************************************************************

#define LED_OUT     P1OUT
#define LED_DIR     P1DIR
#define LED0_PIN    BIT0
#define LED1_PIN    BIT1


//******************************************************************************
// UART Initialization *********************************************************
//******************************************************************************

#define SMCLK_115200     0
#define SMCLK_9600      1
#define ACLK_9600       2

#define UART_MODE       SMCLK_9600

void initUART()
{
    // Configure USCI_A3 for UART mode
    UCA0CTLW0 = UCSWRST;                      // Put eUSCI in reset

#if UART_MODE == SMCLK_115200

    UCA0CTLW0 |= UCSSEL__SMCLK;               // CLK = SMCLK

    // Baud Rate Setting
    // Use Table 30-5 in Family User Guide
    UCA0BR0 = 8;
    UCA0BR1 = 0;
    UCA0MCTLW |= UCOS16 | UCBRF_10 | 0xF700;   //0xF700 is UCBRSx = 0xF7

#elif UART_MODE == SMCLK_9600

    UCA0CTLW0 |= UCSSEL__SMCLK;               // CLK = SMCLK

    // Baud Rate Setting
    // Use Table 30-5 in Family User Guide
    UCA0BR0 = 104;
    UCA0BR1 = 0;
    UCA0MCTLW |= UCOS16 | UCBRF_2 | 0xD600;   //0xD600 is UCBRSx = 0xD6

#elif UART_MODE == ACLK_9600

    UCA0CTLW0 |= UCSSEL__ACLK;               // CLK = ACLK
    // Baud Rate calculation
    // 32768/(9600) = 3.4133
    // Fractional portion = 0.4133
    // Use Table 24-5 in Family User Guide
    UCA0BR0 = 3;                             // 32768/9600
    UCA0BR1 = 0;
    UCA0MCTLW |= 0x9200;    //0x9200 is UCBRSx = 0x92

#else
    # error "Please specify baud rate to 115200 or 9600"
#endif

    UCA0CTLW0 &= ~UCSWRST;                    // Initialize eUSCI
    UCA0IE |= UCRXIE;                         // Enable USCI_A3 RX interrupt

    // Configure USCI_A3 for UART mode
        UCA3CTLW0 = UCSWRST;                      // Put eUSCI in reset

    #if UART_MODE == SMCLK_115200

        UCA3CTLW0 |= UCSSEL__SMCLK;               // CLK = SMCLK

        // Baud Rate Setting
        // Use Table 30-5 in Family User Guide
        UCA3BR0 = 8;
        UCA3BR1 = 0;
        UCA3MCTLW |= UCOS16 | UCBRF_10 | 0xF700;   //0xF700 is UCBRSx = 0xF7

    #elif UART_MODE == SMCLK_9600

        UCA3CTLW0 |= UCSSEL__SMCLK;               // CLK = SMCLK

        // Baud Rate Setting
        // Use Table 30-5 in Family User Guide
        UCA3BR0 = 104;
        UCA3BR1 = 0;
        UCA3MCTLW |= UCOS16 | UCBRF_2 | 0xD600;   //0xD600 is UCBRSx = 0xD6

    #elif UART_MODE == ACLK_9600

        UCA3CTLW0 |= UCSSEL__ACLK;               // CLK = ACLK
        // Baud Rate calculation
        // 32768/(9600) = 3.4133
        // Fractional portion = 0.4133
        // Use Table 24-5 in Family User Guide
        UCA3BR0 = 3;                             // 32768/9600
        UCA3BR1 = 0;
        UCA3MCTLW |= 0x9200;    //0x9200 is UCBRSx = 0x92

    #else
        # error "Please specify baud rate to 115200 or 9600"
    #endif

        UCA3CTLW0 &= ~UCSWRST;                    // Initialize eUSCI
        UCA3IE |= UCRXIE;                         // Enable USCI_A3 RX interrupt
}

//******************************************************************************
// Device Initialization *******************************************************
//******************************************************************************

void initGPIO()
{
    //LEDs
    LED_DIR |= LED0_PIN | LED1_PIN;
    LED_OUT &= ~(LED0_PIN | LED1_PIN);         // turn off LEDs

    // Configure UART
   // P2SEL1 &= ~(BIT0 | BIT1);                 //0 USCI_A3 UART operation
   // P2SEL0 |= BIT0 | BIT1;

    P2SEL1 |= BIT0 | BIT1;                 //1 USCI_A0 UART operation
    P2SEL0 &= ~(BIT0 | BIT1);                      //0

    // Configure UART
      P6SEL1 &= ~(BIT0 | BIT1);                 // USCI_A3 UART operation
      P6SEL0 |= BIT0 | BIT1;

    // Configure PJ.5 PJ.4 for external crystal oscillator
    PJSEL0 |= BIT4 | BIT5;                    // For XT1

    // Disable the GPIO power-on default high-impedance mode to activate
    // previously configured port settings
    PM5CTL0 &= ~LOCKLPM5;
}

void sensor_reading(long data)
{
    int c = 0;
    int t = 0;

    datanow[d] = data;

    //First 10 data are averaged.....then stored in FRAM......When FRAM reaches 10 sends back received data (HAS TO SEND ALL DATA)
    if(d == 9)          //Enters only after 10 UART messages
    {
        for(c = 0; c < 10 ; c++)
            {
             avge = avge + datanow[c];
             if(c == 9)             //enters every 10 UART message
                 {avge = (avge/10);
                  P1OUT ^= BIT0;        //Check
                  FRAM_write[k] = avge;
                  k++;                  //Adds upto one every 10 messages
                  if(k == 9)
                  {
                      for (t = 0; t < 9; t++)
                                 {
                                     P1OUT ^= BIT0;
                                     UCA0TXBUF = FRAM_write[t];    //giving data for single digit numbers....if want for full nuber should do for every digit
                                     __delay_cycles(1400);
                                 }
                      k = 0;
                  }
                  avge = 0;
                  }
            }
        d = 0;
    }

}
void initClockTo16MHz()
{
    // Configure one FRAM waitstate as required by the device datasheet for MCLK
    // operation beyond 8MHz _before_ configuring the clock system.
    FRCTL0 = FRCTLPW | NWAITS_1;

    // Clock System Setup
    CSCTL0_H = CSKEY_H;                     // Unlock CS registers
    CSCTL1 = DCOFSEL_0;                     // Set DCO to 1MHz
    // Set SMCLK = MCLK = DCO, ACLK = LFXTCLK (VLOCLK if unavailable)
    CSCTL2 = SELA__LFXTCLK | SELS__DCOCLK | SELM__DCOCLK;
    // Per Device Errata set divider to 4 before changing frequency to
    // prevent out of spec operation from overshoot transient
    CSCTL3 = DIVA__4 | DIVS__4 | DIVM__4;   // Set all corresponding clk sources to divide by 4 for errata
    CSCTL1 = DCOFSEL_4 | DCORSEL;           // Set DCO to 16MHz
    // Delay by ~10us to let DCO settle. 60 cycles = 20 cycles buffer + (10us / (1/4MHz))
    __delay_cycles(60);
    CSCTL3 = DIVA__1 | DIVS__1 | DIVM__1;   // Set all dividers to 1 for 16MHz operation

    CSCTL4 &= ~LFXTOFF;
    do
    {
    CSCTL5 &= ~LFXTOFFG;                      // Clear XT1 fault flag
    SFRIFG1 &= ~OFIFG;
    }while (SFRIFG1&OFIFG);                   // Test oscillator fault flag

    CSCTL0_H = 0;                             // Lock CS registerss
}

//******************************************************************************
// Main ************************************************************************
// Enters LPM0 if SMCLK is used and waits for UART interrupts. If ACLK is used *
// then the device will enter LPM3 mode instead. The UART RX interrupt handles *
// the received character and echoes it.                                       *
//******************************************************************************

int main(void)
{
  WDTCTL = WDTPW | WDTHOLD;                 // Stop Watchdog
  //int d = 0;
  initGPIO();
  initClockTo16MHz();
  initUART();
  P1OUT &= ~BIT0;                         // Clear P1.0 output latch for a defined power-on state
  P1DIR |= BIT0;
  printf("Hello World");// Set P1.0 to output direction
  //UCA0TXBUF = '7';
//  while(!(UCA0IFG & UCTXIFG));
//         UCA0TXBUF = TXData;                 // Load data onto buffer

#if UART_MODE == ACLK_9600
    __bis_SR_register(LPM3_bits + GIE);       // Since ACLK is source, enter LPM3, interrupts enabled
#else
    __bis_SR_register(LPM0_bits + GIE);       // Since SMCLK is source, enter LPM0, interrupts enabled
#endif
  __no_operation();                         // For debugger
}

//******************************************************************************
// UART Interrupt ***********************************************************
//******************************************************************************

#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector=USCI_A3_VECTOR
__interrupt void USCI_A3_ISR(void)
#elif defined(__GNUC__)
void __attribute__ ((interrupt(USCI_A3_VECTOR))) USCI_A3_ISR (void)
#else
#error Compiler not supported!
#endif
{
  switch(__even_in_range(UCA3IV, USCI_UART_UCTXCPTIFG))
  {
    case USCI_NONE: break;
    case USCI_UART_UCRXIFG:
      while(!(UCA3IFG&UCTXIFG));
      UCA0TXBUF = UCA3RXBUF;
      sensor_reading(UCA3RXBUF);
      d++;                              //Counter for UART data
     __no_operation();
      break;
    case USCI_UART_UCTXIFG: break;
    case USCI_UART_UCSTTIFG: break;
    case USCI_UART_UCTXCPTIFG: break;
  }
}

MSP432P401R: On the MSP432P401R: Detected uninitialized port X in the project. Recommend initializing all unused ports to eliminate wasted current consumption

$
0
0

Part Number:MSP432P401R

Hi,

When I run my code via CCS, I notice the following ULP Advices.

(ULP 4.1) Detected uninitialized port X in the project. Recommend initializing all unused ports to eliminate wasted current consumption on unused pins. null  .
[X varies from 1 to 10] .

However, I have the following snippet at the start of my code.  Could someone please tell me if I am doing something wrong here while disabling the ports ?

MAP_GPIO_setAsOutputPin(GPIO_PORT_P1, PIN_ALL8);
        MAP_GPIO_setAsOutputPin(GPIO_PORT_P2, PIN_ALL8);
        MAP_GPIO_setAsOutputPin(GPIO_PORT_PB, PIN_ALL16);
        MAP_GPIO_setAsOutputPin(GPIO_PORT_PC, PIN_ALL16);
        MAP_GPIO_setAsOutputPin(GPIO_PORT_PD, PIN_ALL16);
        MAP_GPIO_setAsOutputPin(GPIO_PORT_PE, PIN_ALL16);
        MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P1, PIN_ALL8);
        MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P2, PIN_ALL8);
        MAP_GPIO_setOutputLowOnPin(GPIO_PORT_PB, PIN_ALL16);
        MAP_GPIO_setOutputLowOnPin(GPIO_PORT_PC, PIN_ALL16);
        MAP_GPIO_setOutputLowOnPin(GPIO_PORT_PD, PIN_ALL16);
        MAP_GPIO_setOutputLowOnPin(GPIO_PORT_PE, PIN_ALL16);

Thanks!


CCS/MSP430FR5989: How to move sprintf function into RAM in linker option of Code Composer

$
0
0

Part Number:MSP430FR5989

Tool/software: Code Composer Studio

Hi,

I have a short simple question. According to ULP5.3, I try to move function sprintf() into RAM. I created into lnk_msp430fr5989.cmd two sections

    RAM_EXECUTE             : origin = 0x1C00, length = 0x0200
    RAM                                  : origin = 0x1E00, length = 0x0600

and

    FRAM                                  : origin = 0x4400, length = 0xBB80
    FLASH_EXECUTE           : origin = 0x10000,length = 0x0200
    FRAM2                                : origin = 0x10200,length = 0x13E00

At this point, everything compiled well.

So the question is how to define and where in Code Composer Studio built-in function like sprintf() into RAM (RAM_EXECUTE) in liker section.

Best Regards

RTOS/MSP432P401R: MSP432P401R PWM OUTPINS do not work

$
0
0

Part Number:MSP432P401R

Tool/software: TI-RTOS

I downloaded the example pwmled_MSP_EXP432P401R_TI_MSP432P401R using Code Composer  I studied the code and from what I read I could change the Output PIn for PWM by changing pin and port in the file MSP_EXP432P401R.c  structure PWMTimerMSP432_HWAttrv1 but it doesn't work. I'm new to code composer and MSP432p401R but I feel this should had worked can someone guide me to the right direction       (Please visit the site to view this file)(Please visit the site to view this file)

CCS/MSP430F6723A: Error to write FLASH memory

$
0
0

Part Number:MSP430F6723A

Tool/software: Code Composer Studio

Hi, all,

A software developper said he can not write to MSP430F6723A Flash memory thru JTAG.

In recent days, he tried to write to Flash thru MSP-FET and found error message while MSP430F6723A was in LPM3.5.

He could write with same equipments in last year.

Some configurations were changed by update process?

Please teach me the check-points of CCS to write MSP while it's in LPMx.5.

B.R.

Massa

MSP430FR2311: now to user defined memory area to download code by MSP GANG

$
0
0

Part Number:MSP430FR2311

dear all,

i need to use memory option function in MSP GANG GUI, as below picture. but i found it didn't work. for example, i storage some data at the begin of first 0x100 area(address from 0xF100 to 0xF1FF), and at second download, i set the main main memory from 0xF200, but i found the data was erased. i notice no description about this application in MSP GANG guide. 

do we have some guide to teach this application? or where's my error? thanks so much. 

MSP430FR5949: MSP430FR5949 Burning tool

Viewing all 21955 articles
Browse latest View live