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.

eZdsp 28335 eCANA GPIO pin configuration

Hello,

I'm developing a flash bootloader using the eZdsp 28335 kit and CCS v3.3. It receives application code through CAN and stores it into the on-board external SRAM (Zone 7). At the end of download it reads the data from external SRAM Zone 7 and burns it into the internal flash.  I'm using eCANA module (with CANRXA and CANTXA being mapped to GPIO30 and GPIO31). The bootloader works fine in the debug mode with JTAG connected. But it fails when JTAG is disconnected (stand-alone mode).

I believe it is because I did not initialize the external interface (XINTF) zone 7 right after the F28335 is powered up. So I added the XINTF initialization code (DSP2833x_Xintf.c). Since GPIO30 and GPIO31 have to be used for address line XA18 and XA17. I had to remap GPIO18 and GPIO19  to CANRXA and CANTXA by changing the code in InitECanaGpio(). However after I made the change the CAN communication stopped working. I wonder besides changing InitECanaGpio(), is there any other place in the code that I needed to change?  I'm using eZdsp 28335 kit, do I have to physically change any hardware configuration on the board in order to use GPIO18 and GPIO19 for CANRXA and CANTXA (currently I'm using CANA Connector which is P11 on the board)?

Here is the modified InitECanaGpio():

void InitECanaGpio(void)  
{  
   EALLOW;  
  
/* Enable internal pull-up for the selected CAN pins */  
// Pull-ups can be enabled or disabled by the user.  
// This will enable the pullups for the specified pins.  
// Comment out other unwanted lines.  
  
//    GpioCtrlRegs.GPAPUD.bit.GPIO30 = 0;     // Enable pull-up for GPIO30 (CANRXA)  
  GpioCtrlRegs.GPAPUD.bit.GPIO18 = 0;     // Enable pull-up for GPIO18 (CANRXA)  
  
//    GpioCtrlRegs.GPAPUD.bit.GPIO31 = 0;     // Enable pull-up for GPIO31 (CANTXA)  
  GpioCtrlRegs.GPAPUD.bit.GPIO19 = 0;     // Enable pull-up for GPIO19 (CANTXA)  
  
/* Set qualification for selected CAN pins to asynch only */  
// Inputs are synchronized to SYSCLKOUT by default.  
// This will select asynch (no qualification) for the selected pins.  
  
//    GpioCtrlRegs.GPAQSEL2.bit.GPIO30 = 3;   // Asynch qual for GPIO30 (CANRXA)  
  GpioCtrlRegs.GPAQSEL2.bit.GPIO18 = 3;   // Asynch qual for GPIO18 (CANRXA)  
  
  
/* Configure eCAN-A pins using GPIO regs*/  
// This specifies which of the possible GPIO pins will be eCAN functional pins.  
  
//    GpioCtrlRegs.GPAMUX2.bit.GPIO30 = 1;    // Configure GPIO30 for CANRXA operation  
  GpioCtrlRegs.GPAMUX2.bit.GPIO18 = 3;    // Configure GPIO18 for CANRXA operation  
//    GpioCtrlRegs.GPAMUX2.bit.GPIO31 = 1;    // Configure GPIO31 for CANTXA operation  
  GpioCtrlRegs.GPAMUX2.bit.GPIO19 = 3;    // Configure GPIO19 for CANTXA operation  
  
    EDIS;  
}  


Thanks a lot for your help in advance.

Danny