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

MSP430F5438A: MSP430F5438A

$
0
0

Part Number:MSP430F5438A

Hello,

I have a simple question. Is it possible to program MSP430 with Asset PCI-410 over 4-wire JTAG ports. 

Thanks.


RTOS/MSP432E401Y: MSP432E401Y OTA

$
0
0

Part Number:MSP432E401Y

Tool/software: TI-RTOS

Hi,

I am using MSP432E401Y launchpad. I am  trying to download the file with OTA method.

But i can't find any detail or document in this board. And I found lots of document of BOOTP in MSP432E4 series.

Someone uses this method to update firmware but this method not support for MSP432E401Y board.

Could any one help me get some information? Or any one could tell me some method that I can try?

thanks.

regards,
Mason

MSP430FR6972: MAIN memory is corrupted

$
0
0

Part Number:MSP430FR6972

Hello!

We installed product programmed by MSP430FR6972 about 800ea.

All device is installed in field, but the FRAM corruption is ocurred in 5ea device.

The problem is that the FRAM is initialized, like unprogrammed. When I dumped MAIN Memory using MSPFlasher, the all the data is 0xFF.

I wonder why this problem is occuered.

I research for this problem, it can be caused by low Vcc, but when I checked our battery data, it seems there is no problem in Vcc.

Also, FRAM R/W can be a cause of this problem, but we didn't R/W FRAM during process, only using FRAM for Programmed by CCS.

 

MSP-EXP430FR5994: SD card not working when .bss section moved to FRAM

$
0
0

Part Number:MSP-EXP430FR5994

Hi,

  It seems that the Out-of-Box example SD card access section stops working if I set the .bss section to FRAM from existing setting of RAM. By stop working, I mean that once you call functions like SDCardLib_detectCard(), fopen(), etc the function never returns. Anyone has any idea why this might happen? I am trying to move the entire .bss section to FRAM instead of RAM.

  '.bss        : {} > FRAM' -> in .cmd file

-

Thanks

-

Regards

Soumyajit

 

CCS/MSP430FR2532: Baud rate issue

$
0
0

Part Number:MSP430FR2532

Tool/software: Code Composer Studio

Hi all,

I have a project with MSP430FR2532 that will need to use UART at baud rate of 57600 because the default baud rate of the other side is at 57600. During development, communication between MSP430FR2532 and FTDI USB-UART adapter (FT232R) works perfectly fine at 9600, 19200, 38400. But once I increased baud rate to 57600, message sent from FR2532 to FT232R can always be recognized, but message sent back from FT232R to MSP430 is corrupted from time to time, particularly the first chunk of message, usually first 10 bytes or so.

The following is code I used to initialize clock and UART

// Setup clock
__bis_SR_register(SCG0);                 // disable FLL
CSCTL3 |= SELREF__REFOCLK;               // Set REFO as FLL reference source
CSCTL0 = 0;                              // clear DCO and MOD registers
CSCTL1 &= ~(DCORSEL_7);                  // Clear DCO frequency select bits first
CSCTL1 |= DCORSEL_3;                     // Set DCO = 8MHz
CSCTL2 = FLLD_0 + 242;                   // DCODIV = 8MHz
__delay_cycles(3);
__bic_SR_register(SCG0);                 // enable FLL
while(CSCTL7 & (FLLUNLOCK0 | FLLUNLOCK1)); // Poll until FLL is locked
CSCTL4 = SELMS__DCOCLKDIV | SELA__REFOCLK; // set default REFO(~32768Hz) as ACLK source, ACLK = 32768Hz, default DCODIV as MCLK and SMCLK source

// Initialize UART1
UCA1CTLW0 |= UCSWRST;
UCA1CTLW0 |= UCSSEL__SMCLK;

// Baud Rate calculation
// 8000000/57600 = 138.889
// OS16 = 1, UCBR1 = 8, UCBRF1 = 10
// Fractional portion = 0.889
// User's Guide Table 21-4: UCBRSx = 0xF7
UCA1BR0 = 8;                               // 8000000/57600/16
UCA1BR1 = 0x00;
UCA1MCTLW = 0xF700 | UCOS16 | UCBRF_10;
UCA1CTLW0 &= ~UCSWRST;                      // Initialize eUSCI
UCA1IE |= UCRXIE;                           // Enable USCI_A1 RX interrupt

Not sure if it is related, MCU will stay in LPM3, wake up either every 100ms or one message is received from UART1/FT232R.

What could I be missing here? Some other posts reported FR2532 works just fine at 57600 or even at 115200.

MSP430FR2633: ESD Questions and Allowable Maximum parasitic cap on my PCBA

$
0
0

Part Number:MSP430FR2633

Hi,

We're evaluate the SPEC of MSP430FR2633's captivate, some questions need TI's help, thanks.

1. this produce will do an extremelly high voltage ESD test, this product allowed function crash during the high ESD test, but can't burn crash the MCU, so we'll add resistor on the path of touch pad to MCU PIN, what's the maximum value of the resistor i can add? if adding the resistor to prevent the MCU burn crash by ESD, what's the side effect?

2. if MSP430FR2633 get function crash by ESD, will it recovery automatically? or need HW RESET to recovery it?

3. my PCBA is made done, but each of the touch channel has 50pF parasitic cap, by this case, can MSP430FR2633 recognize the touch event?

4. if my customer don't want to install CDC, where can download the Captivate design guide?

MSP430 what happens during runtime when a random flash memory is written

$
0
0

Hello,

simple question, what happens to my MSP430 if i coded something silly, like writing a value into a const?

Does this trigger maybe some statistical error, or does it corrupt my device, or doesnt it do anything since it is not possible to do so?

I did code some mess, so here it comes:

char* const firmware= "1.0";

In my code this seemed to put the string into the flash, so this is what i wanted.

Then later in my code I accidently read out this value again from some external memory chip, and write it to the const pointer, is that a violation or not?

read_EEPROM(x,y); ->  firmware:

something like this is then happening further down in the code:

and the TI_receive_field = firmware;

            *TI_receive_field = UCB0RXBUF;

So in a very artistic and stupid way I managed to get lost in coding and write a value into a const value, which of course is forbidden.

Now during debugging, this was never an issue, and probably it is not until this day, but now that I got hold of it, I really wonder, what is happening there?

Is the COdecomposer himself and the linker optimizing my troubles away, so that it never occurs, it simply ignores my code?

I tried to debug it, and I can look into my memory of the MSP430,

I see everything, I am working in the Flash memory sector, and I can manually write into it too during debug, but now that I write I wonder because Flash should of course only be manipulated from 1 -> 0 and not back any more, am I right?

Hmm anyway, maybe someone has an nice answer, thanks a lot.

cheers.

CCS/EVM430-FR6047: DEBUG WARNING

$
0
0

Part Number:EVM430-FR6047

Tool/software: Code Composer Studio

Hi,

I am facing an issue while debugging the code using an evaluation board EVM430-FR6047(REVISION A) with code composer studio. It is always showing a warning.

WARNING - Earlier version of silicon detected. 

Can you please help me to resolve this issue?


CCS/MSP430FR2355: CCS/MSP430FR2355

$
0
0

Part Number:MSP430FR2355

Tool/software: Code Composer Studio

I just want to plot ADC data in the Excel but I am not able to plot the data in the Excel.I am getting ADC data in the PC in RealTerm but when I start capturing ADC data with csv file then hundreds of data are collected without any space but I want to place all these data in a single column so that  I can plot these data in the Excel.Could u tell me where I am making mistakes in the programs:-

#include <msp430.h>
void init_uart();
unsigned  long int ADC_Result;
unsigned int a,b;
int main(void)
{
    WDTCTL = WDTPW | WDTHOLD;                                // Stop WDT
    init_uart();
    // Configure GPIO
    P1DIR |= BIT0;                                           // Set P1.0/LED to output direction
    P1OUT &= ~BIT0;                                          // P1.0 LED off

    // Configure ADC A1 pin
    P1SEL0 |= BIT1;
    P1SEL1 |= BIT1;

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

    // Configure ADC12
    ADCCTL0 |= ADCSHT_2 | ADCON;                             // ADCON, S&H=16 ADC clks
    ADCCTL1 |= ADCSHP;                                       // ADCCLK = MODOSC; sampling timer
    ADCCTL2 &= ~ADCRES;                                      // clear ADCRES in ADCCTL
    ADCCTL2 |=ADCRES_2;
    ADCMCTL0 |= ADCINCH_1;                                   // A1 ADC input select; Vref=AVCC
    ADCIE |= ADCIE0;                                         // Enable ADC conv complete interrupt

    while(1)
    {
     while(ADCCTL1 & ADCBUSY);                                // Wait if ADC core is active
     ADCCTL0 |= ADCENC | ADCSC;                           // Sampling and conversion start
     __bis_SR_register(LPM0_bits | GIE);                  // LPM0, ADC_ISR will force exit
     __no_operation(); // For debug only
     while (!(UCA0IFG & UCTXIFG));          // wait for USCI_A0 TX buffer to ready
     UCA0TXBUF=b;
     while (!(UCA0IFG & UCTXIFG));          // wait for USCI_A0 TX buffer to ready
     UCA0TXBUF=a;
     if (ADC_Result < 0x3FF)
        P1OUT &= ~BIT0;                                  // Clear P1.0 LED off
     else
        P1OUT |= BIT0;                                   // Set P1.0 LED on
     __delay_cycles(5000);
    }
}
void init_uart()
{
    // Configure UART pins
    P1SEL0 |= BIT6 | BIT7;                    // set 2-UART pin as second function
    // Configure UART
    UCA0CTLW0 |= UCSWRST;                     //Sets softare reset enable
    UCA0CTLW0 |= UCSSEL__SMCLK;               // Set SMCLK as BRCLK to be used for baud rate of 115200
                                             // Baud Rate calculation. Setting BaudRate to 115200
    UCA0BR0 = 8;                              // 1000000/115200 = 8.68 INT(N) = 8
    UCA0MCTLW = 0xD600;                       // 1000000/115200 - INT(1000000/115200)=0.68
    UCA0BR1 = 0x00;                              // UCBRSx value = 0xD6
    UCA0CTLW0 &= ~UCSWRST;                    // Initialize eUSCI
}
// ADC interrupt service routine
#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector=ADC_VECTOR
__interrupt void ADC_ISR(void)
#elif defined(__GNUC__)
void __attribute__ ((interrupt(ADC_VECTOR))) ADC_ISR (void)
#else
#error Compiler not supported!
#endif
{
    switch(__even_in_range(ADCIV,ADCIV_ADCIFG))
    {
        case ADCIV_NONE:
            break;
        case ADCIV_ADCOVIFG:
            break;
        case ADCIV_ADCTOVIFG:
            break;
        case ADCIV_ADCHIIFG:
            break;
        case ADCIV_ADCLOIFG:
            break;
        case ADCIV_ADCINIFG:
            break;
        case ADCIV_ADCIFG:
            ADC_Result = ADCMEM0;
            a=(ADC_Result & 0x00FF);
            b=(ADC_Result & 0xFF00)>>8;
            __bic_SR_register_on_exit(LPM0_bits);            // Clear CPUOFF bit from LPM0
            break;
        default:
            break;
    }
}

How could I resolved this issues and kind of necessary change are required to get in the  single column order?

MSP432P401R: SPI and DMA

$
0
0

Part Number:MSP432P401R

Hello,

I want to transfer some data from RAM to one of the SPI interfaces, which is connected to a DAC.

The DAC expects 24 bits without de-asserting the CS line in between. Currently I generate the CS line manually with a GPIO pin.

To speed up the whole process, I want to use a DMA  transfer. I have worked on the given SPI and DMA template but everytime I am getting nothing for running this exsmple. I expect that DMA should be triggered by SPI for every one byte and data should be shifted from one memory location to mentioned destination memoey location.

My question (before starting to dig into the DMA documentation in more depth):

- What is reason that I am getting nothing for output (I think spi is unable to trigger the DMA)  ??

-As DAC does not have any memory resister , what can be destination memory address ?? (As data is always being stored in MSP432 but I am not understanding how to find that destination memory address)

Any hint and help is very welcome!

CCS/MSP432E401Y: OTA update

$
0
0

Part Number:MSP432E401Y

Tool/software: Code Composer Studio

Hi,

I am using MSP432E401Y launchpad. I am trying to download the file with OTA method.

But i can't find any detail or document in this board. And I found lots of document of BOOTP in MSP432E4 series.

Someone uses this method to update firmware but this method not support for MSP432E401Y board.

Could any one help me get some information? Or any one could tell me some method that I can try?

thanks.

regards,
Mason

MSP430FR6047: ASQ_biasmux_ctl signal generation in Ultra low power bias mode + Timing related question + Receiver Buffer related question.

$
0
0

Part Number:MSP430FR6047

Hello,

As seen in the below timing diagram.

Q1: What causes the ASQ_biasmux_ctl signal to be enabled in Ultra low power bias mode?

Q2: What is the minimum possible READY state measurement time?

Q3: Does the DSP algorithm runs parallel to the READY state or after, or is it even possible to run the DSP algorithm parallelly?

Q4: What is the minimum number of samples possible in the receiver buffer? (considering the TI DSP algorithm for signal processing).  

Regards,

Mr. Jadhav

CCS/MSP430FR5969: Need help with code to transmit byte of data using Launchpad

$
0
0

Part Number:MSP430FR5969

Tool/software: Code Composer Studio

Hi,

my customer needs help debugging his snippet of code to successfully transmit a byte of data.

Please and thank you!

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

#include <msp430.h>

/**
* main.c
*/
volatile char received_ch = 0;
int main(void)
{
WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer
P1OUT |= BIT3; //Declaring SS Pin
P1DIR |= BIT3;
P1SEL1 = BIT6; //Enabling MOSI output P1.6 UCB0SIMO
P2SEL1 = BIT2; //Enabling CLK output P2.2 UCB0CLK

UCB0CTL1 = UCSWRST;
UCB0CTL0 |= UCMSB + UCMST + UCMODE_2 + UCSYNC;
UCB0CTL0 |= UCSSEL_2;// control register sets up SPI parameters for SPI mode etc.

UCB0BR0 |= 0x02; // /2
UCB0BR1 = 0;
//UCB0MCTL = 0; // No modulation??
UCB0CTL1 &= ~UCSWRST; // **Initialize USCI state machine**

P1OUT &= (~BIT3); //Select Device

while (!(IFG2 & UCB0TXIFG)); // USCI_B0 TX buffer ready?
UCB0TXBUF = 0xA1; // Send 0xA1 over SPI to PLL
while (!(IFG2 & UCB0RXIFG)); // USCI_B0 RX Received?
received_ch = UCB0RXBUF; // Store received data

P1OUT |= (BIT3); // Unselect PLL


return 0;
}

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

Thanks,
Kevin

RTOS/MSP432P401R: ADC sample voltage different than voltmeter

$
0
0

Part Number:MSP432P401R

Tool/software: TI-RTOS

Hi, 

I downloaded and started running an example called adcSingleChannel_MSP_EXP432P401R_TI in RTOS. However, if I build a voltage divider and ensure the voltage is under 2.5V (reference voltage in the code) the sampled voltage is just a tad off from the real voltage that I detect from the voltage divider. For example, the value was reading 1.78V with the voltmeter but was reading 1.63V through the ADC. Is there something I'm doing wrong? How could I correct this to be more accurate? 

Any insight is appreciated. 

Regards, 

Jenna

RTOS/MSP432E401Y: Question regarding USB TX/RX {ADDRn/Portn} registers

$
0
0

Part Number:MSP432E401Y

Tool/software: TI-RTOS

Greetings:

I am using the MSP432E4 and curious about something in the TRM. The USBTXHUBADDRn and USBTXHUBPORTn registers have different register addresses. However, the register addresses for the USBRXHUBADDRn and USBRXHUBPORTn overlap ( e.g. &USBRXHUBADDRn == &USBRXHUBPORTn ). This suggests that the hub port and hub address is only meaningful for TX operations.

Could someone explain these registers to me?

Thank you,

Michael Cress


Linux/MSP432E401Y: PPS output binary/digital mode questions

$
0
0

Part Number:MSP432E401Y

Tool/software: Linux

I am able to get a 1Hz PPS output from the PTP/1588 hardware. I am using digital-rollover mode and a 50ns time step.

However, when I try to get a 16.384 kHz output, I actually get 15.26 kHz. This appears to be a bug in the emac driver or the hardware, because it is suspiciously equal to: (1/(2*32.768e-6)) = 15.259 kHz. The documentation in emac.c occasionally gets "digital" and "binary" rollover modes mixed up, so I was wondering if this is a similar bug. It says the following:

//*****************************************************************************
//
//! Configures the Ethernet MAC PPS output in simple mode.
//!
//! \param ui32Base is the base address of the controller.
//! \param ui32FreqConfig determines the frequency of the output generated on
//! the PPS pin.
//!
//! This function configures the Ethernet MAC PPS (Pulse Per Second) engine to
//! operate in its simple mode which allows the generation of a few, fixed
//! frequencies and pulse widths on the PPS pin.  If more complex pulse
//! train generation is required, the MAC also provides a command-based
//! PPS control mode that can be selected by calling
//! EMACTimestampPPSCommandModeSet().
//!
//! The \e ui32FreqConfig parameter may take one of the following values:
//!
//! - \b EMAC_PPS_SINGLE_PULSE generates a single high pulse on the PPS
//! output once per second.  The pulse width is the same as the system clock
//! period.
//! - \b EMAC_PPS_1HZ generates a 1Hz signal on the PPS output.  This option
//! is not available if the system time subsecond counter is currently
//! configured to operate in binary rollover mode.
//! - \b EMAC_PPS_2HZ, \b EMAC_PPS_4HZ, \b EMAC_PPS_8HZ,
//!   \b EMAC_PPS_16HZ, \b EMAC_PPS_32HZ, \b EMAC_PPS_64HZ,
//!   \b EMAC_PPS_128HZ, \b EMAC_PPS_256HZ, \b EMAC_PPS_512HZ,
//!   \b EMAC_PPS_1024HZ, \b EMAC_PPS_2048HZ, \b EMAC_PPS_4096HZ,
//!   \b EMAC_PPS_8192HZ, \b EMAC_PPS_16384HZ generate the requested
//! frequency on the PPS output in both binary and digital rollover modes.
//! - \b EMAC_PPS_32768HZ generates a 32KHz signal on the PPS output.  This
//! option is not available if the system time subsecond counter is currently
//! configured to operate in digital rollover mode.
//!
//! Except when \b EMAC_PPS_SINGLE_PULSE is specified, the signal generated
//! on PPS has a duty cycle of 50% when binary rollover mode is used for the
//! system time subsecond count.  In digital mode, the output frequency
//! averages the value requested and is resynchronized each second.  For
//! example, if \b EMAC_PPS_4HZ is selected in digital rollover mode, the
//! output generates three clocks with 50 percent duty cycle and 268 ms
//! period followed by a fourth clock of 195 ms period, 134 ms low and 61 ms high.
//!
//! \return None.
//
//*****************************************************************************
void
EMACTimestampPPSSimpleModeSet(uint32_t ui32Base, uint32_t ui32FreqConfig) {...}

MSP-EXP430FR2355: Change the IO voltage in the launchPad ?

$
0
0

Part Number:MSP-EXP430FR2355

Hello,

 Would it be possible to change the IO voltage at 1.8[V] in the MSP430FR2355 Launch Pad ?

In the schematic, the power regulator (MSP102) says "Software Controlled DCDC converter" ?

Is the re-configure procedure available somewhere ?

MSP430F5438A: Data read and write from and to a file

$
0
0

Part Number:MSP430F5438A

Hello,

I have been trying to read a file containing 1000 signed data. The file is stored in a PC. I am using MSP430F5438A and my IDE is Code Composer Studio (CCS). In my code I am trying to read the 1000 data and do some processing and then finally I like to write those processed 1000 data in another file in the PC. How can I handle all of this? It looks like C type file read-write coding is not working here as the MSP430 doesn't have any file system. Anyone, please help if you know how to handle this. 

Thanks,

Row

MSP-EXP430FR2433: MSP430FRBoot Incorrect Baud Rate with Host Example

$
0
0

Part Number:MSP-EXP430FR2433

Hi, 

I'm having some baud rate issues with the MSP430FRBoot Host application. I have followed the directions exactly in document slaa721b.pdf, but my Saleae Logic analyzer calculates a baud rate which differs from that of the configuration in the example Host application. I am probing on the Host MCU Uart TX line header Pin 1.4.

I would also like to mention that I am having a similar experience with the Target application, and the baud rate is not consistent with that of the Host MCU. I have since eliminated the Target MCU completely, and am just investigating the baud rate discrepancy on the Host MCU.

The example code I am using has no changes from the zip file provided by TI. I have set the build configuration to TARGET_FR2433_UART_BSLBASED_16bit for both the Host and Target Apps.

Do you have any idea why the baud rate would differ from that of the configuration? I reviewed the register settings and they match the data sheet (slau445h.pdf) per the specified baud rate (57600).

I have attached the following items:

  • Saleae Logic Analyzer capture of the Host Tx Line
  • BSL_Custom.zip - an archive of my entire workspace directory
  • A picture of the MSP-EXP430FR2433 board that I'm using (Just to prove I'm using the platform I say I'm using).

(Please visit the site to view this file)

MSP430AFE221: none

$
0
0

Part Number:MSP430AFE221

sorry: I have no other way to communicate this problem.

I  am trying to use an old laptop (Lenovo w7), and I tried the whole day( yes)  to get to browse TI website from this computer, I always get " not secured" status and the TI webpage just won't work. . I have Norton's tool,...I have tried everything known to get TI site working without any luck. uninstall chrome, use ie( a disaster), disable Norton tools, on & on.

Yet all other websites I go to work!

What is in TI cookie or other stuff they do for this to happen on this laptop?

can someone transfer this to TI web  persons to find out what I can do to get it to work on this laptop?

-thnx

robin

Viewing all 22002 articles
Browse latest View live


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