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

MSP432E401Y: MSP432E401Y sampling 12 analog inputs in sequence

$
0
0

Part Number:MSP432E401Y

I would like some help on setting up the MSP432E401Y to sample 12 analog inputs (Channels 0-11) in sequence and generate

an interrupt when the last channel (channel 11) sample is done.

The maximum sequencer size is 8. I would like to know how to utilize these sequencers if i wanted to 

Currently i can implement this with 8 channels (Channels 0-5, 7 and cpu temperature sensor) using sample sequencer 0 of ADC0 my setup code is as follows

(excluding the MAP_SysCtlPeripheralEnable(..) and MAP_GPIOPinTypeADC(..) portions)

*********************************************

ADCReferenceSet(ADC0_BASE, ADC_REF_INT); // Use internal 3 V as reference

// Configure HW Averaging of 32x

MAP_ADCHardwareOversampleConfigure(ADC0_BASE, 32);

// Configure ADC0 Sequencer 0 (SS0) to sample the analog channels AIN0-AIN7.
//
MAP_ADCSequenceStepConfigure(ADC0_BASE, 0, 0, ADC_CTL_CH0);
MAP_ADCSequenceStepConfigure(ADC0_BASE, 0, 1, ADC_CTL_CH1);
MAP_ADCSequenceStepConfigure(ADC0_BASE, 0, 2, ADC_CTL_CH2);
MAP_ADCSequenceStepConfigure(ADC0_BASE, 0, 3, ADC_CTL_CH3);
MAP_ADCSequenceStepConfigure(ADC0_BASE, 0, 4, ADC_CTL_CH4);
MAP_ADCSequenceStepConfigure(ADC0_BASE, 0, 5, ADC_CTL_CH5);
MAP_ADCSequenceStepConfigure(ADC0_BASE, 0, 6, ADC_CTL_TS ); // Internal Temperature sensor
// Configure interrupt to be set when this sample is done and tell ADC this is the
// last conversion on the sequencer
MAP_ADCSequenceStepConfigure(ADC0_BASE, 0, 7, ADC_CTL_CH7 | ADC_CTL_IE |ADC_CTL_END);

       MAP_ADCSequenceConfigure(ADC0_BASE, 0, ADC_TRIGGER_ALWAYS, 0);

        MAP_ADCSequenceEnable(ADC0_BASE, 0);

MAP_ADCIntEnable(ADC0_BASE, 0);
MAP_IntEnable(INT_ADC0SS0); // Interrupt generation from ADC-0 sequencer 0

******************************************************************

 Thanks

David


MSP430FR2512: Temp Sensor Accuracy w/ Calibration

$
0
0

Part Number:MSP430FR2512

Regarding MSP430FR2512, I have found the sections of the datasheet referring to the internal temperature sensor. The datasheet mentions (on page 37) that the sensor offset can 'vary significantly' and suggests a single-point calibration. It also talks about using two internally stored calibration points. I have found the formula to use those data points in the family's datasheet but I'm not finding anything about the overall accuracy of the sensor if those calibration points are used. Am I just missing something in the datasheet? Any insight you could provide here would be greatly appreciated. Thanks!

 

Brian Angiel

CCS/MSP430F5529: debugging troubles-MSP430

$
0
0

Part Number:MSP430F5529

Tool/software: Code Composer Studio

Hello,

I'm working with MSP430F5529, I upgraded my code Composer Studio from 6.0 to 8.2.0, the problem is from i was uploading the firmware of my launchpad and the internet cut off sudenly, and i could read a message "cannot be canceled".

Now i have many problems with that launchpad, the problem i hate most is when launchpad conects and disconects itself and produces a particular sound in the computer as if you are conecting a stick memory. So, I have 2 MSP430F5529 launchpad and the othrer works fine.

I attached all console message i recived in CCS:

  • MSP430: JTAG Communication Error.
  • MSP430: File Loader: Verification failed: Target failed to write 0x04400.
  • MSP430: GEL: File: C:\Users\Basilio\workspace_v8\Probe1\Debug\Probe1.out: Load failed.
  • MSP430: Can't Run Target CPU: Could not run device (to breakpoint).
  • MSP430: Trouble Halting Target CPU: Internal error.

How can i solve that problem?
Thanks a lot.

Compiler/MSP430G2553: MSP430 , LCD16x2 black squares

$
0
0

Part Number:MSP430G2553

Tool/software: TI C/C++ Compiler

Hello all,

I get black squares on the first row when display on LCD16x2 (RC1602B-FHY-CSVD) from MSP430g2553 (and some contrast less squares at second row).

I am beginner with this MC so i tried some codes from internet (on IAR). 

An example of code is from here:

karuppuswamy.com/.../

 I'm using a potentiometer for contrast. I tried with this configuration combination too :  28h, 0Ch, 03h, 01h, and still nothing.

Sorry for my expresion and thanks for answers(if there will be :) ).

Or if you have any ideea of code how can i configurate this...

MSP430F5132: GUI for TIDA-01353

Are the bump switches in the TI-RSLK Kit debounced?

$
0
0

I've been working with the mentioned kit and have been trying to implement a simple LED toggle when the bump switch is pressed. When I press a bump switch, the LED toggles twice, leading me to believe they are not debounced. A simple remedy for this has been implementing a one second delay before the interrupt flag is cleared. I just want to confirm if the bump switch is not debounced.

 

 

/*
Initialize Bump sensors. Use OR logic to select multiple pins in one function call:
   Make six Port 4 pins inputs with pullup
   Select which edge for the interrupt to trigger
   Clear any possible interrupt flags
   enable GPIO interrupts for Port 4
   enable master interrupt
   pins 7,6,5,3,2,0
*/
void BumpInt_Init(void){
    GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN0);
    
    GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P4, GPIO_PIN0 | GPIO_PIN2 |
        GPIO_PIN3 | GPIO_PIN5 | GPIO_PIN6 | GPIO_PIN7);
    
    GPIO_interruptEdgeSelect(GPIO_PORT_P4, GPIO_PIN0 | GPIO_PIN2 |
        GPIO_PIN3 | GPIO_PIN5 | GPIO_PIN6 | GPIO_PIN7, GPIO_HIGH_TO_LOW_TRANSITION);
    
    GPIO_clearInterruptFlag(GPIO_PORT_P4, GPIO_PIN0 |GPIO_PIN2 |
        GPIO_PIN3 | GPIO_PIN5 | GPIO_PIN6 | GPIO_PIN7);
    
    GPIO_enableInterrupt(GPIO_PORT_P4, GPIO_PIN0 |GPIO_PIN2 |
        GPIO_PIN3 | GPIO_PIN5 | GPIO_PIN6 | GPIO_PIN7);
    
    Interrupt_enableInterrupt(INT_PORT4);
}


void PORT4_IRQHandler(void){
    
    uint8_t status;      //Contains current bit states of port 4
    
    
    status = GPIO_getEnabledInterruptStatus(GPIO_PORT_P4);   //Reads which bump switches were pressed
    GPIO_clearInterruptFlag(GPIO_PORT_P4, status);          //Clears interrupt flag for bump that was triggered
    
    GPIO_toggleOutputOnPin(GPIO_PORT_P1, GPIO_PIN0); //toggle red LED P1.0
    
}

 

MSP430F6736A: Changing Host controller for MSPBoot

$
0
0

Part Number:MSP430F6736A

hello everyone...

i am working on a UART bootloader project, and i found MSPBoot is suitable for this purpose. MSPBoot uses MSP430F5529 or MSP430G2553 as HOST controller. unfortunately i dont have either of them. so im looking for a solution for if i can use any other MSP430Fxxx (like MSP430F6736A, since i have it with me). if so, what are the procedures or what modifications are to be done in the "Host_F5529_Target_F5529_UART_MSPBoot" project so that i can use MSP430F6736A instead of MSP430F5529, which has been used in the project. can somebody help me in detail since i am new to CCS...

thanks in advance...

MSP430FR6989: Need help configuring CC2530-CC2591 EM transceiver using EM Adapter Booster Pack

$
0
0

Part Number:MSP430FR6989

Hello,

I have a MSP430FR6989 connected to a EM Adapter Booster Pack and CC2530-CC2591 EM transceiver, along with a CC2531 USB dongle for my PC as the receiver. 

What software can I use to control the CC2530-CC2591 EM transceiver through the MSP430FR6989?

Thanks for any help and/or suggestions!

Dustin


CCS/MSP430FR6989: Data storage in FRAM of MSP430FR6989

$
0
0

Part Number:MSP430FR6989

Tool/software: Code Composer Studio

I  have a problem:

I have used your example  msp430fr69xx_framwrite.c and msp430fr69xx_lcdc_03.c and if I turn off the supply the table  FRAM_write is empty.

Of course I used "Debug Configuration" in "Program" settings I have set "Load symbols only".

What Am I doing not correct?

Program:

#include "msp430.h"
#define pos1 9      /* Digit A1 begins at S18 i S19 */
#define pos2 5      /* Digit A2 begins at S10 i S11 */
#define pos3 3      /* Digit A3 begins at S6  i S7   */
#define pos4 18     /* Digit A4 begins at S36 i S37 */
#define pos5 14     /* Digit A5 begins at S28 i S29 */
#define pos6 7      /* Digit A6 begins at S14 i S15 */
#define pos1e 10    /* Digit A1 begins at S20 i S21  */
#define pos2e 6     /* Digit A2 begins at S12 i S13  */
#define pos3e 4     /* Digit A3 begins at S8  i S9  */
#define pos4e 19    /* Digit A4 begins at S38 i S39  */
#define pos5e 15    /* Digit A5 begins at S30 i S31  */
#define pos6e 8     /* Digit A6 begins at S16 i S17 */

const unsigned char lcd_num[10] = {
    0xFC,        // 0
    0x60,        // 1
    0xDB,        // 2
    0xF3,        // 3
    0x67,        // 4
    0xB7,        // 5
    0xBF,        // 6
    0xE4,        // 7
    0xFF,        // 8
    0xF7,        // 9
};

                                                      //On the left is first position on the right is 7
// LCD segment definitions.

static const unsigned char char_gen_ascii[92][2] =
{
            { 0x00, 0x00 },   // sp  0
            { 0x00, 0x00 },   // !  1 (nieda sie)
            { 0x00, 0x00 },   // "  2
            { 0x00, 0x00 },   // #  3 (nie da sie)
            { 0x00, 0x00 },   // $  4
            { 0x00, 0x00 },   // %  5 (nie da sie)
            { 0x00, 0x00 },   // &  6 (nie da sie)
            { 0x00, 0x00 },   // '  7
            { 0x00, 0x00 },   // (  8 (nie da sie)
            { 0x00, 0x00 },   // )  9 (nie da sie)
            { 0x00, 0x00 },   // *  10(nie da sie)
            { 0x03, 0x50 },   // +  11
            { 0x00, 0x00 },   // ,  12
            { 0x03, 0x00 },   // -  13
            { 0x00, 0x00 },   // .  14
            { 0x00, 0x28 },   // /  15  /*dziesietnie*/
            { 0xFC, 0x28 },   // 0  16
            { 0x60, 0x00 },   // 1  17
            { 0xDB, 0x00 },   // 2  18
            { 0xF3, 0x00 },   // 3  19
            { 0x67, 0x00 },   // 4  20
            { 0xB7, 0x00 },   // 5  21
            { 0xBF, 0x00 },   // 6  22
            { 0xE4, 0x00 },   // 7  23
            { 0xFF, 0x00 },   // 8  24
            { 0xF7, 0x00 },   // 9  25
            { 0x00, 0x00 },   // :  26
            { 0x00, 0x00 },   // ;  27 (nie da sie)
            { 0x00, 0x22 },   // <  28
            { 0x00, 0x00 },   // =  29 (nie da sie)
            { 0x00, 0x88 },   // >  30
            { 0x00, 0x00 },   // ?  31
            { 0x00, 0x00 },   // @  32(nie da sie)
            { 0xEF, 0x00 },   // A  33
            { 0xF1, 0x50 },   // B  34 małe
            { 0x9C, 0x00 },   // C  35
            { 0xF0, 0x50 },   // D  36
            { 0x9E, 0x00 },   // E  37
            { 0x8E, 0x00 },   // F  38
            { 0xBD, 0x00 },   // G  39
            { 0x6F, 0x00 },   // H  40
            { 0x90, 0x50 },   // I  41
            { 0x78, 0x00 },   // J  42
            { 0x0E, 0x22 },   // K  43
            { 0x1C, 0x00 },   // L  44
            { 0x6C, 0xA0 },   // M  45
            { 0x6C, 0x82 },   // N  46
            { 0xFC, 0x00 },   // O  47
            { 0xCF, 0x00 },   // P  48
            { 0xFC, 0x02 },   // Q  49 hm....
            { 0xCF, 0x02 },   // R  50
            { 0xB7, 0x00 },   // S  51
            { 0x80, 0x50 },   // T  52
            { 0x7C, 0x00 },   // U  53
            { 0x0C, 0x28 },   // V  54
            { 0x6C, 0x0A },   // W  55
            { 0x00, 0xAA },   // X  56
            { 0x47, 0x10 },   // Y  57
            { 0x90, 0x28 },   // Z  58
            { 0x00, 0x00 },   // [  59
            { 0x00, 0x00 },   // 55 60 (nie da sie)
            { 0x00, 0x00 },   // ]  61
            { 0x00, 0x00 },   // \/  62
            { 0x10, 0x00 },   // _  63
            { 0x00, 0x00 },   // '  64
            { 0x1A, 0x10 },   // a  65 (nie da sie)
            { 0x3F, 0x00 },   // b  66
            { 0x1B, 0x00 },   // c  67
            { 0x7B, 0x00 },   // d  68
            { 0x9F, 0x00 },   // e  69 hm..
            { 0x8E, 0x00 },   // f  70
            { 0xF7, 0x00 },   // g  71
            { 0x2F, 0x00 },   // h  72
            { 0x00, 0x10 },   // i  73
            { 0x30, 0x00 },   // j  74
            { 0x01, 0x52 },   // k  75
            { 0x00, 0x50 },   // l  76
            { 0x2B, 0x10 },   // m  77
            { 0x0A, 0x10 },   // n  78
            { 0x3B, 0x00 },   // o  79
            { 0xCF, 0x00 },   // p  80
            { 0xE7, 0x00 },   // q  81
            { 0x0A, 0x00 },   // r  82
            { 0xB7, 0x00 },   // s  83
            { 0x03, 0x50 },   // t  84
            { 0x38, 0x00 },   // u  85
            { 0x08, 0x08 },   // v  86
            { 0x28, 0x0A },   // w  87
            { 0x00, 0xAA },   // x  88
            { 0x00, 0xB0 },   // y  89
            { 0x90, 0x28 },   // z  90
            { 0xC2, 0x44 }    // st 91
        };
unsigned int numb=0;
void updateLcd(void);

void FRAMWrite(void);

#define WRITE_SIZE      100

unsigned char count = 0;
unsigned int data;


#pragma NOINIT(FRAM_write)
unsigned int FRAM_write[WRITE_SIZE] ;

int main(void)
{
    WDTCTL = WDTPW | WDTHOLD;               // Stop WDT

    PJSEL0 = BIT4 | BIT5;                   // For LFXT

    // Initialize LCD segments 0 - 21; 26 - 43
    LCDCPCTL0 = 0xFFFF;
    LCDCPCTL1 = 0xFC3F;
    LCDCPCTL2 = 0x0FFF;

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

    // Configure LFXT 32kHz crystal
    CSCTL0_H = CSKEY >> 8;                  // Unlock CS registers
    CSCTL4 &= ~LFXTOFF;                     // Enable LFXT
    do
    {
      CSCTL5 &= ~LFXTOFFG;                  // Clear LFXT fault flag
      SFRIFG1 &= ~OFIFG;
    } while (SFRIFG1 & OFIFG);              // Test oscillator fault flag
    CSCTL0_H = 0;                           // Lock CS registers

    // Configure RTC_C
    RTCCTL0_H = RTCKEY_H;                   // Unlock RTC
    RTCCTL0_L = RTCTEVIE | RTCRDYIE;        // enable RTC read ready interrupt
                                            // enable RTC time event interrupt

    RTCCTL1 = RTCBCD | RTCHOLD | RTCMODE;   // RTC enable, BCD mode, RTC hold

    RTCYEAR = 0x2010;                       // Year = 0x2010
    RTCMON = 0x4;                           // Month = 0x04 = April
    RTCDAY = 0x05;                          // Day = 0x05 = 5th
    RTCDOW = 0x01;                          // Day of week = 0x01 = Monday
    RTCHOUR = 0x04;                         // Hour = 0x04
    RTCMIN = 0x30;                          // Minute = 0x30
    RTCSEC = 0x45;                          // Seconds = 0x45

    // Initialize LCD_C
    // ACLK, Divider = 1, Pre-divider = 16; 4-pin MUX
    LCDCCTL0 = LCDDIV__1 | LCDPRE__16 | LCD4MUX | LCDLP;

    // VLCD generated internally,
    // V2-V4 generated internally, v5 to ground
    // Set VLCD voltage to 2.60v
    // Enable charge pump and select internal reference for it
    LCDCVCTL = VLCD_1 | VLCDREF_0 | LCDCPEN;

    LCDCCPCTL = LCDCPCLKSYNC;               // Clock synchronization enabled

    LCDCMEMCTL = LCDCLRM;                   // Clear LCD memory

    // Display time
    updateLcd();

    // Display the 2 colons
 //   LCDMEM[6] = 0x04;
    LCDMEM[19] = 0x04;

    //Turn LCD on
    LCDCCTL0 |= LCDON;

    RTCCTL1 &= ~(RTCHOLD);                  // Start RTC
    data=FRAM_write[1];

    __bis_SR_register(LPM3_bits | GIE);
    __no_operation();

    return 0;
}

#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector=RTC_VECTOR
__interrupt void RTC_ISR(void)
#elif defined(__GNUC__)
void __attribute__ ((interrupt(RTC_VECTOR))) RTC_ISR (void)
#else
#error Compiler not supported!
#endif
{

    switch(__even_in_range(RTCIV, RTCIV_RT1PSIFG))
    {
        case RTCIV_NONE:      break;        // No interrupts
        case RTCIV_RTCOFIFG:  break;        // RTCOFIFG
        case RTCIV_RTCRDYIFG:               // RTCRDYIFG
            P1OUT ^= 0x01;                  // Toggles P1.0 every second
            updateLcd();                    // Update the segmented LCD
            break;
        case RTCIV_RTCTEVIFG:               // RTCEVIFG
            __no_operation();               // Interrupts every minute
            break;
        case RTCIV_RTCAIFG:   break;        // RTCAIFG
        case RTCIV_RT0PSIFG:  break;        // RT0PSIFG
        case RTCIV_RT1PSIFG:  break;        // RT1PSIFG
        default: break;
    }
}

void updateLcd(void)
{   LCDMEM[pos6] = lcd_num[(data%10)];
    LCDMEM[pos5] = lcd_num[(data/10)];
    LCDMEM[pos1] = char_gen_ascii['U'-32][0];
    LCDMEM[pos1e] = char_gen_ascii['U'-32][1];
    LCDMEM[pos2] = char_gen_ascii['Z'-32][0];
    LCDMEM[pos2e] = char_gen_ascii['Z'-32][1];
    LCDMEM[pos3] = char_gen_ascii['W'-32][0];
    LCDMEM[pos3e] = char_gen_ascii['W'-32][1];
    LCDMEM[pos4] = char_gen_ascii['O'-32][0];
    LCDMEM[pos4e] = char_gen_ascii['O'-32][1];
    LCDMEM[pos5e] = char_gen_ascii[numb+4][1];
    LCDMEM[pos6] = char_gen_ascii[numb+5][0];
    LCDMEM[pos6e] = char_gen_ascii[numb+5][1];*/

    // Display the 2 colons
            LCDMEM[19] = 0x04;
        data++;

        if (data>=65) data=1;
        FRAMWrite();

}

void FRAMWrite(void)
{
  unsigned int i=0;

  for ( i= 0; i<100; i++)
  {
      FRAM_write[i] = data;
  }

}

MSP-EXP430FR5994: SD Card functions returning FR_NOT_READY

$
0
0

Part Number:MSP-EXP430FR5994

Hi,

I am trying to make the Out-of-box example work on the MSP-EXP430FR5994 Launchpad specifically to make the SD card work. The SD card section seems to have some issue. To check directly, I have modified the code to call the function sdcardLog() from main() function. Inside sdcardLog(), the function f_open() returns FR_NOT_READY, whereas before calling f_open() function, SDCardLib_detectCard() have returned SDCARDLIB_STATUS_PRESENT.

Can anyone suggest what might be going wrong? I have tried with 1 GB as well as 8 GB SD cards having FAT32 file system.

The sequence of function calls are as follows:

//Plugin SDcard interface to SDCard lib
SDCardLib_init(&sdCardLib, &sdIntf_MSP430FR5994LP);

//Detect SD card
SDCardLib_Status st = SDCardLib_detectCard(&sdCardLib);
if (st == SDCARDLIB_STATUS_NOT_PRESENT) {
SDCardLib_unInit(&sdCardLib);
mode = '0';
noSDCard = 1;
return;
}

strcpy(filename, "sample.txt");

rc = f_open(&fil, filename, FA_WRITE | FA_OPEN_EXISTING);

Here, rc is getting set to FR_NOT_READY

The beginning of the main() function is shown below:

int main(void) {

// sd test code
Init_GPIO();
GPIO_setOutputHighOnPin(GPIO_PORT_P1, GPIO_PIN0);

// Toggle LED1 and LED2 to indicate OutOfBox Demo start
int i;
for (i=20;i>0;i--)
{
GPIO_toggleOutputOnPin(GPIO_PORT_P1, GPIO_PIN1);
GPIO_toggleOutputOnPin(GPIO_PORT_P1, GPIO_PIN0);
__delay_cycles(100000);
}

for (i=0;i<3;i++)

{
GPIO_setOutputHighOnPin(GPIO_PORT_P1, GPIO_PIN0);
__delay_cycles(300000);
GPIO_setOutputLowOnPin(GPIO_PORT_P1, GPIO_PIN0);
__delay_cycles(2000000);
}

Init_RTC();
sdcardLog();

.......................................

-

Thanks

Soumyajit

CCS/MSP432P401R: MSP432 UART

$
0
0

Part Number:MSP432P401R

Tool/software: Code Composer Studio

I want to connect TXD and RXD pins of MSP432 to Bluetooth HC05. The thing is I cannot locate port pin P1.2 and P1.3 on the board. Is there any way to tapout those two pins from MSP432 or do I need to use another EUSCI module which has its port pins exposed? So, another question being if I use P3.2 and P3.3 belonging to EUSCI_A2. are they internally connected to USB to UART bridge ?

MSP430FR2433: Example Driverlib code for I2C for combined transaction?

$
0
0

Part Number:MSP430FR2433

Is there example code using DriverLib for the common case where the slave has an address space of registers and the master first transmits a register address and then receives one or more bytes from the slave? This common case is discussed in TI’s App Report “Understanding the I2C Bus” SLVA704. The case is also called a “combined transaction” where the master sends a restart bit to turn the link around.

IMO this is so common that TI should provide an example, even a new API in DriverLib.

I have struggled to find the right combination of DriverLib calls. For example, this doesn’t work (It hangs waiting for RXIFG):

... disable, configure, set slave address, and enable....
// start then send register address (whose MSB==0 tells slave this is a read)
EUSCI_B_I2C_masterSendMultiByteStart(I2CInstanceAddress, registerAddress);
// restart and receive data and stop
result = EUSCI_B_I2C_masterReceiveSingleByte(I2CInstanceAddress);

I have tried other combinations. I wish the documentation described the legal sequences of calls to driver lib.

My context is: CCSv8, MSP430FR2433 Launchpad, STMicro LIS3MDL compass chip. I don’t have a logic analyzer.

I wish there were an API:

readSingle(eUSCIInstance, slaveAddress, registerAddress)
readMultiple(eUSCIInstance, slaveAddress, registerAddress, buffer, length)
writeSingle(eUSCIInstance, slaveAddress, registerAddress)
writeMultiple(eUSCIInstance, slaveAddress, registerAddress, buffer, length)

I think there is another thread suggesting it can be done. There is also another thread suggesting multiple bytes cannot be received without using an ISR that calls EUSCI_B_I2C_masterReceiveNext(). (“I2C Driver Lib Timeout Value”)

MSP430FR5969: MSP430 pin compatibility

$
0
0

Part Number:MSP430FR5969

Are the MSP430FR59xx parts pin-compatible in the same package?

For example, are MSP430FR5969IRGZ and MSP430FR5994IRGZ pin compatible?

MSP430AFE253: Power measurement voltage spikes

$
0
0

Part Number:MSP430AFE253

Hi! I'm coming back to this issue with new updates.

I have reviewed the schematics and create a new PCB, I will attach the schematics here.

The problem remains the same, it seems that the clamping diodes are worsen the situation, the voltage spikes have higher values when the diodes are present.

(VP - VN) SIGNAL

I will try to place some Zener diodes, but I guess they will not be fast enough to catch the spike.

It seems that the problem have no resolution, at least not in this configuration. The size of PCB is 75mmx50mm and I think moving the relays way apart from the actual PCB will reduce also de voltage spikes influence.

MSP430F2416: Does anyone have example code for the USCIB0 in I2C master mode? I am trying to read a humidity sensor. The TI HDC1080 would be a great approximation.

$
0
0

Part Number:MSP430F2416

I am trying to use interrupts, but would settle for anything now. My starting point is example code by htruong on Github. 

I am still not understanding the flow for data reads


CCS/MSP-EXP430G2: Do I need an intermediate connection?

$
0
0

Part Number:MSP-EXP430G2

Tool/software: Code Composer Studio

Greetings,

I'm a rookie in this realm of micro-controllers, but have some self taught programming experience and a Systems Engineering background, however; I'm stumped with my dilemma.

I've searched the Ti/E2E forums, found a lot of related topics but nothing that seems to resolve my problem. I'm getting a message of No USB FET was found.  I found a few related items and a couple that lead me to believe that maybe I don't have everything I need to move forward.  In order to debug, do I need another peripheral device to connect between my computer and the Launchpad?  Both of the links below reference debuggers such as the ez-FET.  Do I need to acquire one of these for the MSP-EXP430G2 or are they just a nice to have?

MSP432P401R: "Correct termination" for unused programming pins

$
0
0

Part Number:MSP432P401R

I have a design that does not have external pullups or pulldowns on the SWDIO, TCK, or TMS pins and I am trying to determine if this could ever cause a problem.

In the MSP432 datasheet section 4.6 it specifically says "This pin should be pulled down externally". But in the MSP432 Launchpad Reference Schematic, they do not have any external pullups or pulldowns on these pins.

Datasheet section 6.12.23 indicates that these pins have internal pullups/downs. So we are slightly confused about whether or not it's necessary to correct our lack of external pull resistors.

Thanks for any help you can provide -David

MSP430I2040: About SD24 input of i2040

$
0
0

Part Number:MSP430I2040


Q1.
On the magnitude of the leak current of the analog input port
There is a leakage current (about 1 uA) in the direction flowing
from the differential input port (VREF?) Of the MSP430I2040TPWR to
the AVSS, and offset voltages V1 (100 mV) and V2 (about 150 mV)
are generated between the port and AVSS.

Since this offset voltage depends on the value of the input resistance,
in the case of the circuit as shown below, it is a problem that
if the impedance seen from the input port changes, it will cause
a large error.


Can you tell me the cause of the leakage current from the input port?
Also, do you think you can teach the leakage current value and
the extent of its variation for examining the accuracy of the circuit?

SD24 Setting

SD24INCTL0=0x08 
SD24INCTL1=0x08
SD24INCTL2=0x08
SD24INCTL3=0x08
SD24PRE0=0x00
SD24PRE1=0x00
SD24PRE2=0x00
SD24PRE3=0x00
SD24TRIM=0x0C
SD24CTL=0x0004
SD24CCTL0=0x0137
SD24CCTL1=0x0137
SD24CCTL2=0x0137
SD24CCTL3=0x013E

Q2.
About the difference of the configuration of Sigma Delata ADC circuit
by microcomputer
In MSP430I2040TPWR leakage current like the above Q1 was observed,
but in MSP430F47187IPZ observation of leak current could hardly be observed
with offset voltage less than 1 mV.
Therefore, in the MSP430F47187IPZ, there was no problem with the
circuit configuration of Q1.
Can I think that the circuit configuration of both ADC sections is different?
Would you be able to get a block diagram showing the difference in ADC circuit
configuration if possible?

Regards,
Da

WEBENCH® Tools/MSP432E401Y: Link error : simohosting problem

$
0
0

Part Number:MSP432E401Y

Tool/software: WEBENCH® Design Tools

Hi:

      When I used IAR software to compile this project file(outofbox_msp432e401y) for the first time, the following error occurred. I don't know what caused it and how to solve it.  It prompts for the following error, which looks like a link setup problem that has not been encountered before.

dependencis

(1)IAR Code Generation Tools: EWARM-CD-8202-14838

(2)Simplelink MSP432E SDK: simplelink_msp432e4_sdk_2_30_00_14

MSP432P401R: Doubt about interruption input button

$
0
0

Part Number:MSP432P401R

I have been trying to detect when a signal goes from low to high (0 to 3.3 V) using the MSP432 button example, in the code below I am using P6.4 to detect this, the problem is that for some reason the program only triggers the interrupt (PORT6_IRQHandler) when the input signal goes from high to low, even thought I configured the resistor as pull down or pull up (neither of them allow me to detect when the signal goes from low to high). Does someone know's why?

Note: The ISR PORT6_IRQHandler turns on and off P1.0, the problem can be better observed in the image below where the input signal and the output pin where monitored.

/* DriverLib Includes */
#include <ti/devices/msp432p4xx/driverlib/driverlib.h>

/* Standard Includes */
#include <stdint.h>
#include <stdbool.h>

int a = 0 ;
uint32_t status,status2;

int main(void)
{
    WDT_A_holdTimer();

    GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN0);

    GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P6, GPIO_PIN4);

    GPIO_clearInterruptFlag(GPIO_PORT_P6, GPIO_PIN4);
    GPIO_enableInterrupt(GPIO_PORT_P6, GPIO_PIN4);
    Interrupt_enableInterrupt(INT_PORT6);
    SysCtl_enableSRAMBankRetention(SYSCTL_SRAM_BANK6);
    Interrupt_enableMaster();

    while (1)
    {
        PCM_gotoLPM3();
    }
}

/* GPIO ISR */
void PORT6_IRQHandler(void)
{
    a++;
    status = GPIO_getEnabledInterruptStatus(GPIO_PORT_P6);
    GPIO_clearInterruptFlag(GPIO_PORT_P6, status);

    if(status == 16)
    {
        GPIO_toggleOutputOnPin(GPIO_PORT_P1, GPIO_PIN0);
    }

}

Thanks

Viewing all 22059 articles
Browse latest View live


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