Hi Bob, sorry for the late reply, was ver busy the last time, but thanks for your intention to help me. I've found a msp430fr5994evm in my collection, so i've tried to use it for a extern communication as an uart. As you explained I installed a jumper to set the Tiva chip into reset state. Then I connected the uart-pins of the msp430fr5994evm to the j3 pins on the ads122u04evm (rx to tx, tx to rx). For the msp430fr5994 i use a programm in which i've defined two uarts. The code is posted below. UCA0 is used as a software uart, so i use a terminal program connected to the port4 to transmitt data to the msp430fr5994 . this data is transmitted to the second uart, which is used as the connection between the msp430fr5994evm and the ads122u04evm . But sadly thats doesn't solve my probelm, i doesn't get any data transfered by the ads122u04 . Perhaps you can help me again. Thanks and greets Jan Dombrowski #include unsigned char data1; int main(void) { WDTCTL = WDTPW | WDTHOLD; // Stop Watchdog // Configure GPIO P6SEL1 &= ~(BIT0 | BIT1); P6SEL0 |= (BIT0 | BIT1); // USCI_A3 UART operation P2SEL0 &= ~(BIT0 | BIT1); //usci0 P2SEL1 |= BIT0 | BIT1; // Disable the GPIO power-on default high-impedance mode to activate // previously configured port settings PM5CTL0 &= ~LOCKLPM5; // Startup clock system with max DCO setting ~8MHz CSCTL0_H = CSKEY_H; // Unlock CS registers CSCTL1 = DCOFSEL_3 | DCORSEL; // Set DCO to 8MHz CSCTL2 = SELA__VLOCLK | SELS__DCOCLK | SELM__DCOCLK; CSCTL3 = DIVA__1 | DIVS__1 | DIVM__1; // Set all dividers CSCTL0_H = 0; // Lock CS registers // Configure USCI_A3 for UART mode UCA3CTLW0 = UCSWRST; // Put eUSCI in reset UCA0CTLW0 = UCSWRST; UCA3CTLW0 |= UCSSEL__SMCLK; // CLK = SMCLK UCA0CTLW0 |= UCSSEL__SMCLK; // Baud Rate calculation // 8000000/(16*9600) = 52.083 // Fractional portion = 0.083 // User's Guide Table 21-4: UCBRSx = 0x04 // UCBRFx = int ( (52.083-52)*16) = 1 UCA3BRW = 52; // 8000000/16/9600 UCA0BRW = 52; UCA3MCTLW |= UCOS16 | UCBRF_1 | 0x4900; UCA0MCTLW |= UCOS16 | UCBRF_1 | 0x4900; UCA3CTLW0 &= ~UCSWRST; // Initialize eUSCI UCA0CTLW0 &= ~UCSWRST; UCA3IE |= UCRXIE; // Enable USCI_A3 RX interrupt UCA0IE |= UCRXIE; __bis_SR_register(LPM3_bits | GIE); // Enter LPM3, interrupts enabled __no_operation(); // For debugger } #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__) #pragma vector=EUSCI_A3_VECTOR __interrupt void USCI_A3_ISR(void) #elif defined(__GNUC__) void __attribute__ ((interrupt(EUSCI_A3_VECTOR))) USCI_A3_ISR (void) #else #error Compiler not supported! #endif { switch(__even_in_range(UCA3IV, USCI_UART_UCTXCPTIFG)) { case USCI_NONE: break; case USCI_UART_UCRXIFG: while(!(UCA3IFG&UCTXIFG)); UCA0TXBUF = UCA3RXBUF; __no_operation(); break; case USCI_UART_UCTXIFG: break; case USCI_UART_UCSTTIFG: break; case USCI_UART_UCTXCPTIFG: break; default: break; } } #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__) #pragma vector=EUSCI_A0_VECTOR __interrupt void USCI_A0_ISR(void) #elif defined(__GNUC__) void __attribute__ ((interrupt(EUSCI_A0_VECTOR))) USCI_A0_ISR (void) #else #error Compiler not supported! #endif { switch(__even_in_range(UCA0IV, USCI_UART_UCTXCPTIFG)) { case USCI_NONE: break; case USCI_UART_UCRXIFG: while(!(UCA0IFG&UCTXIFG)); UCA3TXBUF = UCA0RXBUF; __no_operation(); break; case USCI_UART_UCTXIFG: break; case USCI_UART_UCSTTIFG: break; case USCI_UART_UCTXCPTIFG: break; default: break; } }
↧