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.

TMS320F28388D: Ethernet example not working for 100 Mbps operation ( LED_1 is not ON)

Part Number: TMS320F28388D
Other Parts Discussed in Thread: C2000WARE

Tool/software:

Hi, 

I am trying to use Ethernet on Control card F28388D which has PHY as DP83822, in 100 Mbps mode:

However, I have a  few questions : 

Questions : 

1. What are the Internal clock and the external clock here:

and here 'pad' means coming from the PHY: 'DP83822'

according to the documentation, I found that the internal clock is the clock coming from 'ETHERNETCLK' in this diagram, 

which is modified here : 

and the external clock is the clock coming through ENET_RMII_CLK which is coming through GPIO73.

Is this understanding correct?

2. To operate ethernet in 100 Mbps, we need to make sure that the clock to PTP is 100 MHz which is coming through ETHDIV :: I suppose this is the internal clock  .

3. To validate if the ethernet speed is 100 Mbps : LED_1 on ethernet turns green ..is this correct ?



4. I was checking the TI example : c28x_cm , which uses cpu1 code to set PTP to 100 MHz ::

C:\ti\c2000\C2000Ware_5_04_00_00\driverlib\f2838x\examples\c28x_cm\ethernet

This is the comment there in 'ethernet_ipc_ex1_basic_c28x1.c' code 

//
//Set up EnetCLK to use SYSPLL as the clock source and set the
//clock divider to 2.
//
//This way we ensure that the PTP clock is 100 MHz. Note that this value
//is not automatically/dynamically known to the CM core and hence it needs
//to be made available to the CM side code beforehand.
//

then I tried running the CM code where I found that in the same example for CM  "ethernet_ipc_ex1_basic_cm.c"
they have used clock as the external clock ,

This function is called: "Ethernet_getInitConfig(pInitCfg);"
and this function sets the clock to external always : 

//

void Ethernet_getInitConfig(Ethernet_InitConfig *configPtr)
{

uint32_t i;

//
//EMAC Subsystem Wrapper Settings
//
configPtr->emacSSConfig.clkSrcSel =
ETHERNET_SS_CTRLSTS_CLK_SRC_SEL_EXTERNAL;

so why they have modified the internal clock in CPU1 or the clock from CPU1 is external ..?

I tried my custom code for ethenet : modified to speed to 100 Mbps and changed the clock source to 'Internal' still can't see the green LED 'ON'


There are TI examples for cm with 100 Mbps only for the REVMII mode

C:\ti\c2000\C2000Ware_5_04_00_00\driverlib\f2838x\examples\cm\ethernet\ethernet_ex9_revmii_example_mii_remote.c

C:\ti\c2000\C2000Ware_5_04_00_00\driverlib\f2838x\examples\cm\ethernet\ethernet_ex9_revmii_example_revmii_side.c

( this is not on the standard TI control card, so can't use it )

I want to see the green light 'ON' and the 100 Mbps example for MII or RMII mode.
Please help me with the above queries as soon as possible, 

Big Thanks ,

Aditya