LAUNCHXL-F280049C: SCI Rx not workig properly

Part Number: LAUNCHXL-F280049C
Other Parts Discussed in Thread: SYSCONFIG

Hi Team,

I am working with UART section in launcXl. i have used RX and TX ISR for both SCIA and SCIB. J8-76pin of board is connected with J8-73. which are used as Tx and RX. When i send one byte 0xA4 SCIA, i received 0xA4 in same SCIB. But when i send 4 bytes, 0xA2, 0xA2, 0xA2, 0xA2 , supprisingly i am receiving 162d,209d, 209d 209d in buffer.  

Initially i was using MOdbus poll and 485 hardware, i doubt about 485 hardware so i connect internally by SCIA and SCIB, result is same. first byte is always correct(i.e.162 in this case but if i change to 0xA2 to oxA3, rcved will be : 165d)) but other data will change. 

::::::::::::::::::::::Configurations::::::::::::::::::
void mySCI0_init(){
    SCI_clearInterruptStatus(mySCI0_BASE, SCI_INT_RXFF | SCI_INT_TXFF | SCI_INT_FE | SCI_INT_OE | SCI_INT_PE | SCI_INT_RXERR | SCI_INT_RXRDY_BRKDT | SCI_INT_TXRDY);
    SCI_clearOverflowStatus(mySCI0_BASE);
    SCI_disableFIFO(mySCI0_BASE);
    SCI_resetChannels(mySCI0_BASE);
    SCI_setConfig(mySCI0_BASE, DEVICE_LSPCLK_FREQ, mySCI0_BAUDRATE, (SCI_CONFIG_WLEN_8|SCI_CONFIG_STOP_ONE|SCI_CONFIG_PAR_NONE));
    SCI_disableLoopback(mySCI0_BASE);
    SCI_performSoftwareReset(mySCI0_BASE);
    SCI_enableInterrupt(mySCI0_BASE, SCI_INT_RXRDY_BRKDT | SCI_INT_TXRDY);
    SCI_enableModule(mySCI0_BASE);
}
void mySCI1_init(){
    SCI_clearInterruptStatus(mySCI1_BASE, SCI_INT_RXFF | SCI_INT_TXFF | SCI_INT_FE | SCI_INT_OE | SCI_INT_PE | SCI_INT_RXERR | SCI_INT_RXRDY_BRKDT | SCI_INT_TXRDY);
    SCI_clearOverflowStatus(mySCI1_BASE);
    SCI_disableFIFO(mySCI1_BASE);
    SCI_resetChannels(mySCI1_BASE);
    SCI_setConfig(mySCI1_BASE, DEVICE_LSPCLK_FREQ, mySCI1_BAUDRATE, (SCI_CONFIG_WLEN_8|SCI_CONFIG_STOP_ONE|SCI_CONFIG_PAR_NONE));
    SCI_disableLoopback(mySCI1_BASE);
    SCI_performSoftwareReset(mySCI1_BASE);
    SCI_enableInterrupt(mySCI1_BASE, SCI_INT_RXRDY_BRKDT | SCI_INT_TXRDY);
    SCI_enableModule(mySCI1_BASE);
}
////////////////////5msISR ruitine////////////////////
if(timer > 1000)
   {
        timer = 0;
        ModbusA.txBuf[0] = 0xA2;
        ModbusA.txBuf[1] = 0xA2;
        ModbusA.txBuf[2] = 0xA2;
        ModbusA.txBuf[3] = 0xA2;
        ModbusA.txLen = 3;
        ModbusA.txBusy = 1;
        ModbusA.txIndex = 0;
        SCI_writeCharBlockingFIFO(ModbusA.base, ModbusA.txBuf[0]);
   }
//////////////////////RxISR Data Collection////////////////////
  uint16_t data;
    // Read all available bytes in FIFO
    // Returns number of words in RX FIFO (0–16)
    if(ModbusB.rxIndex > 6)
        ModbusB.rxIndex = 0;
    data = SCI_readCharNonBlocking(ModbusB.base);
    ModbusB.rxBuf[ModbusB.rxIndex++] = (uint8_t)data;
   /////////////////////////////////
 
 
/////////////////////Tx ISR////////////////////
 

__interrupt  void INT_mySCI0_TX_ISR(void)
{
    if(ModbusA.txBusy && ModbusA.txLen > 0) {
        SCI_writeCharBlockingFIFO(ModbusA.base, ModbusA.txBuf[ModbusA.txIndex++]);
        ModbusA.txLen--;
        if(ModbusA.txLen == 0)
        {
            ModbusA.txBusy = false;
        }
    }
    SCI_clearInterruptStatus(ModbusA.base, SCI_INT_TXRDY);
    Interrupt_clearACKGroup(INTERRUPT_ACK_GROUP9);
}