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

CCS/MSP430G2553: very basic UART transmission failed

$
0
0

Part Number:MSP430G2553

Tool/software: Code Composer Studio

Hello every,


I am so confused about the UART transmission. I think I make it very simple and get all the necessary set and reset correctly. And the Terminal corresponding Baudrate is also 9600, but I just got nothing at all. Could anyone help me out with this situation. Appreciate so much.

#include <msp430.h> 

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

    DCOCTL = CALDCO_16MHZ;
	BCSCTL1 |= CALBC1_16MHZ;

	P1DIR |= BIT2; 			// set P1.2 Tx output
	P1SEL |= BIT1 + BIT2;   // select P1.1 Rx, P1.2 Tx to UART function
	P1SEL2 |= BIT1 +BIT2;

	UCA0CTL1 |= UCSWRST;		// **Put state machine in reset **
	UCA0CTL1 |= UCSSEL_2;		//CLK = SMCLK

	UCA0BR0 = 130;					// N = 16MHz/9600 = 130 + 6*256
	UCA0BR1 = 6;
	UCA0MCTL |= UCBRF_0 + UCBRS_6; //slau144j.pdf page 425

	UCA0CTL1 &= ~UCSWRST;		// **Initialize state machine**


	while(1)
	{
		while(!(IFG2 & UCA0TXIFG));		// TX buffer ready?
			UCA0TXBUF = 'A'; 			// setting TXBUF clears the TXIFG flag
	}
}


MSP430FR2633: Captivate Development Kit - Design Center 64 button pad with 8X8 columns and rows in mutual capacitance - Defining buttons and its ports

$
0
0

Part Number:MSP430FR2633

Hello everyone,

I have an 8x8 grid with simple copper wires. 

The mutual capacitance between horizontal wires and vertical wires varies when a finger touches the node. 

I'm connecting that grid to the Captivate Development Kit. 

When I press "Auto-Assign" for automatic connections in MSP430 microcontroller, everything goes fine. 

When I change the connections (like in the image) by hand, when I connect the system, nothing happens. 

Is there any restriction to the connections? I mean, the port CAP0.3 must be a TX port, and the port CAP0.0 must be a RX port? 

Thank you,

Gilberto Loureiro

 )

RTOS/Msp432p401r: Msp432, i2c, possibility to configure in master transmit slave recieve mode

$
0
0

Part Number:Msp432p401r

Tool/software:TI-RTOS

Need to configure i2c bus, where mcu host must be able to transmit whenever required by asserting itself as master,

Otherwise, other member in bus asserts as master, during that time host mcu (msp) should be able to receive the data as a slave with a configured slave address

RTOS/MSP430F5529: The question about configuring UART data length using TI-RTOS

$
0
0

Part Number:MSP430F5529

Tool/software:TI-RTOS

Hello.

I have a question.

Could you tell me how to configure UART data length to 7 bits in the TI-RTOS sample code?

I am using "UART Echo" sample code in the TI-RTOS for MSP43x package.

Although I modified following codes, UC7BIT of the UCA1CTLW0 register is not set.

   ・ in the souce file "uartecho.c":

  UART_Params_init(&uartParams);
  uartParams.writeDataMode = UART_DATA_BINARY;
  uartParams.readDataMode = UART_DATA_BINARY;
  uartParams.readReturnMode = UART_RETURN_FULL;
  uartParams.readEcho = UART_ECHO_OFF;
  uartParams.baudRate = 9600;
  uartParams.dataLength = UART_LEN_7;
  uart = UART_open(Board_UART0, &uartParams);

 ・in the souce file "UARTUSCIA.c":

  object->readMode = params->readMode;
  object->writeMode = params->writeMode;
  object->readTimeout = params->readTimeout;
  object->writeTimeout = params->writeTimeout;
  object->readCallback = params->readCallback;
  object->writeCallback = params->writeCallback;
  object->readReturnMode = params->readReturnMode;
  object->readDataMode = params->readDataMode;
  object->writeDataMode = params->writeDataMode;
  object->readEcho = params->readEcho;
  object->dataLength = params->dataLength;

Regards,

uchida-k

MSP432P401R: DMA External Trigger by external ADC data ready -> SPI Starts

$
0
0

Part Number:MSP432P401R

Hi,

is there any example of the external DMA input pin "DMAE0"  that start a SPI communication?

I want to use an external 24Bit ADC with the MSP432.

The interrupt PIN "Data ready" from the ADC should trigger the DMA on the DMAE0 channel.

Once the DMA is triggered it should start a SPI transfer with the new data and write the values to a buffer.

If the buffer value size is achieved, the DMA should wake the CPU.

There is an example using the internal 14Bit ADC whit DMA writting a 512 size buffer.

But how can i use it for external ADC? 

Problem with I2C communication between MSP430F5529 and AD5933

$
0
0

Part Number:MSP430F5529

#define SLAVE_ADDRESS 0x0D /**< Address to AD5933. */
#define BAUD_RATE 12 /**< Baud Rate value. */
#define SDA_PIN 0x00                                    // msp430F5529 UCB0SDA pin
#define SCL_PIN 0x01                                    // msp430F5529 UCB0SCL pin

P1DIR |= BIT1;
P1OUT |= BIT1;
P1OUT ^= (BIT1);   //turn on LED (is turned off when all data for initialization was send)

P3REN |= SDA_PIN + SCL_PIN;
P3OUT |= SDA_PIN + SCL_PIN;
P3SEL |= SDA_PIN + SCL_PIN;                 // Assign I2C pins to USCI_B0

UCB0CTL1 |= UCSWRST;                        // Enable SW reset
UCB0CTL0 = UCMST + UCMODE_3 + UCSYNC;       // I2C Master, synchronous mode
UCB0CTL1 = UCSSEL_2 + UCSWRST;              // Use SMCLK, keep SW reset
UCB0BR0 = BAUD_RATE;                        // set prescaler
UCB0BR1 = 0;
UCB0I2CSA = SLAVE_ADDRESS;                  // Set slave address
UCB0CTL1 &= ~UCSWRST;                       // Clear SW reset, resume operation
//UCB0IE = UCNACKIE;	//tried with and without this line, there isn't a difference
UCB0IE |= UCTXIE;                           // Enable TX ready interrupt

P1OUT ^= (BIT1);   //turn off LED

while (UCB0STAT & UCBBUSY)
    ;

That is my code. I know that my board works because the LED blinks fine, but I always get stuck in that last while loop.

This code is adapted from MSP430G2553 communication with AD5933 as well, where it worked fine. I did all the necessary ports and pins changes according to the datasheet.

One other difference between this and the other system is that now I am using a MSP-FET Flash Emulation Tool plus a micro UBS to power,  instead of the mini USB port. But I don't know how this may or may not affect my code.

It seems that the STAT of the MSP never changes and the communication isn't established. Can someone help me with it? I don't know what is wrong with my initialization. Maybe the problem is with the interrupts? What should I do?

Thank you all in advance for trying to help me.

Compiler: MSP430F149 capture mode Timer B

$
0
0

Tool/software: TI C/C++ Compiler

Dear all!


Who can help me with the issue with interrupt:

void main(void)
{

P4SEL=BIT0;

P1DIR |= BIT0;

P1SEL &= ~ BIT0;
P1SEL|=BIT0;
P1DIR &= ~BIT0;
timerB_init();
_BIS_SR(LPM0_bits+GIE);
}

void timerB_init()
{
TBCTL=MC_2+TBSSEL_1+TBCLR+TBIFG;
TBCCTL0=CM_1+SCS+CCIS_1+CAP+CCIE;
}
#pragma vector = TIMERB0_VECTOR
__interrupt void TIMERB0_VECTOR_ISR (void)
{
P1OUT &= ~0x01;

}

It doesn't work. I tried to go into the interrupt part, but it doesn't happen. Please could you explain me, what the reason? 

MSP430FR5969: Flashing firmware returns error : "The Debug Interface to the device has been secured"

$
0
0

Part Number:MSP430FR5969

Hi,

I think due to bad code I'm not able to program my MSP430FR5969 in CCS, it returns the error: "The Debug Interface to the device has been secured".

I also tried the MSP430Flasher with command -e ERASE_TOTAL, this returns the error: "Could not erase memory".

I'm using a MSP-FET to program the device.

Then I tried to mass erase using the BSL-Scripter tool, described here:
https://e2e.ti.com/support/microcontrollers/msp430/f/166/p/565040/2070601

I used the same connections TXD -> P2.0 (Tx) and RXD -> P2.1 (RX) and the SPY BI WIRE Connections.

version 3.2.1 of the BSL-Scripter gives me the error: [ACK_ERROR_MESSAGE]Unkown ACK Value! after the mass write.

The error should be there but after a try I still can't upload any code...

a older version 3.1.0.0 gives me no feedback at all..


MSP430FG4619: Same hex file - different memory from three different parts.

$
0
0

Part Number:MSP430FG4619

I have created a release hex file for the board that we have designed.  To ensure that we are programming the MSP430FG4619 with the proper executable, we are calculating a checksum over the program space.  With the same hex file and using the UniFlash programmer set to erase main, information, and protected memory, I am getting a different checksum from three different parts.  I know that I am not modifying the executable as I have added debug code to break if the checksum computed at the end of my main loop differs from the power up checksum.  The power up checksum is reported via message.  I have pulled the memory off the parts and diff'ed them.  The memory is off in 1 byte near the end of the executable (~80 bytes before the fill), but still within the executable.  1) I am confused as to why this would be happening.  2) I am confused as to why my executable seems to run correctly if there is a different byte in the program space.

Any help or explanations would be greatly appreciated.

Compiler: IAR

$
0
0

Tool/software: TI C/C++ Compiler

Hi , I am  working actually on msp430f425 for emeter application , I use for this the tidc299 . My problem is when the emeter is in low power mode i want that my LCD display a word , sometimes it works and  the LCD diplay what i need but with a bad contrast and the most of time it doesn't work . is it due to no existing power supply  (NB: i have a battery backup on my emeter ) , or i need to change something in my code . can any one help me to know where is the problem ? 

CCS/MSP430FR5739: Issue using DMA + ADC10

$
0
0

Part Number:MSP430FR5739

Tool/software: Code Composer Studio

Hi, I'm using the ADC10 in repeated-single channel mode for convert two channels. I use the ADCIFG as trigger for DMA0, which is configured to get 8 ADC readings from ADC10MEM0 and transfering to a buffer using DMA0SZ=8. I start conversion for a channel (e.g A0) five times and then read another channel (e.g. A1). The problem I found is that the buffer contains two readings from previous conversions, for example:

t=1, A0_buffer=[490, 491, 490, 491, 489, 490, 490, 491]

t=2, A0_buffer=[490, 491, 480, 481, 482, 480, 480, 481]

t=3, A0_buffer=[480, 481, 490, 491, 489, 490, 490, 491]

t=4, A0_buffer=[490, 491, 480, 481, 481, 480, 480, 481]

t=5, A0_buffer=[480, 481, 490, 491, 489, 490, 490, 491]

t=5, A1_buffer=[490, 491, 690, 691, 689, 690, 690, 691]

t=6, A0_buffer=[690, 691, 490, 491, 489, 490, 490, 491]

This example supposes that at t1, t3, t5 and t6, reading at channel A0 are around 490, and for t2 and t4, readings for channel A0 are ~480. Channel A1 is supposed to be at ~690.

These are the steps I am following to do this:

1. Configure DMA (destination address),

2. Configure ADC (channel),

3. Enable DMA

4. Start ADC conversions.

5. When DMA interrupt is active, disable ADC

After doing some debugging I found that the first time I run the program (t1) in step 3, DMA0SZ=8 then in step 4, DMA0SZ remains the same. In the second cycle (t2), DMA0SZ=8 in step 3 but after enabling DMA with DMAEN bit and steping to the next line, DMA0SZ changes to 6. This explains why two readings are wrong in the final buffer.

Any hint on this issue?

MSP430F2274: Comparator basics

$
0
0

Part Number:MSP430F2274

I'm trying to use the comparator as an audio pulse detector.  I'm paranoid about burning up a part, and sufficiently anal that I try to find exact matches for terminlogy.  Hence my 2 questions:

1 - My assumption is that the pinouts with generic terms like 'analog input x' ("Ax") refer to the pins that can be configured for the comparator (whose register definitions suggest as "CAx"), OpAmps ("OAx"), and the ADC ("Ax").  True or False?  If false, what pins ARE for the comparator?

2 - My gut tells me I can't really send a zero-referenced analog waveform (+ and - peaks) into the device without risking dangerous reverse breakdown voltage situations.  Is that true?  If so, I need a simple way to rectify the waveform.  On the plus side, a simple diode may suffice.  My concerns are 2-fold:

     A - will the (roughly) 0.7v reverse bias be problematic?  Is it safer to go with germanium and get 0.4v?

     B - I'm working with relatively small signal inputs.  Guess I could use an internal OpAmp, but the project starts getting complex.  Also, I don't know if I can live with losing 0.7v in the forward bias direction.  Suggestions?  If I use the '25% of Vcc' reference voltage, my switching point is 0.9v.  Further, if I lose 0.7v in the waveform rectification, the raw analog voltage must be 1.6v (all rought numbers).  A 2 Vp-p signal (1V peak +) can't work. :(

Any thoughts are appreciated.

RTOS/MSP432P401R: Hwi create error.

$
0
0

Part Number:MSP432P401R

Tool/software:TI-RTOS

I'm working with TI RTOS to achieve the following, start an ADC conversion, convert the result to between 50 and 90, and display using printf.  I would like to use the ADC14's interrupt to trigger the hwi1Fxn but I keep getting the error.

[CORTEX_M4_0] Initializing
ti.sysbios.family.arm.m3.Hwi: line 143: E_alreadyDefined: Hwi already defined: intr# 24
HWI create failed

When first starting debugging, after the pause on main, looking at the Hwi module in ROV, the function ti_sysbios_family_arm_msp432_Timer_periodicStub__E already has the intNum 24.  I saw a similar issue in the thread e2e.ti.com/.../1604590 but that wasn't able to solve my issue.

Code as follows.  Error happens at Hwi_create.  My question is what interrupt number would be correct for ADC14 on the MSP432P401R and what hwi is already created with the interrupt number 24?

/*
 * Copyright (c) 2015, Texas Instruments Incorporated
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * *  Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * *  Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * *  Neither the name of Texas Instruments Incorporated nor the names of
 *    its contributors may be used to endorse or promote products derived
 *    from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

/*
 *  ======== empty.c ========
 */
/* XDCtools Header files */
#include <xdc/std.h>
#include <xdc/runtime/System.h>
#include <xdc/runtime/Error.h>
#include "msp.h"
#include "Nokia5110.h"

/* BIOS Header files */
#include <ti/sysbios/BIOS.h>
#include <ti/sysbios/knl/Task.h>
#include <ti/sysbios/knl/Event.h>
#include <ti/sysbios/knl/Clock.h>
#include <ti/sysbios/knl/Swi.h>
#include <ti/sysbios/hal/Timer.h>
#include <ti/sysbios/hal/Hwi.h>

/* TI-RTOS Header files */
#include <ti/drivers/GPIO.h>
#include <ti/drivers/ADC.h>
// #include <ti/drivers/I2C.h>
// #include <ti/drivers/SDSPI.h>
// #include <ti/drivers/SPI.h>
// #include <ti/drivers/UART.h>
// #include <ti/drivers/Watchdog.h>
// #include <ti/drivers/WiFi.h>

/* Board Header file */
#include "Board.h"

#define TASKSTACKSIZE   568
#define TIMEOUT 1000

/* Global Variable */
uint16_t raw;
uint16_t tempf;
uint16_t newtempf;

Timer_Handle timer;
Swi_Handle swi;
Task_Handle task1, task2;
Event_Handle event1, event2;
Clock_Handle clk;
Clock_Struct clkStruct;
Hwi_Handle hwi;
ADC_Handle adc;


/* Here on Timer interrupt */
Void hwiFxn(UArg arg)
{
    GPIO_toggle(Board_LED1);
    Swi_post(swi);
}

/* Here on ADC interrupt */
Void hwi1Fxn(UArg arg)
{
    raw = ADC14->MEM[0];
}

/* Swi thread to handle Timer interrupt */
Void swiFxn(UArg arg1, UArg arg2)
{
    if(~(ADC14->CTL0 && ADC14_CTL0_BUSY))//check to see if not busy
    {
            raw = ADC14->MEM[0];
            Event_post(event1, Event_Id_01);
            ADC14->CTL0 |= ADC14_CTL0_SC;
    }

}

/* Task pending event1 */
Void task1Fxn(UArg arg1, UArg arg2)
{
    for(;;)
    {
        UInt posted1;

        posted1 = Event_pend(event1,Event_Id_NONE,Event_Id_01,BIOS_WAIT_FOREVER);
        if(posted1 != 0)
        {
            newtempf = ((float)raw/0x3fff)*40+50; //Scale value to 50-90 deg. F
            if(tempf != newtempf)
            {
                tempf = newtempf;
                Event_post(event2, Event_Id_01); //Notify of setpoint value available
            }
        }
        System_flush();
    }
}

/* Task pending event2 */
Void task2Fxn(UArg arg1, UArg arg2)
{
    for(;;)
    {
        UInt posted2;
        UInt key1, key2;

        posted2 = Event_pend(event2,Event_Id_NONE,Event_Id_01,BIOS_WAIT_FOREVER);
        if(posted2 != 1)
        {
            key1 = Swi_disable();
            key2 = Hwi_disable();

            System_printf("Setpt.: %u F\n", newtempf);
            Nokia5110_SetCursor(7,1);
            Nokia5110_OutUDec(tempf);

            Swi_restore(key1);
            Hwi_restore(key2);
        }
        System_flush();
    }
}

Void clkFxn(UArg arg)
{

}

/*
 *  ======== main ========
 */
int main(void)
{
    ADC14->CTL0 = ADC14_CTL0_ON |ADC14_CTL0_SHT0_2 | ADC14_CTL0_SHP;
    ADC14->CTL1 = ADC14_CTL1_RES__14BIT;            //14 bit resolution
    ADC14->MCTL[0] |= ADC14_MCTLN_INCH_0;           //A0 MEM[0]
    //ADC14->IER0 |= ADC14_IER0_IE1;                  //Interrupt enable
    ADC14->CTL0 |= ADC14_CTL0_ENC | ADC14_CTL0_SC;

    Timer_Params timerParams;
    Task_Params taskParams;
    Swi_Params swiParams;
    Clock_Params clkParams;
    Hwi_Params hwiParams;
    Error_Block eb;
//    ADC_Params adcparams;

    Error_init(&eb);
    Timer_Params_init(&timerParams);
    Task_Params_init(&taskParams);

    /* Call init functions */
    Board_initGeneral();
    Board_initGPIO();
    Board_initADC();
    Nokia5110_Init();

    Nokia5110_Clear();
    Nokia5110_OutString("Setpt.:  F");

    System_printf("Initializing\n");
    System_flush();

    /* Create ADC Instance */
/*    ADC_Params_init(&adcparams);
    adc = ADC_open(Board_ADC0, &adcparams);
    if (adc == NULL) {
        System_abort("Error initializing ADC channel 0\n");
    }
    else {
        System_printf("ADC channel 0 initialized\n");
    }
*/
    /* Create Swi with default priority 15 */
    /* Swi handler is 'swiFxn' which runs as a Swi thread. */
    Swi_Params_init(&swiParams);
    swiParams.arg0 = 0;
    swiParams.arg1 = 0;
    swiParams.priority = 1;
    swiParams.trigger = 1;
    swi = Swi_create(&swiFxn,&swiParams,&eb);
    if (swi == NULL)
    {
        System_abort("Swi create failed");
    }

    /* Create task1 and task2 which run as a Task thread. */
    Task_Params_init(&taskParams);
    taskParams.priority = 2;
    task1 = Task_create(&task1Fxn,&taskParams,&eb);
    if (task1 == NULL)
    {
        System_abort("Task 1 create failed");
    }
    taskParams.priority = 1;
    task2 = Task_create(&task2Fxn,&taskParams,&eb);
    if(task2 == NULL)
    {
        System_abort("Task 2 create failed");
    }

    /* Create event1 and event2 for tasks to pend on */
    event1 = Event_create(NULL,&eb);
    if(event1 == NULL)
    {
        System_abort("Event 1 create failed");
    }
    event2 = Event_create(NULL,&eb);
    if(event2 == NULL)
    {
        System_abort("Event 2 create failed");
    }

    /* Set up clock to go off every 2 timer interrupts */
    Clock_Params_init(&clkParams);
    clkParams.period = 2;
    clkParams.startFlag = TRUE;

    clk = Clock_create(&clkFxn, 2, &clkParams, &eb);
    if (clk == NULL) {
     System_abort("clock create failed");
     }

    /* Configure timer with 0.5s interrupt period */
    timerParams.period = 500000;
    timer = Timer_create(Timer_ANY,&hwiFxn,&timerParams,&eb);
    if (timer == NULL)
    {
        System_abort("Timer create failed");
    }

    /* Configure HWI */
    Hwi_Params_init(&hwiParams);
    hwiParams.arg = 1;
    hwiParams.eventId = 24;//ADC interrupt number
    hwiParams.maskSetting = Hwi_MaskingOption_SELF;
    hwi = Hwi_create(24,&hwi1Fxn, &hwiParams, &eb);
    if (hwi == NULL)
    {
        System_abort("HWI create failed");
    }
  //This section of code was unsuccessful.  User manual has ADC interrupt at 24 but 24 is used by TIMER or clockTick

    System_printf("Starting Lab6v2\n");
    System_flush();

    /* Start BIOS */
    BIOS_start();

    return (0);
}

MSP432P401R: external SPI Flash

$
0
0

Part Number:MSP432P401R

Hi,

The flash related section in the reference manual is mainly discussing how to access internal flash in MSP432.

How to access (read/write) external SPI Flash in MSP432 ?  any API provided ?  any sample application I can refer to ?

Thank you.

msp432p401r: msp432 UCTXCPTIFG (eUSCI) doesn't seem to work

$
0
0

Part Number:msp432p401r

I'm running an eUSCI (A) as a UART sending a stream at 4800 baud (1 byte time is about 2ms).  I send a stream and then want to make sure that all the bytes have gone out before switching baud rates.  According to everyihing I've read in the manuals, datasheets, and on the forum (e2e) I should be able to monitor UCTXCPTIFG and when it goes 1 that says that both the TXBUF and the outgoing shift register should be empty.

But it doesn't seem to work.  Here is the scenerio.....  I'm using the TXIFG interrupt to feed the outgoing stream to the eUSCI TXBUF.  That works perfectly.  When the last byte has been sent to TXBUF, I then busy wait waiting for TXIFG to come back indicating that the TXBUF is empty.  I then busy wait on TXCPTIFG waiting for complete to indicate the shift register is empty.  But it immediately returns.

How do I know that it immediately returns?  Well I'm looking at a 1us ticker that I have running.   And the time from the last char being output to the eUsci to the TXIFG going up is 2156 (~2ms, sounds right, 1 byte time @ 4800 baud), and the TXCPTIFG is already up at that point.  The delta is about 4us which is how long it takes for the instructions to go out and look.

Doesn't look like TXCPTIFG actually works like you say.  Can someone at TI verify this please?


MSP430G2553: I2C slave not acknowledging consistently

$
0
0

Part Number:MSP430G2553

I am currently interfacing msp430g2553 with ds1307. While the rtc acknowledges, with read write operations performing correctly, it stops acknowledging on the next run. Any suggestions?

TIDA-00120: Modified version of TIDA-00120

MSP430FR2311: How to sample with ADC the A1 pin using DriverLib

$
0
0

Part Number:MSP430FR2311

Hi,

I am trying to use he ADC with the A1 input pin but for some reason the input source in the "ADC configureMemory" function starts with ADC_INPUT_A2.

Thanks,

Shachar

MSP430F6779A: AUXVCC Pin Connection

$
0
0

Part Number:MSP430F6779A

Hi

At present am working on a energy meter project which is having the MSP430F6779A controller.I am not using any auxiliary supply in my design .

As I am not using any auxiliary supply, is it recommended to use the decoupling capacitors in those pins(AUXVCC1 to 3) or just left floating??

Please reply

Thanks & Regards

Lakshmy V

CCS/BOOSTXL-BATPAKMKII: RemainingCapacity() return value is not correct

$
0
0

Part Number:BOOSTXL-BATPAKMKII

Tool/software: Code Composer Studio

Hi,

I've got a problem using Fuel Tank BoosterPack together with MSP-EXP401R Launchpad.

I'm using the BOOSTXL-BATPAKMKII_FuelGauge_MSP432P401R software example.

Whatever the initial state of the battery, RemainingCapacity() equal to 0 when I plug it.

I have discharge the battery and charge after, the RemainingCapacity() increased. But when I have disconnect and reconnect the value goes back to 0. If I connect a partially charged battery, it will start at 0 and increase but will never reach 100%.

StatOfCharge() equal to 0 when the battery is discharging and equal to 100 when the battery is charging.

What I can do to have the good value when I disconnect and reconnect the battery?

Can I force the value of RemainingCapacity() when I know its correct value(when the flag Full-charge or the flag SOCF is activated for exemple)?

Best Regards,

Pierre

 

Viewing all 21999 articles
Browse latest View live