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.
Hi
I am looking forward to establish communication between F28335 control card and F28069 control stick.
Can anyone suggest how do I move ahead?
I am not very clear with the hardware connection too.Would that be connecting F28335 Tx and Rx pins through Rs-232 to PC and enter the value on hyperterminal and then to F28069.
Or i have to connect Tx and Rx pins of two dsp's together?
Kindly help
thanks
Sneha
Hi Sneha,
Sneha Thakur said:Can anyone suggest how do I move ahead?
I am not very clear with the hardware connection too.Would that be connecting F28335 Tx and Rx pins through Rs-232 to PC and enter the value on hyperterminal and then to F28069.
Or i have to connect Tx and Rx pins of two dsp's together?
You can connect both the controllers directly with each other without any interfacing hardware in between. At the max you can use an isolator hardware (to be frank not required)
The most important part here is the configuration of SCI peripheral & baudrate.
Regards,
Gautam
Hi Gautam
As suggested by you, after matching the baud rates for both the controllers i have moved ahead with the SCI communication between the two,by connecting their Tx and Rx pins together (F28069 and F28335).
The baud rates for both is 9600.I can see the TxBUF in the watch windowchanging values but no change in RxBUF.The code is as follows.I am missing something very important in it.Can you please help.
1. Tx code for F28069
// TI File $Revision: /main/2 $ // Checkin $Date: January 4, 2011 10:03:22 $ //########################################################################### // // FILE: Example_2806xSci_Echoback.c // // TITLE: F2806x Device SCI Echoback. // // ASSUMPTIONS: // // This program requires the F2806x header files. // As supplied, this project is configured for "boot to SARAM" operation. // // Connect the SCI-A port to a PC via a transciever and cable. // The PC application 'hypterterminal' can be used to view the data // from the SCI and to send information to the SCI. Characters recieved // by the SCI port are sent back to the host. // // As supplied, this project is configured for "boot to SARAM" // operation. The F2806x Boot Mode table is shown below. // $Boot_Table: // // While an emulator is connected to your device, the TRSTn pin = 1, // which sets the device into EMU_BOOT boot mode. In this mode, the // peripheral boot modes are as follows: // // Boot Mode: EMU_KEY EMU_BMODE // (0xD00) (0xD01) // --------------------------------------- // Wait !=0x55AA X // I/O 0x55AA 0x0000 // SCI 0x55AA 0x0001 // Wait 0x55AA 0x0002 // Get_Mode 0x55AA 0x0003 // SPI 0x55AA 0x0004 // I2C 0x55AA 0x0005 // OTP 0x55AA 0x0006 // ECANA 0x55AA 0x0007 // SARAM 0x55AA 0x000A <-- "Boot to SARAM" // Flash 0x55AA 0x000B // Wait 0x55AA Other // // Write EMU_KEY to 0xD00 and EMU_BMODE to 0xD01 via the debugger // according to the Boot Mode Table above. Build/Load project, // Reset the device, and Run example // // $End_Boot_Table // // // Description: // // // This test recieves and echo-backs data through the SCI-A port. // // 1) Configure hyperterminal: // Use the included hyperterminal configuration file SCI_96.ht. // To load this configuration in hyperterminal: file->open // and then select the SCI_96.ht file. // 2) Check the COM port. // The configuration file is currently setup for COM1. // If this is not correct, disconnect Call->Disconnect // Open the File-Properties dialog and select the correct COM port. // 3) Connect hyperterminal Call->Call // and then start the F2806x SCI echoback program execution. // 4) The program will print out a greeting and then ask you to // enter a character which it will echo back to hyperterminal. // // // Watch Variables: // LoopCount for the number of characters sent // ErrorCount // // //########################################################################### // $TI Release: 2806x C/C++ Header Files and Peripheral Examples V1.00 $ // $Release Date: January 11, 2011 $ //########################################################################### #include "DSP28x_Project.h" // Device Headerfile and Examples Include File // Prototype statements for functions found within this file. void scia_echoback_init(void); void scia_fifo_init(void); void scia_xmit(int a); void scia_msg(char *msg); // Global counts used in this example Uint16 LoopCount; Uint16 ErrorCount; void main(void) { Uint16 ReceivedChar; char *msg; // Step 1. Initialize System Control: // PLL, WatchDog, enable Peripheral Clocks // This example function is found in the F2806x_SysCtrl.c file. InitSysCtrl(); // Step 2. Initalize GPIO: // This example function is found in the F2806x_Gpio.c file and // illustrates how to set the GPIO to it's default state. // InitGpio(); Skipped for this example // For this example, only init the pins for the SCI-A port. // This function is found in the F2806x_Sci.c file. InitSciaGpio(); // Step 3. Clear all interrupts and initialize PIE vector table: // Disable CPU interrupts DINT; // Initialize PIE control registers to their default state. // The default state is all PIE interrupts disabled and flags // are cleared. // This function is found in the F2806x_PieCtrl.c file. InitPieCtrl(); // Disable CPU interrupts and clear all CPU interrupt flags: IER = 0x0000; IFR = 0x0000; // Initialize the PIE vector table with pointers to the shell Interrupt // Service Routines (ISR). // This will populate the entire table, even if the interrupt // is not used in this example. This is useful for debug purposes. // The shell ISR routines are found in F2806x_DefaultIsr.c. // This function is found in F2806x_PieVect.c. InitPieVectTable(); // Step 4. Initialize all the Device Peripherals: // This function is found in F2806x_InitPeripherals.c // InitPeripherals(); // Not required for this example // Step 5. User specific code: LoopCount = 0; ErrorCount = 0; scia_fifo_init(); // Initialize the SCI FIFO scia_echoback_init(); // Initalize SCI for echoback msg = "\r\n\n\nHello World!\0"; scia_msg(msg); msg = "\r\nYou will enter a character, and the DSP will echo it back! \n\0"; scia_msg(msg); for(;;) { msg = "\r\nEnter a character: \0"; scia_msg(msg); // Wait for inc character // while(SciaRegs.SCIFFRX.bit.RXFFST !=1) { } // wait for XRDY =1 for empty state // Get character // ReceivedChar = SciaRegs.SCIRXBUF.all; // Echo character back // msg = " You sent: \0"; // scia_msg(msg); // scia_xmit(ReceivedChar); LoopCount++; } } // Test 1,SCIA DLB, 8-bit word, baud rate 0x000F, default, 1 STOP bit, no parity void scia_echoback_init() { // Note: Clocks were turned on to the SCIA peripheral // in the InitSysCtrl() function SciaRegs.SCICCR.all =0x0007; // 1 stop bit, No loopback // No parity,8 char bits, // async mode, idle-line protocol SciaRegs.SCICTL1.all =0x0002; // enable TX, RX, internal SCICLK,0003 // Disable RX ERR, SLEEP, TXWAKE SciaRegs.SCICTL2.all =0x0001;//0003 SciaRegs.SCICTL2.bit.TXINTENA =1; //SciaRegs.SCICTL2.bit.RXBKINTENA =1; SciaRegs.SCIHBAUD =0x01; // 9600 baud @LSPCLK = 20MHz (80 MHz SYSCLK). SciaRegs.SCILBAUD =0x03; SciaRegs.SCICTL1.all =0x0022; // Relinquish SCI from Reset0023 } // Transmit a character from the SCI void scia_xmit(int a) { while (SciaRegs.SCIFFTX.bit.TXFFST != 0) {} SciaRegs.SCITXBUF=a; } void scia_msg(char * msg) { int i; i = 0; while(msg[i] != '\0') { scia_xmit(msg[i]); i++; } } // Initalize the SCI FIFO void scia_fifo_init() { SciaRegs.SCIFFTX.all=0xE040; //SciaRegs.SCIFFRX.all=0x2044; SciaRegs.SCIFFCT.all=0x0; } //=========================================================================== // No more. //===========================================================================
2.Rx code for F28335
// TI File $Revision: /main/2 $ // Checkin $Date: July 30, 2009 18:45:31 $ //########################################################################### // // FILE: Example_2833xSci_Echoback.c // // TITLE: DSP2833x Device SCI Echoback. // // ASSUMPTIONS: // // This program requires the DSP2833x header files. // As supplied, this project is configured for "boot to SARAM" operation. // // Connect the SCI-A port to a PC via a transciever and cable. // The PC application 'hypterterminal' can be used to view the data // from the SCI and to send information to the SCI. Characters recieved // by the SCI port are sent back to the host. // // As supplied, this project is configured for "boot to SARAM" // operation. The 2833x Boot Mode table is shown below. // For information on configuring the boot mode of an eZdsp, // please refer to the documentation included with the eZdsp, // // $Boot_Table: // // GPIO87 GPIO86 GPIO85 GPIO84 // XA15 XA14 XA13 XA12 // PU PU PU PU // ========================================== // 1 1 1 1 Jump to Flash // 1 1 1 0 SCI-A boot // 1 1 0 1 SPI-A boot // 1 1 0 0 I2C-A boot // 1 0 1 1 eCAN-A boot // 1 0 1 0 McBSP-A boot // 1 0 0 1 Jump to XINTF x16 // 1 0 0 0 Jump to XINTF x32 // 0 1 1 1 Jump to OTP // 0 1 1 0 Parallel GPIO I/O boot // 0 1 0 1 Parallel XINTF boot // 0 1 0 0 Jump to SARAM <- "boot to SARAM" // 0 0 1 1 Branch to check boot mode // 0 0 1 0 Boot to flash, bypass ADC cal // 0 0 0 1 Boot to SARAM, bypass ADC cal // 0 0 0 0 Boot to SCI-A, bypass ADC cal // Boot_Table_End$ // // DESCRIPTION: // // // This test recieves and echo-backs data through the SCI-A port. // // 1) Configure hyperterminal: // Use the included hyperterminal configuration file SCI_96.ht. // To load this configuration in hyperterminal: file->open // and then select the SCI_96.ht file. // 2) Check the COM port. // The configuration file is currently setup for COM1. // If this is not correct, disconnect Call->Disconnect // Open the File-Properties dialog and select the correct COM port. // 3) Connect hyperterminal Call->Call // and then start the 2833x SCI echoback program execution. // 4) The program will print out a greeting and then ask you to // enter a character which it will echo back to hyperterminal. // // As is, the program configures SCI-A for 9600 baud with // SYSCLKOUT = 150MHz and LSPCLK = 37.5 MHz // SYSCLKOUT = 100MHz and LSPCLK = 25.0 Mhz // // // Watch Variables: // LoopCount for the number of characters sent // ErrorCount // // //########################################################################### // $TI Release: 2833x/2823x Header Files V1.32 $ // $Release Date: June 28, 2010 $ //########################################################################### #include "DSP28x_Project.h" // Device Headerfile and Examples Include File // Prototype statements for functions found within this file. void scia_echoback_init(void); void scia_fifo_init(void); //void scia_xmit(int a); //void scia_msg(char *msg); // Global counts used in this example Uint16 LoopCount; Uint16 ErrorCount; void main(void) { Uint16 ReceivedChar; char *msg; // Step 1. Initialize System Control: // PLL, WatchDog, enable Peripheral Clocks // This example function is found in the DSP2833x_SysCtrl.c file. InitSysCtrl(); // Step 2. Initalize GPIO: // This example function is found in the DSP2833x_Gpio.c file and // illustrates how to set the GPIO to it's default state. // InitGpio(); Skipped for this example // For this example, only init the pins for the SCI-A port. // This function is found in the DSP2833x_Sci.c file. InitSciaGpio(); // Step 3. Clear all interrupts and initialize PIE vector table: // Disable CPU interrupts DINT; // Initialize PIE control registers to their default state. // The default state is all PIE interrupts disabled and flags // are cleared. // This function is found in the DSP2833x_PieCtrl.c file. InitPieCtrl(); // Disable CPU interrupts and clear all CPU interrupt flags: IER = 0x0000; IFR = 0x0000; // Initialize the PIE vector table with pointers to the shell Interrupt // Service Routines (ISR). // This will populate the entire table, even if the interrupt // is not used in this example. This is useful for debug purposes. // The shell ISR routines are found in DSP2833x_DefaultIsr.c. // This function is found in DSP2833x_PieVect.c. InitPieVectTable(); // Step 4. Initialize all the Device Peripherals: // This function is found in DSP2833x_InitPeripherals.c // InitPeripherals(); // Not required for this example // Step 5. User specific code: LoopCount = 0; ErrorCount = 0; scia_fifo_init(); // Initialize the SCI FIFO scia_echoback_init(); // Initalize SCI for echoback // msg = "\r\n\n\nHello World!\0"; //scia_msg(msg); // msg = "\r\nYou will enter a character, and the DSP will echo it back! \n\0"; // scia_msg(msg); //for(;;) //{ // msg = "\r\nEnter a character: \0"; // scia_msg(msg); // Wait for inc character while(SciaRegs.SCIFFRX.bit.RXFFST !=1) { } // wait for XRDY =1 for empty state,i.e until FIFO has one word // Get character ReceivedChar = SciaRegs.SCIRXBUF.all; // Echo character back msg = " You sent: \0"; //scia_msg(msg); // scia_xmit(ReceivedChar); LoopCount++; // } } // Test 1,SCIA DLB, 8-bit word, baud rate 0x000F, default, 1 STOP bit, no parity void scia_echoback_init() { // Note: Clocks were turned on to the SCIA peripheral // in the InitSysCtrl() function SciaRegs.SCICCR.all =0x0007; // 1 stop bit, No loopback // No parity,8 char bits, // async mode, idle-line protocol SciaRegs.SCICTL1.all =0x0001; // disable TX, enable RX, internal SCICLK,(earlier 0003 correct one) // Disable RX ERR, SLEEP, TXWAKE SciaRegs.SCICTL2.all =0x0002; // initially the correct oneis 0003 //SciaRegs.SCICTL2.bit.TXINTENA =1; SciaRegs.SCICTL2.bit.RXBKINTENA =1; #if (CPU_FRQ_150MHZ) SciaRegs.SCIHBAUD =0x0001; // 9600 baud @LSPCLK = 37.5MHz. SciaRegs.SCILBAUD =0x00E7; #endif #if (CPU_FRQ_100MHZ) SciaRegs.SCIHBAUD =0x0001; // 9600 baud @LSPCLK = 20MHz. SciaRegs.SCILBAUD =0x0044; #endif SciaRegs.SCICTL1.all =0x0021; // Relinquish SCI from Reset(initially 0023) } // Transmit a character from the SCI //void scia_xmit(int a) //{ // while (SciaRegs.SCIFFTX.bit.TXFFST != 0) {} // SciaRegs.SCITXBUF=a; //} //void scia_msg(char * msg) //{ // int i; // i = 0; // while(msg[i] != '\0') // { // scia_xmit(msg[i]); // i++; // } //} // Initalize the SCI FIFO void scia_fifo_init() { // SciaRegs.SCIFFTX.all=0xE040; SciaRegs.SCIFFRX.all=0x204f; SciaRegs.SCIFFCT.all=0x0; } //=========================================================================== // No more. //===========================================================================
Sneha, I checked your transmit routine. Please try sending a single numeric value using scia_xmit function instead of using sci_msg. As simple as:
for(;;) { scia_xmit(a); //where a=0x23 some_delay(); }
Receiver routine seems fine, check the SCIRXBUF register of F28335 for data while in debug mode.
Regards,
Gautam
Hi gautam
Transmiter routinue seems to work fine.I could see the value 0x23 in SCITxBUF of 28069.
But I am not recieving anything on 28335.Its buffer SCIRxBUF is 0000.
The connection is as follows:
F28069(Tx) F28335(Rx)
Gpio12(Tx) Gpio28/19(Rx)
Pin32 Gnd Gnd
Thanks
Sneha
Sneha Thakur said:But I am not recieving anything on 28335.Its buffer SCIRxBUF is 0000.
That's weird. Anything in SCIRXEMU ??
Regards,
Gautam
Sneha Thakur said:I am using a simple wired connection between two controllers.Should there be some isolator in between or maybe some other hardware?
As both of the controllers are 3.3V logic based, they should work with simple wires but you can once try with drivers like max3221 or max232 (just for trial). But as far as I remember I interfaced F28335 & F28027 directly without any hardware in between and they worked as charm.
Regards,
Gautam
HI Gautam
I again tried running the programs and establishing communication between two controllers.
// TI File $Revision: /main/2 $ // Checkin $Date: July 30, 2009 18:45:31 $ //########################################################################### // // FILE: Example_2833xSci_Echoback.c // // TITLE: DSP2833x Device SCI Echoback. // // ASSUMPTIONS: // // This program requires the DSP2833x header files. // As supplied, this project is configured for "boot to SARAM" operation. // // Connect the SCI-A port to a PC via a transciever and cable. // The PC application 'hypterterminal' can be used to view the data // from the SCI and to send information to the SCI. Characters recieved // by the SCI port are sent back to the host. // // As supplied, this project is configured for "boot to SARAM" // operation. The 2833x Boot Mode table is shown below. // For information on configuring the boot mode of an eZdsp, // please refer to the documentation included with the eZdsp, // // $Boot_Table: // // GPIO87 GPIO86 GPIO85 GPIO84 // XA15 XA14 XA13 XA12 // PU PU PU PU // ========================================== // 1 1 1 1 Jump to Flash // 1 1 1 0 SCI-A boot // 1 1 0 1 SPI-A boot // 1 1 0 0 I2C-A boot // 1 0 1 1 eCAN-A boot // 1 0 1 0 McBSP-A boot // 1 0 0 1 Jump to XINTF x16 // 1 0 0 0 Jump to XINTF x32 // 0 1 1 1 Jump to OTP // 0 1 1 0 Parallel GPIO I/O boot // 0 1 0 1 Parallel XINTF boot // 0 1 0 0 Jump to SARAM <- "boot to SARAM" // 0 0 1 1 Branch to check boot mode // 0 0 1 0 Boot to flash, bypass ADC cal // 0 0 0 1 Boot to SARAM, bypass ADC cal // 0 0 0 0 Boot to SCI-A, bypass ADC cal // Boot_Table_End$ // // DESCRIPTION: // // // This test recieves and echo-backs data through the SCI-A port. // // 1) Configure hyperterminal: // Use the included hyperterminal configuration file SCI_96.ht. // To load this configuration in hyperterminal: file->open // and then select the SCI_96.ht file. // 2) Check the COM port. // The configuration file is currently setup for COM1. // If this is not correct, disconnect Call->Disconnect // Open the File-Properties dialog and select the correct COM port. // 3) Connect hyperterminal Call->Call // and then start the 2833x SCI echoback program execution. // 4) The program will print out a greeting and then ask you to // enter a character which it will echo back to hyperterminal. // // As is, the program configures SCI-A for 9600 baud with // SYSCLKOUT = 150MHz and LSPCLK = 37.5 MHz // SYSCLKOUT = 100MHz and LSPCLK = 25.0 Mhz // // // Watch Variables: // LoopCount for the number of characters sent // ErrorCount // // //########################################################################### // $TI Release: 2833x/2823x Header Files V1.32 $ // $Release Date: June 28, 2010 $ //########################################################################### #include "DSP28x_Project.h" // Device Headerfile and Examples Include File // Prototype statements for functions found within this file. void scib_echoback_init(void); void scib_fifo_init(void); //void scib_xmit(int a); //void scib_msg(char *msg); // Global counts used in this example Uint16 LoopCount; Uint16 ErrorCount; void main(void) { Uint16 ReceivedChar; //char *msg; // Step 1. Initialize System Control: // PLL, WatchDog, enable Peripheral Clocks // This example function is found in the DSP2833x_SysCtrl.c file. InitSysCtrl(); // Step 2. Initalize GPIO: // This example function is found in the DSP2833x_Gpio.c file and // illustrates how to set the GPIO to it's default state. // InitGpio(); Skipped for this example // For this example, only init the pins for the SCI-A port. // This function is found in the DSP2833x_Sci.c file. InitScibGpio(); // Step 3. Clear all interrupts and initialize PIE vector table: // Disable CPU interrupts DINT; // Initialize PIE control registers to their default state. // The default state is all PIE interrupts disabled and flags // are cleared. // This function is found in the DSP2833x_PieCtrl.c file. InitPieCtrl(); // Disable CPU interrupts and clear all CPU interrupt flags: IER = 0x0000; IFR = 0x0000; // Initialize the PIE vector table with pointers to the shell Interrupt // Service Routines (ISR). // This will populate the entire table, even if the interrupt // is not used in this example. This is useful for debug purposes. // The shell ISR routines are found in DSP2833x_DefaultIsr.c. // This function is found in DSP2833x_PieVect.c. InitPieVectTable(); // Step 4. Initialize all the Device Peripherals: // This function is found in DSP2833x_InitPeripherals.c // InitPeripherals(); // Not required for this example // Step 5. User specific code: LoopCount = 0; ErrorCount = 0; scib_fifo_init(); // Initialize the SCI FIFO scib_echoback_init(); // Initalize SCI for echoback // msg = "\r\n\n\nHello World!\0"; //scib_msg(msg); // msg = "\r\nYou will enter a character, and the DSP will echo it back! \n\0"; // scib_msg(msg); //for(;;) //{ // msg = "\r\nEnter a character: \0"; // scib_msg(msg); // Wait for inc character while(ScibRegs.SCIFFRX.bit.RXFFST !=1) { } // wait for XRDY =1 for empty state,i.e until FIFO has one word // Get character ReceivedChar = ScibRegs.SCIRXBUF.all; // Echo character back //msg = " You sent: \0"; // scib_msg(msg); // scia_xmit(ReceivedChar); LoopCount++; // } } // Test 1,SCIA DLB, 8-bit word, baud rate 0x000F, default, 1 STOP bit, no parity void scib_echoback_init() { // Note: Clocks were turned on to the SCIA peripheral // in the InitSysCtrl() function ScibRegs.SCICCR.all =0x0007; // 1 stop bit, No loopback // No parity,8 char bits, // async mode, idle-line protocol ScibRegs.SCICTL1.all =0x0001; // disable TX, enable RX, internal SCICLK,(earlier 0003 correct one) // Disable RX ERR, SLEEP, TXWAKE ScibRegs.SCICTL2.all =0x0002; // initially the correct oneis 0003 //ScibRegs.SCICTL2.bit.TXINTENA =1; ScibRegs.SCICTL2.bit.RXBKINTENA =1; #if (CPU_FRQ_150MHZ) ScibRegs.SCIHBAUD =0x0001; // 9600 baud @LSPCLK = 37.5MHz. ScibRegs.SCILBAUD =0x00E7; #endif #if (CPU_FRQ_100MHZ) ScibRegs.SCIHBAUD =0x0001; // 9600 baud @LSPCLK = 20MHz. ScibRegs.SCILBAUD =0x0044; #endif ScibRegs.SCICTL1.all =0x0021; // Relinquish SCI from Reset(initially 0023) } // Transmit a character from the SCI //void scib_xmit(int a) //{ // while (SciaRegs.SCIFFTX.bit.TXFFST != 0) {} // ScibRegs.SCITXBUF=a; //} //void scib_msg(char * msg) //{ // int i; // i = 0; // while(msg[i] != '\0') // { // scib_xmit(msg[i]); // i++; // } //} // Initalize the SCI FIFO void scib_fifo_init() { // ScibRegs.SCIFFTX.all=0xE040; ScibRegs.SCIFFRX.all=0x204f; ScibRegs.SCIFFCT.all=0x0; } //=========================================================================== // No more. //===========================================================================
This is the code being run for reciever on other end,.But when we run ,I guess its not executing at all.The screenshots of the screen before and after running the program are below:
I am running Tx code for 28069 on one PC and then its is wired to 28335 which is connected to other PC.The Rx program for 28335 is being run on the other PC.Ground pins of both controllers are connected and TX-Rx pins too.Am I missing something?
Please reply.
Thanks
Sneha
Sneha Thakur said:I am running Tx code for 28069 on one PC and then its is wired to 28335 which is connected to other PC
I guess you're following these steps:
1. No need to connect F28069 kit for debugging. Let the power be off.
2. F28335 kit should be in debug mode and waiting for the data.
3. Switch on the F28069 kit which has only single data transmission (don't use continuous polling of data as of now)
4. Monitor Rx interrupt flag & SCIRXEMU for data on the watch window.
I checked your Rx routine - keep the same in a for ever loop. It seems to be commented as of now. Also,
there's no EnableInterrupts(); function. This is exactly why Rx interrupt is not getting triggered.
Refer Example_2833xScia_FFDLB.c example.
Regards,
Gautam
Hi Gautam
I tried working the steps recommended by you.Enabled RxInterrupt function for Rx routinue and tried out few if else loops inside.I am gettting data in Tx BUF but not in Rx BUF.
I tried step by step execution,but the program does not enter in the while loop,as it is not recieving any data and stops there.
i again checked the original echoback program and its working fine,this means pins are working finr.
Can this be the compatibility issue?Different Controllers...??
thanks
Sneha
Sneha Thakur said:Can this be the compatibility issue?Different Controllers...??
There shouldn't be a compatibility issue here as both belong to C2000 family. I've personally tried and implemented this last year and also I've interfaced C2000 with MSP430 & PIC too. They all work fine!
Just one last suggestion, try referring SCI_Loopback for both the controllers with the given settings:
C:\ti\controlSUITE\device_support\f2833x\v133\DSP2833x_examples_ccsv4\scia_loopback
Regards,
Gautam
Hi Gautam
The problem is resolved.I was doing few silly mistakes.
1. In Tx routinue i had not relinquised SCI from reset.I had commented it.
2.I was calling ISR for SCIA while i was working with SCIB.
And while observing the variables on watch window,SCIRXST =00FA...Bit 5= BRKDT = 1.
SCI break-detect flag. The SCI sets this bit when a break condition occurs. A break condition
occurs when the SCI receiver data line (SCIRXD) remains continuously low for at least ten bits,
beginning after a missing first stop bit. The occurrence of a break causes a receiver interrupt to be
generated if the RX/BK INT ENA bit is a 1, but it does not cause the receiver buffer to be loaded. A
BRKDT interrupt can occur even if the receiver SLEEP bit is set to 1. BRKDT is cleared by an
active SW RESET or by a system reset. It is not cleared by receipt of a character after the break is
detected. In order to receive more characters, the SCI must be reset by toggling the SW RESET bit
or by a system reset.
So I just switched on the Tx first and then the reciever.Hope What I am thinking is right?
Now I will have to transmit a message or string of characters. And then also Tx back from F28335 to F28069
Thanks alot Gautam.
Sneha
Hi Gautam
The problem is resolved.I was doing few silly mistakes.
1. In Tx routinue i had not relinquised SCI from reset.I had commented it.
2.I was calling ISR for SCIA while i was working with SCIB.
And while observing the variables on watch window,SCIRXST =00FA...Bit 5= BRKDT = 1.
SCI break-detect flag. The SCI sets this bit when a break condition occurs. A break condition
occurs when the SCI receiver data line (SCIRXD) remains continuously low for at least ten bits,
beginning after a missing first stop bit. The occurrence of a break causes a receiver interrupt to be
generated if the RX/BK INT ENA bit is a 1, but it does not cause the receiver buffer to be loaded. A
BRKDT interrupt can occur even if the receiver SLEEP bit is set to 1. BRKDT is cleared by an
active SW RESET or by a system reset. It is not cleared by receipt of a character after the break is
detected. In order to receive more characters, the SCI must be reset by toggling the SW RESET bit
or by a system reset.
So I just switched on the Tx first and then the reciever.Hope What I am thinking is right?
Now I will have to transmit a message or string of characters. And then also Tx back from F28335 to F28069
Thanks alot Gautam.
Sneha
Sneha Thakur said:The problem is resolved.I was doing few silly mistakes.
That's Great! Silly mistakes happen... but need to be resolved by user himself/herself as I might've no clue :)
Sneha Thakur said:So I just switched on the Tx first and then the reciever.Hope What I am thinking is right?
As far as the routines work and your result is as expected, this should not matter. I prefer the other way, where my Rx is waiting and then I poll the data.
Sneha Thakur said:Now I will have to transmit a message or string of characters. And then also Tx back from F28335 to F28069
Way to go, Sneha!
Sneha Thakur said:Thanks alot Gautam.
You're Welcome! Please close the thread.
Regards,
Gautam