• Resolved

CCS/MSP430F5529: Does the MSP430F5529 support 921600 UART BAUD RATE ?

Part Number: MSP430F5529

Tool/software: Code Composer Studio

Dear TI Support Team,

I want to communicate with MSP430F5529 through the UART with baud rate 921600.

Is it possible?  if yes, what is the correct configuration?

If not, what's the maximum baudrate ?

regards,
Haithem.

  • BTW, 5529 has USB hardware module, and (CDC / bulk) transfer can go up to 1 Mbyte/s.

    Depend on MCLK and UCA source clock, UART can go up to 6 Mbps.

    http://forum.43oh.com/topic/3413-msp430-uart-benchmark/

    There are many online BR calculators for msp, here is mine for offline setup...

    MSP430UartCalc.rar

  • As shown in the datasheet, the maximum baud rate is 1 MHz.

    The UART's clock source must be at least three times the baud rate (or at least sixteen times in oversampling mode). However, the USCI baud-rate generator tends to work best when it can divide the clock source by a large divisor, so you should make the clock source as fast as possible. How to calculate the resulting errors is shown in section 36.3.9 of the User's Guide; or just use the USCI UART Calculator. After playing with some valuest, it appears that 24 MHz is a good clock source.

    Please note that the DCO is not very accurate and introduces jitter; you need to take the clock source directly from a 24 MHz crystal (oscillator).

  • In reply to Clemens Ladisch:

    Dear Clemens,

    Thank you for your reactivity!

    Could you please help me to correctly configure UART registers and connect the BRsclk source clock directly to the external crystal source?

    Note that in my board I have to crystal one 24MHZ ( ABM3B-24.000MHZ-10-1-U-T ) the second is 32.768KHZ,I need to communicate with an external peripheric(not a host) through  high-speed UART 

    Regards,

    Haithem.

  • In reply to Haithem Rahmouni:

    I have just tested my board with configuration as below, but I haven't received a good/correct data !

    with 115200 : test OK  / for baudrate (230400, 460800,921600 ) test NOK missed and wrong data.

    Test condition : My board connected to PC through EZ-FET with UART conexions ( MCU(MSP430 <--> EZ-FET UART Bridge <---> PC)

    UART Configuration :

    Any suggestion or advice, please?!

  • In reply to Haithem Rahmouni:

    Here is setup for 1 Mbps, with 24 MHz XT2 MCLK as UART clock source. 24 / 18h = 24 / 24 = 1 Mbps (no error).


    I guess that eZ-FET Lite USB / UART bridge is limited to some fixed baudrate values, like MSP-FET.


    There is no problem with 2xx/5xx device UART on higher rates. Here you can see my dual bridge with 2xx device in action on 4 Mbps.

    		mov.w #WDTPW + WDTHOLD, &WDTCTL
    
    		mov.b &CALBC1_16MHZ, &BCSCTL1
    		mov.b &CALDCO_16MHZ, &DCOCTL
            
    		bis.b #UCSWRST, &UCA0CTL1
    
    		bis.b #(BIT5 + BIT4), &P3SEL	; P3.4/P3.5 = TXD/RXD
    		bis.b #UCSSEL_2, &UCA0CTL1	; SMCLK
    
    		; 16000000 Hz  4000000 bps
    		mov.b #004h, &UCA0BR0
    		mov.b #000h, &UCA0BR1
    		bis.b #(UCBRS_0 + UCBRF_0), &UCA0MCTL
    
    		bic.b #UCSWRST, &UCA0CTL1
    
    		mov.w #70, R14
    		mov.b #32, R15
    		
    Loop		bit.b #UCA0TXIFG, &IFG2
    		jnc Loop
    		mov.b R15, &UCA0TXBUF
    		
    		add.b #1, R15
    		cmp.b #127, R15
    		jne Loop
    		
    		mov.b #32, R15
    		sub.w #1, R14
    		jnz Loop

  • In reply to Haithem Rahmouni:

    How did you configure ACLK?

    The eZ-FET uses a 4 MHz resonator, so it's likely that the problem is the backchannel UART.

    What is the actual problem you're trying to solve? Do you actually intend to use the backchannel UART, or some other device?
  • In reply to Clemens Ladisch:

    Thank you for your help !

    Problem resolved, it work perfectly with the shown configuration at 24Mhz.

    The problem was the EZ-Fet that I used as UART to USB adaptator to test my UART communication. I changed it with an FTDI adaptator.
  • In reply to Haithem Rahmouni:

    Now I have a problem with reciving data , when I send a packet of bytes from my PC to MCU I remarq that I only got the last byte of the packet !
    Note that this test is work fine with ( 115200, 230400, 460800 ) but I have the problem only when Baudrate is 921600.

    Any Help please ?
  • In reply to Haithem Rahmouni:

    Apparently, your code does not react fast enough to the received bytes.