This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

msp430f5529 vs msp432p401r

Other Parts Discussed in Thread: ADS1256, MSP430F5529, MSP430F5510

Hello,

Starting a new design and I am in trouble with uC selection. I don't know what device should I chose. The project primary goal is data acquisition over SPI using ADS1256. For high channel count I am planning to use 4 ADS1256 (16Channel) The right sampling speed for ADC is 500SpS with 32pga value. I would like to stream the data to PC over uart. ( Not planning to use USB)

I think the bottleneck is the uC to PC transmission. 4times of 500Sps is a large amount of data, and I am doubt that the F5529 is able to handle it. Thats why I am taking account the new MSP432

The reason why I choose F5529 is I have experience with that device, large community background.

However the MSP432 has many useful features and parameters like floating point support or higher cpu speed and so on. Relatively new design.

What is your recommendation? When and why do you suggest MSP432 instead of MSP432? 

  • 8000 samples per second isn't really that much. Anyway, I would choose USB over UART, because USB has hardware support for buffering and queueing, and because it's the only interface commonly supported by PCs.

    I do not see anything that would require the MSP432, unless you need to do floating-point computations on the MCU.

  • Well, maybe Daniel has enough bad experience with the USB-UART stuff regarding the MSP432 for the moment :)
  • Hello Clemens,
    Thank you for your reply. I had a discussion about USB vs UART:

    e2e.ti.com/.../1518758

    Please correct me if I am wrong but the reason why I chose UART:
    - If I have to switch to MSP432 it has already UART comm. module. (Code is almost 100% compatible)
    - If the amount of data does not require higher transfer speed, the UART is enough.
    - The board final design should be simple using UART to USB (FTDI) even the prototyping and debugging.

    The major benefit of USB is the HW support in my case.
  • Hello Dennis, ;)

    Yes you are right.
    Despite of the onboard xds issue, you pointed me to the right direction by suggesting an additional UART to USB FTDI device. The cable has just arrived yet.

    If I stick with the UART for PC communication the MSP432 and the F5529 is almost the "same". 

    How about the 32Channel? I mean 16.000 bytes/sec should be handled via UART? Or hardware usb support is required?

  • Daniel Vamos said:

    The reason why I choose F5529 is I have experience with that device, large community background.


    And what feature of 5529 you need, and 5510 don't have it?

  • 5510? Sorry, I don't understand.

    I made a test to compare the UART and USB speed in F5529. 

    UART: The following cable is connected to the isolation pins, : 

    #define BAUD_RATE 115200
    volatile uint8_t receivedData;
    
    void main(void)
    {
        HAL_InitSystem();
    
        //P4.4,5 = USCI_A1 TXD/RXD
        GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P4,GPIO_PIN4 + GPIO_PIN5);
    
        //clock freq = 20.000MHz
        USCI_A_UART_initParam param = {0};
        param.selectClockSource = USCI_A_UART_CLOCKSOURCE_SMCLK;
        param.clockPrescalar = 173;
        param.firstModReg = 0;
        param.secondModReg = 5;
        param.parity = USCI_A_UART_NO_PARITY;
        param.msborLsbFirst = USCI_A_UART_LSB_FIRST;
        param.numberofStopBits = USCI_A_UART_ONE_STOP_BIT;
        param.uartMode = USCI_A_UART_MODE;
        param.overSampling = USCI_A_UART_LOW_FREQUENCY_BAUDRATE_GENERATION;
    
        if(STATUS_FAIL == USCI_A_UART_init(USCI_A1_BASE, &param))
        {
            return;
        }
    
        USCI_A_UART_enable(USCI_A1_BASE);
    
        //Enable Receive Interrupt
        USCI_A_UART_clearInterrupt(USCI_A1_BASE,USCI_A_UART_RECEIVE_INTERRUPT);
        USCI_A_UART_enableInterrupt(USCI_A1_BASE,USCI_A_UART_RECEIVE_INTERRUPT);
    
        __enable_interrupt();
    
        uint16_t i;
        char* hostmessage;
    
        while(1)
        {
        	__bis_SR_register(LPM0_bits + GIE);
    	_NOP();
    		
    	for(i = 0;i<8000;i++)
    	{
    	     USCI_A_UART_transmitData(USCI_A1_BASE,(uint8_t)63);
    	}
        }
    }

    As you can see, I am sending 8000 bytes with the highest baud rate as I can. The transfer take 700 ms!!!

    In the next trial I am using onboard USB:

    The basic LED ON OFF example is modified as you seen below: 8MHz MCLK, 

                            // Compare to string #1, and respond
                            if (!(strcmp(wholeString, "START")))
                            {
                            	char dummyData[200] ="";
                            	for(i = 0;i<40;i++)
                            	{
                            		USBCDC_sendDataAndWaitTillDone((uint8_t*)dummyData,200,CDC0_INTFNUM,0);
                            	}
                             }
    

    The transfer takes only 19ms!!! This is awesome!  Well my question is obvious: What is the problem with my UART code? is the any way to optimize it?

    If the USB is so fast, I will chose the F5529 for my design. 

  • I was thinking if MSP430F5510 can do all the job, is there any special reason for MSP430F5529?

    There is no problem with your UART code, 8000 / 700 ms = 11429 and this is close to 115200 bps.

    IF you want higher UART speed, use higher BR. MSP430F5529 can go over 1 Mbps without problems, and you are using bridge anyway that is not locked by hardware 115200 value.

    forum.43oh.com/.../3413-msp430-uart-benchmark

  • Hello zrno,
    Thank you for your reply and for the benchmark tests that u made in the past.

    If I increase the BR to a theoretical maximum (for example 3Mbps, the usb is still much faster then the UART) The reason why I was wondering about UART is MSP432 has uart output. Well, the F55xx series seems fine for the job I will use the chip usb.
    (Maybe in the future if I increase the ADS sampling speed, the USB can handle the larger amount of data easily.)

    "is there any special reason for MSP430F5529?" - Only one: right now I am using the F5529LP for prototyping .

    Thank you for your time, and suggestions.

    Cheers,

**Attention** This is a public forum