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

CCS/MSP430I2040: MSP430I2040

$
0
0

Part Number: MSP430I2040

Tool/software: Code Composer Studio

Hello,

How can I test result of EMDC generated code loaded in MSP430i2040 EVM submetering ver1.2.

Is it request basis response on uart or it should send continuous data o/p on uart?

Will it show any data on E-meter mass calibration software?

LED on EVM should get blinked or not after programming?

Thanks,

Anuradha.


MSP432P401V: OTA update of MSP432 Firmware with CC3200/CC3220.

$
0
0

Part Number: MSP432P401V

Hi All,

I'm working on a project where I have 2 individual devices MSP432P4 and CC32xx(CC3200/ CC3220) running different host applications. I'm able to OTA update the firmware of CC32xx.

Is it possible to use CC32xx to OTA update the firmware of MSP432 Device? If yes, how it could be deployed?

Any help would be appreciated.

Regards,

Keshav Aggarwal

CCS/MSP430FR5994: Crypto BSL Encryptor GUI

$
0
0

Part Number: MSP430FR5994

Tool/software: Code Composer Studio

I'm in the process of implementing the Crypto BSL (SLAU657) code on an MSP430FR5994, and cannot find the "MSP BSL Encryptor GUI" referenced in the User's Guide. The guide states that "This tool's source code and Java executable is available from the Bootloader (BSL) for MSP low-power microcontrollers page" - but I cannot locate it - it does not seem to be included with the "Crypto_Bootloader" download package.

MSP432P401R: UART_write() execution during interrupt callback function stopping execution of code

$
0
0

Part Number: MSP432P401R

Hi, below is a snippet of the basic code I'm running.

void gpioButtonFxn0(uint_least8_t index)
{
    /* Clear the GPIO interrupt and toggle an LED */
    GPIO_toggle(Board_GPIO_LED0);

    res = ADC_convert(adc, &adcValue0);
    adcValue0MicroVolt = ADC_convertRawToMicroVolts(adc, adcValue0);
    printf("%d\n", adcValue0MicroVolt);

    UART_write(uart, &adcValue0MicroVolt, sizeof(adcValue0MicroVolt));
    printf("UART_write() finished\n");
}

/*
 *  ======== mainThread ========
 */
void *mainThread(void *arg0)
{
    /* Call driver init functions */
    GPIO_init();
    ADC_init();
    UART_init();
    // I2C_init();
    // SPI_init();
    // Watchdog_init();

    // initialiaze ADC
    ADC_Params_init(&params);
    adc = ADC_open(Board_ADC0, &params);

    if (adc == NULL) {
        printf("ADC_open() failed\n");
        while (1);
    }

    // initialize UART
    UART_Params_init(&uartParams);
    uartParams.writeMode = UART_MODE_CALLBACK;
    uartParams.writeDataMode = UART_DATA_BINARY;
    uartParams.readDataMode = UART_DATA_BINARY;
    uartParams.readReturnMode = UART_RETURN_FULL;
    uartParams.readEcho = UART_ECHO_OFF;
    uartParams.baudRate = 115200;

    uart = UART_open(Board_UART0, &uartParams);

    if (uart == NULL) {
        printf("UART_open() failed\n");
        while (1);
    }

    /* Turn on user LED */
    GPIO_write(Board_GPIO_LED0, Board_GPIO_LED_ON);

    /* Enable interrupts */
    GPIO_enableInt(Board_GPIO_6_1);

    while (1) {
        sleep(1);
        printf("In while loop...\n");
    }
}

If I comment out the UART_write() line in my callback function, I'm able to continuously toggle my LED and perform ADC conversions (at the same time, "In while loop..." keeps printing). However, with the UART_write() command, the execution of this code completely stops. I reach the printing "UART_write() finished" portion, but my code no longer executes. Does anyone know why this may be?

Regards,

Michael

MSP430FR5969: MSP430FR5969 and Spacewire

$
0
0

Part Number: MSP430FR5969

I need to send and receive slow-rate (<10 kHz) data via Spacewire.  Is there a Spacewire chip that I can use as a driver for the MSP430FR5969? 

CCS/MSP430F67791A: MSP430F67791A Custom BSL - Cannot start debug session - File Loader: Verification Failed: Values at address 0x00000 do not match Please verify target memory and memory map.

$
0
0

Part Number: MSP430F67791A

Tool/software: Code Composer Studio

Hi, I am trying to get a custom BSL working on the MSP430F67791A board. The project builds with warnings but no errors. When I try to debug the application on the board, I get the following error:

I stumbled upon this thread which has a similar issue to what I am having; however, the "On connect, erase main, information and IP protected area" option selected on the "Target" option as mentioned in the suggested answer is grayed out for me.

Any help on how to debug this issue is greatly appreciated.

MSP430FR2633: Only Getting 0xFF as Response After Issuing CMD0 for Micro SDHC, using SPI mode.

$
0
0

Part Number: MSP430FR2633

I am trying to initialize an sd card so that I can write some data to it that can be read at a later date. I don't need any special file system as I am only writing unsigned chars to the card. I am attaching the relevant code below:

Header File Definitions:


#define CS (P3DIR |= BIT1)// Set CS to Output
#define CS_H (P3OUT |= BIT1 ) //Sets CS to Inactive (Active Low)
#define CS_L (P3OUT |= ~BIT1) //Sets CS to Active (Active Low)
#define TX UCA1TXBUF //Tx Buffer
#define RX UCA1RXBUF //Rx Buffer
#define TX_READY (UCA1IFG & 0x0002) //0 when Busy, 1 When Ready
#define RX_READY (UCA1IFG & 0x0001) //0 When Empty, 1 when Full
#define SPI_SEND(x) UCA1TXBUF = x

// macro defines
#define HIGH(a) ((a>>8)&0xFF) //High byte from Word
#define LOW(a) (a&0xFF) //Low Byte from word


#define DUMMY 0xFF

//Commands 48 bits: [47]: Start (0) ; [46]: Tx bit (1) ; [45:40] CMD index; [39:8] Argument; [7:1] CRC7; [0]: end (1)
#define GO_IDLE_STATE 0x40 //Resets SD Memory Card (CMD0)
#define SEND_OP_COND 0x41 //Sends Host Capacity Support Information and activates the card's Init Process (CMD1)
#define SWITCH_FUN 0x46 //Checks Switchable function (mode 0) and switches card function (mode 1) (CMD6)
#define SEND_IF_COND 0x48 //Sends SD Mem card interface condition that includes host supply voltage information and asks accessed card if it operate in that range (CMD8)
#define SEND_CSD 0x49 //Asks the selected card to send its card specific data (CSD) (CMD9)
#define SEND_CID 0x4A // Ask the selected card to send its card ID (CID) (CMD10)
#define STOP_TRANS 0x4C //Forces the card to stop transmission in multiple block read operation (CMD12)
#define SEND_STATUS 0x4D //Ask the selected card to send its status register (CMD13)
#define SET_BLOCKLEN 0x50 //Sets Length of LOCK_UNLOCK Command (Block Size Otherwise locked at 512 bytes) (CMD16)
#define READ_SINGLE_BLOCK 0x51 //Read a block of size 512 bytes (CMD17)
#define READ_MULT_BLOCKS 0x52 //Read Multiple Blocks Unil STOP_TRANS command issured (CMD18)
#define WRITE_BLOCK 0x58 //Write a block of size 512 bytes (CMD24)
#define WRITE_MULT_BLOCKS 0x59 //Write Multiple Blocks of DATA until STOP_TRANS command Issured (CMD25)
#define PROGRAM_CSD 0x5B //PRogram the programmable bits of the CSD (CMD27)
#define ERASE_W_SA 0x60 //Sets the Address of the first write block to be erased (CMD32)
#define ERASE_W_EA 0x61 //Sets the address of the last write block to be erased (CMD33)
#define ERASE 0x66 //Erase all previously selected write blocks (CMD38)
#define LOCK_UNLOCK 0x6A //Used to Set/Reset the password or lock/unlock the card. A transferred data block includes all the command details.
// The Size of Data block Locked/Unlocked is set by SET_BLOCKLEN (CMD42)
#define APP_CMD 0x77 //Defines to the card that the next command is an ACMD (CMD55)
#define GEN_CMD 0x78 //Used either to ransfer a Data Blcok to the card or to get a Data Blcok from the card for general purpose/application specfic commands (CMD56)
#define READ_OCR 0x7A //Reads the OCR register of a card, CCS bit is assigned to OCR[30]. (CMD58)
#define CRC_ON_OFF 0x7B //Turns the CRC option on or off. A '1' in the CRC option bit will turn the option on, a '0' will turn it off (CMD59)

//Application Specific Commands (ACMD), always proceeded by CMD55, same setup as CMD

#define APP_SD_STATUS 0x4D //Send the SD Status (ACMD13)
#define APP_NUM_W_BLKS 0x56 //Send the numbers of the well written (no errors) blocks. Respons with 32 bit + CRC data block (ACMD22)
#define APP_SET_W_BLK_ER_N 0x57 //Set the number of write blocks to be pre-erased before writing (to be used for faster Multiple block WR command) (ACMD23)
#define APP_START_INIT 0x69 //Sends host capacity support information and activates the card's initialization process. Reserved bits shall be set to '0' (ACMD41)
#define APP_SET_CLR_CARD_D 0x6A //Connect[1]/Disconnect[0] the 50 kOhm pull-up resistor on CS (pin 1) of the card. The pull-up may be used for card detection (ACMD42)
#define APP_SEND_SCR 0x73 //Reads the SD configuration register (SCR)

Relevant Functions


void SD_Send_Cmd(const char cmd, unsigned long data, const char crc)
{
unsigned char frame[6];
char temp;
int i;
frame[0] = (cmd|0x40);
for(i = 3; i >= 0; i--)
{
temp = (char)(data>>(8*i));
frame[4-i] = (temp);
}
frame[5] = crc;

SD_Send_SPI_Frame(frame,6);

}

unsigned char getResponse()
{
int i = 0;

unsigned char response;

while(i <= 25000)
{
response = SD_Send_SPI_Char(DUMMY);
if(response == 0x00) break;
if(response == 0x01) break;
i++;
}

return response;
}
void SD_Card_Init()
{

CSCTL5 |= 0x0003 | 0x0030; //MCLK and SMCLK Reduced For SD Card Functions
CS_H; //Set CS to Off During Power Up (At Least 74 Clock Cycles)
unsigned int i;
for(i = 0; i <= 9; i++)
{
SD_Send_SPI_Char(DUMMY); //8 bits * 10 = 80 Clock Cycles
}
goIdle();

CSCTL5 &= ~((0x0003) | (0x0030)); //Return Clock Back To Desired Speed 


}
unsigned char goIdle()
{
unsigned char response = 0x01;
CS_L;
SD_Send_Cmd(GO_IDLE_STATE,0,0x95);
if(getResponse() != 0x01)
{
return(2);
}

while (response == 0x01)
{
CS_H;
SD_Send_SPI_Char(DUMMY);
CS_L;
SD_Send_Cmd(SEND_OP_COND,0x00,0xff);
response = getResponse();
}

CS_H;
SD_Send_SPI_Char(DUMMY);
return (1);

}

unsigned char SD_Send_SPI_Char(unsigned char x)
{
while (TX_READY == 0); // Waiting for TXBuffer to Become Free
SPI_SEND(x);
while (RX_READY == 0); //Waiting to Recieve Data
return (RX);
}
unsigned long SD_Send_SPI_Frame(unsigned char* pBuffer, unsigned int sz)
{
unsigned int i;
for(i = 0; i < sz; i++)
{
while(TX_READY == 0);
SPI_SEND(pBuffer[i]);
while(RX_READY == 0);
pBuffer[i] = RX;
}
return(0);
}


Main Function



void main(void)

{


WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer

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

__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_5; // Set DCO = 16MHz
CSCTL2 = FLLD_0 + 487; // DCOCLKDIV = 16MHz
__delay_cycles(3);
__bic_SR_register(SCG0); // enable FLL
while(CSCTL7 & (FLLUNLOCK0 | FLLUNLOCK1)); // FLL locked

CSCTL4 = SELMS__DCOCLKDIV | SELA__REFOCLK; // set default REFO(~32768Hz) as ACLK source, ACLK = 32768Hz
// default DCOCLKDIV as MCLK and SMCLK source
CSCTL5 |= 0x0003 | 0x0030; //MCLK and SMCLK Reduced For SD Card Functions

P1DIR |= BIT7; // set MCLK as output
SDI;
SCLK;
LAT;//initial

//Begin SPI Setup

P2SEL0 |= BIT4 | BIT5 | BIT6; //Setting Up CLK,SOMI,MOSI (UCA1)
P3SEL0 |= BIT1; //Setting Up GPIO to Act as CS

UCA0CTLW0 |= UCSWRST;

UCA1CTLW0 |= UCMST|UCSYNC|UCCKPL|UCMSB|UCSTEM;

UCA1CTLW0 |= UCSSEL__SMCLK;

UCA1BR0 = 0x01;
UCA1BR1 = 0;
UCA1MCTLW = 0;
UCA1CTLW0 &= ~UCSWRST;
UCA1IE |= UCRXIE | UCTXIE;


PM5CTL0 &= ~LOCKLPM5; // Disable the GPIO power-on default high-impedance mode
// to activate previously configured port settings
FC1_write(7,511,511,511);
P1SEL1 |= BIT7; // set MCLK pin as second function->GCLK=16MHz
unsigned int ij;
for(ij = 0; ij < 16; ij++)
{
data[ij] = 0x111111111111; //Brightness Set
}

while (1) // Test//14.88m
{

SD_Card_Init();

/*Rest of Code Cut due to lack of relevancy (Following code has been tested and works fine) */

 

 


I originally put the code in without adjusting the clock for the initialization period, and I kept getting 0xFF for the response. I added code that would bring SMCLK down to ~250KHz during SD Initialization. However, I keep getting 0xFF in the response Line. I have looked over the MMC/SD Card example code for the MSP430F169 and thought I implemented the necessary changes for the MSP430FR2633 but I keep running into problems.

Any help to why I am getting 0xFF only when I try to Start Up the SD Card would be super helpful!

Thanks in Advanced for any help!

Testing Issue in prod

$
0
0

TI Team- Please do not delete. I'm testing an issue.  Thanks ~Nic 


Compiler/MSP430FR5969: unable to write to HIFRAM (upper memory)

$
0
0

Part Number: MSP430FR5969

Tool/software: TI C/C++ Compiler

I'm writing an application that will require nearly all of the resources available on the msp430fr5969.

I'm using the MSP430 GCC provided by Mitto Systems. When I compile with -mcode-region=none and -mdata-region=none, the application overflows the bss section and I get an error. When I compile with -mcode-region=either and -mdata-region=either, the application works fine. According to the GCC User Guide, this is because the compiler shifts the overflowing section to the upper memory region (HIFRAM) which starts at 0x10000.

However, my application consistently hangs during c startup (crt0_start or crt0_init_bss). During my investigation, I found that there are problems in writing to HIFRAM even though the linker sets the write attribute. From msp430fr5969.ld provided by the msp430-gcc package:

HIFRAM (rxw) : ORIGIN = 0x00010000, LENGTH = 0x00003FFF

To test the write functionality, I used the blink.c example (which has been working consistently) and added in some writes to HIFRAM. I found that certain memory locations do not seem to be writable and in some cases trying to write causes errors. Here are the writes I tried and the results of those writes:

*(volatile uint16_t *) (0x10000) = 0xFACE; // does not write
*(volatile uint16_t *) (0x10002) = 0xFACE; // does not write
//*(volatile uint16_t *) (0x11000) = 0xFACE; MSP430 Error :Could not single step device
*(volatile uint16_t *) (0x11F00) = 0xFACE; // writes normally
*(volatile uint16_t *) (0x11F02) = 0xFACE; // writes normally
*(volatile uint16_t *) (0x12B00) = 0xFACE; // does not write
*(volatile uint16_t *) (0x13FD2) = 0xFACE; // does not write

MSP430F413: Comparator A CAO pin

$
0
0

Part Number: MSP430F413

Saw the above statement on the MSP430x4xx Family Users Guide (slau056b).

Does it mean that the comparator input for MSP430F413 input Pin 47 (P16/CA0) need to connect a resistor

(100K) to ground when no signal is detected.

My current design is open as shown.

CCS/MSP430F2617: Initialising Digital I/O ports on lower pin count devices?

$
0
0

Part Number: MSP430F2617

Tool/software: Code Composer Studio

The MSP430F241x and 261x are available in 64 or 80 pin packages.

In the 64-pin variants, Digital I/O ports P7 and P8 are not implemented.

When compiling code for these lower pin count devices, CCS Low Power Advisor complains that P7 and P8 have not been initialised.

Is it advisable (or even possible) to initialise these ports and set them to output mode?

Thanks - Ray

MSP430FR2433: LPM mode power consumption

$
0
0

Part Number: MSP430FR2433

Hi All,

If I have two MSP430 operating in same LPM mode but with different GPIO configuration (i.e. one has all GPIO output low while another has all GPIO output high), will the power consumption for two MSP430 be the same or will one be higher than the other in LPM mode? Thank you

MSP430F5529: SPI reads 0xFF only

$
0
0

Part Number: MSP430F5529

I am trying to communicate with SST25VF040B-50-4I-SAE flash memory unit. All code is listed below:

  P4SEL &= ~BIT3;
  P4SEL |= BIT4;
  P4MAP4 |= PM_UCA1SIMO;
  P4SEL |= BIT5;
  P4MAP5 |= PM_UCA1SOMI
  P4DIR &= ~BIT3;

void spi_init() {
    UCA1CTL1 = UCSWRST;
    
    UCA1CTL0 |= UCCKPH | UCMSB | UCMST | UCSYNC; //master 3 pin synchronous
    UCA1CTL1 |= UCSSEL_2; //smclk
    UCA0BR0 = 0x02;                           // /2
    UCA0BR1 = 0;                              //
    UCA0MCTL = 0;                             // No modulation
    
    UCA1CTL1 &= ~UCSWRST;                             
}

void spi_csh()  //MSP_SPI_CS
{
    P4OUT |= BIT3;
}

void spi_csl()
{
    P4OUT &= ~BIT3;
}

uint8_t spix(uint8_t c) //SPI eXchange byte
{
  while (!(UCA1IFG & UCTXIFG)) /*EMPTY*/;
  UCA1TXBUF = c;
  while (!(UCA1IFG & UCRXIFG)) /*EMPTY*/;
  c = UCA1RXBUF;
  return(c);
}


spi_init();
uint8_t data1 = 0;
uint8_t data2 = 0;
uint8_t data3 = 0;

/*JEDEC READ-ID sequence*/
spi_csl();
data123 = spix(0x9F);
data1 = spix(0x00);
data2 = spix(0x00);
data3 = spix(0x00);
spi_csh();

The READ_ID sequence should return values from the screenshot below, but returns only 0xFF.

During debug I watch data 1-3 and UCA1RXBUF and UCA1TXBUF, they change as described, but RXBUF always reads 0xFF.

Can you point out where I'm wrong?

MSP430F5659: Odd behavior of controller functionality

$
0
0

Part Number: MSP430F5659

Hi,

We are using MSP430F5659 having 512KB memory size and 64KB of RAM.

For our application we are using IAR IDE with following settings:
Code Model: Large
Data Model: Large
Floating Point size of double: 32bits
Optimization: Low

While development we are facing below scenario data corruption issues:
1 In one of function which having 5 input arguments, On simple if condition execution local variable data got corrupt, where no data modification did.
Observation: Corrupted variable was allocated in local register, that means local register was corrupted.
Solution: After some trial and we fixed above issue, With function argument as structure pointer.
structure holding 5 members (Nothing but 5 argument data of earlier function).

Example:
Issue:
void func(arg1, arg2, arg3, arg4, arg5)
{
local1;
local2;
local3 = arg4;
local4 = arg5;

if(condition) -----------> after this line execution local3 got corrupted
{
}
local1 = arg2;
}
Solution:
struct{
arg1; arg2; arg3; arg4; arg5;
}
void func(struct *data)
{
local1;
local2;
local3 = data->arg4;
local4 = data->arg5;

if(condition) -----------> after this line execution local3 not corrupted
{
}
local1 = data->arg2;
}
Query: Please comment for this, is there any limitation for function argumen. Because we faced same issue for function with 4 argument.
Its been wokring fine for function with argument less than 4.
=====================================================================================================================================================

2 In one of function value assigment is not working.
Observation: We are assigning values from function input argument pointer member to globle pointer member.
while assigningment we can observe correct value in function input argument pointer member,
But after assigning to globle pointer member value getting shifted by 8 bits.
Solution: While debugging we found that after single byte gloable variable declairation this issue was observed.
On changing gloable variable declairation from single byte to word byte it was working fine.
Example:
Issue:
file1:
unsigned char glob_data;

void func()
{
doing jod with variable --> glob_data;
}
-------------------------------------------------------------------------------------------------------------------

file2:
struct1
{
member1; member2;...member30;
}
struct2
{
member1; member2;...member30;
}

struct1 *ptr_glob;
void func(strcut2 *data)
{
ptr_glob->member4 = data->member4; -------> data->member4 holding value 01 --> 0x01

do other job; -------> data->member4 holding value 256 --> 0x0100, as it suppose to be 0x01
}
-------------------------------------------------------------------------------------------------------------------

Solution:
file1:
unsigned int glob_data;

void func()
{
doing jod with variable --> glob_data;
}
-------------------------------------------------------------------------------------------------------------------

file2:
struct1
{
member1; member2;...member30;
}
struct2
{
member1; member2;...member30;
}

struct1 *ptr_glob;
void func(strcut2 *data)
{
ptr_glob->member4 = data->member4; -------> data->member4 holding value 01 --> 0x01

do other job; -------> data->member4 holding value 01 --> 0x01, which is expected
}
-------------------------------------------------------------------------------------------------------------------

Query: Need to understand memory impact on changing globle variable size.
We observed different behaviour like value got assigned with even with 24bit shifted, after variable size adjusment as like above example it got fixed.
=====================================================================================================================================================

3. Unpredictable behaviour on including or removing portion of code.
Observation: On removal/ adding of some portion of code, which does not include any data corrution logic. Application is not behaving normal.
Solution: If issue obaserved on removal of code then include code again to work normal. same case with on adding code.


Issue number 1 and 2 were observing since in early stage of application development, where Code Memory size was above 100KB (Code + Const Memory) and Data Memory was above 16KB.
Where issue 3 we are obaserving more frequently, Currently our application have consumed Code Memory of 390KB (Code + Const Memory) and Data Memory of 24KB.

Below is the part of current map file:

****************************************
* *
* SEGMENTS IN ADDRESS ORDER *
* *
****************************************


SEGMENT SPACE START ADDRESS END ADDRESS SIZE TYPE ALIGN
======= ===== ============= =========== ==== ==== =====
DATA16_AN 0102 - 0103 2 rel 0
015C - 015D 2
016C - 016F 4
0224 - 0225 2
022A - 022B 2
0340 - 0341 2
03C0 - 03C3 4
03D2 - 03D3 2
03E0 - 03E1 2
049C - 049D 2
04A0 - 04A1 2
04AE - 04AF 2
05DE - 05E1 4
05E6 - 05E7 2
05EA - 05EA 1
05EC - 05EC 1
05EE - 05EE 1
05FC - 05FD 2
061E - 0621 4
0626 - 0627 2
062A - 062A 1
062C - 062C 1
062E - 062E 1
063C - 063F 4
065E - 0661 4
0666 - 0667 2
066A - 066A 1
066C - 066C 1
066E - 066E 1
0672 - 0673 2
067C - 067D 2
0700 - 0703 4
070A - 070B 2
0710 - 0710 1
0720 - 0721 2
CODE_I 2400 rel 1
DATA20_I 2400 - 4605 2206 rel 1
CSTACK 6360 - 63FF A0 rel 1
CSTART 8000 - 8037 38 rel 1
ISR_CODE 8038 - 8247 210 rel 1
<CODE> 1 8248 - FF7F 7D38 rel 1
INTVEC FF80 - FFF7 78 com 1
RESET FFFE - FFFF 2 rel 1
<CODE> 2 00010000 - 0004524D 3524E rel 1
DATA20_C 0004524E - 00064FB2 1FD65 rel 1
DATA20_ID 00064FB4 - 000671B9 2206 rel 1
CODE_ID 000671BA rel 1
DATA20_Z 000F0000 - 000F3B8B 3B8C rel 1
DATA20_N 000F3B8C rel 1

****************************************
* *
* END OF CROSS REFERENCE *
* *
****************************************

250 440 bytes of CODE memory
24 114 bytes of DATA memory (+ 74 absolute )
139 115 bytes of CONST memory


Please kindly help us and do share your solution/ thoughts with us.

MSP430F5659: Tool to flash firmware builds on hardware boards

$
0
0

Part Number: MSP430F5659

Hi Team,

I am using MSP430F5659 controller and IAR IDE. I am new to MSP family.

Need your support to know the tool details which will be used to flash the firmware on hardware boards by service team/manufacturing teams.

For ST micro controllers, i have use STM32 utility tool, with which i can flash the hex/bin file directly on hardware boards without IAR.

Do we have anything like that for MSP430.

Please let me know.

Thanks,

Krishna


MSP430F413: Program loop

$
0
0

Part Number: MSP430F413

In my MSP430F413 design, Pin 47 (P16/CA0) is connected to a sensor. When the

sensor is not connected. The program goes into a loop :

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

C1_pH

                BIT.B      #CAOUT,&CACTL2                           ; Comparator out hi/low?

                JNZ         C1_pH

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

 

&CACTL2 always shows 000Dh (0000 1101). Unable to change to 000Ch.

CAOUT is : #define CAOUT               (0x01)

Only when sensor is connected, &CACTL2  change to 000Ch.

 

Is there any instruction that I can add in such that it'll could come out of the loop when no sensor

is connected.

MSP430F5529: Device Firmware Upgrade thru' TI's Factory USB BSL on Receiving a string from communication on USB from my pc application s/w

$
0
0

Part Number: MSP430F5529

Hello ,

I am facing .."USB device not recognized" error on my PC when I try to do firmware upgrade from within my mcu firmware( SOFTWARE METHOD ).My implementation & idea as follows :

a. We use 24 MHz X2 crystal.

b. My MCU application code uses USB to communicate to our PC application as a normal function.To initiate F/W upgrade, PC application will send a string on usb communication.

c. upon receiving the string( let's say "USBBSL") MCU application will disconnect usb and jump to USB BSL location at 0x1000 . i am using TI's USB API.

     if( Received string == "USBBSL")

      { 

             USB_reset();

             USB_disconnect();

             __disable_interrupt();

             ((void (*)())0x1000)();

     }

d. after executing the above i get the error . and  TI 's  "MSP430 USB Firmware Upgrade Example " GUI  shows "No device connected" 

e. My assumption is that after executing code as in (c) ....MCU should go to TI's Factory USB BSL area and wait for TI's F/W upgrade example GUI to get the device detected.I am following SLAA452C doc.  

Please note by H/W method i.e  by holding PUR pin high by a jumper.. &..connecting USB to the MSP device , I was successfully able to do F/W upgrade.

Please can any one has a solution or point out which is missing in my process.....pls

Thanks & Regards,

Ars

CCS/MSP430FR5969: single wire communication

$
0
0

Part Number: MSP430FR5969

Tool/software: Code Composer Studio

hi, there is no single wire communication library in CCS, please provide me the library function for one wire communication

thanks

CCS/MSP430FR6047: Runtime CRC 32-bit calculation of firmware

$
0
0

Part Number: MSP430FR6047

Tool/software: Code Composer Studio

Hi!

I need to calculate the CRC (32bit) of the firmware version currently running on a MSP430 during runtime. I have seen some samples of algorithms by I need to feed the function with a buffer/memory where I got a bit lost.

How can this be done? 

Thanks in advance!

CCS/MSP430F5438A: MSP430F5438A USB FET debugger not found error

$
0
0

Part Number: MSP430F5438A

Tool/software: Code Composer Studio

Hello,

I just bought MSP430F5438A and when I connect it to my laptop and try to debug some code in CCS, it gives me Error: USB FET debugger not found. Can anyone help me with this?

Viewing all 22233 articles
Browse latest View live


Latest Images

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