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.

AM3359 Ethercat questions

Other Parts Discussed in Thread: AM3359, TLK110

In supporting EtherCAT on the AM3359 processor and eval board:


#1) When looking at the ICE schematic I see U21 labeled as Variable & MAC Memory, and connected on I2C0. Is this the EEPROM that the EtherCAT core is setup to use? or am I wrong? It is being used for anything else other then ECat (if it is the ECat EEPROM)?

#2) I.e. if I'm doing EtherCAT do I need to make sure that the EEPROM for it is connected to I2C0? (since ECat requires an EEPROM device that is in control of the ECat master/ECat hardware stack at almost all times)

#3) In addition does it have to be 256K or could it be a smaller EEPROM for the Core? (such as a 64K or small ?)

#4) The reason I ask is that the EtherCAT ASIC and IP core from Beckhoff have configuration settings for the size of the EEPROM (and it is part of the ESI XML file). The XMLs examples with the TI Software describe the EEPROM as 2048 bytes (Which is small). In the Beckhoff cases they have a flag that selects between >=32K or <32K eeproms, so need to make sure that what I use is correct for the PRU setup (unless I have to change some setting). Can you provide some validation on this part of it?

#5) I also see a control signal or two for things such as the FET_nOE @ Pin D18 - that appears to be used to gate the ETH0 LINK LED & RXERR lines. I'm assuming this is due to the fact that these two signals are used in the Boot mode selection. Am I correct? And if so, is that control signal built into the PRU core control as well for this purpose? Or is something that the software has to handle?

#6) Going with question #5 I See the following ECAT LEDs, are any of these hard coded in the PRU, or are all of them just configured somewhere in the application?
- ECAT LED1 (RUN LED) hooked up to H16
- ECAT LED2 (ERR LED) hooked up to H17
- ECAT LED3 (Link/ACT0) Hooked up to J15
- ECAT LED4 (Link/ACT1) Hooked up to J16

#7) Going with #5 & #6, I see some additional ECAT LED items (#5a/b/c and #6 a/b/c). I'm assuming that they are some kind of status LEDs, what is there purpose? And are they locked in for a purpose in the PRU or just in code?
- ECAT LED5a (Green) @ J18
- ECAT LED5b (Red) @ K15
- ECAT LED5c (Blue) @ H18
- ECAT LED6a (Green) @ M17
- ECAT LED6b (Red) @ M18
- ECAT LED6c (Blue) @ D17

 

Thank you,

Bryan Busacco

  • Hi Bryan,

    1) no, currently this EEPROM is only used for board ID (same concept as BeagleBone and other AM335x EVMs). It is not used by the ECAT firmware.

    2) no, you can use any kind of non-volatile memory in your system. I2C or SPI FLASH are just some of the options. The TI ECAT ESC does not support ESI flashing. This is managed as part of the ESC API and the stack (in the examples we use Beckhoff SSC). Current examples do not store ESI updates in non-volatile memory. This is system dependent so to be implemented by the customer. A future SDK should have examples demoing non-volvatile memory use for ESI as it is required to prove we have implemented station alias feature correctly.

    3) size depends on application or general ECAT requirements

    4) again this depends on application needs and we have no restrictions here

    5) you are correct that in our schematic we need some special ways to treat boot modes correctly (conflicting PU/PD of AM335x vs TLK110). This is controlled by application code on ARM during init phase. Please see the IA-SDK sources for details. Again this is system dependent so we can't fix that in the ECAT firmware which is not available as source. All the host code so far is available as source to easy customizations. Also the issue is not related to EtherCAT at all.

    6) no, all LED controls are on ARM side. So basically any GPIO can be used. The stack/HW API need to support appropriate LED use.

    7) these are not ECAT LEDs. However we use them in the applications for signaling or for other protocols with different LED requirements in the future (don't forget AM335x is multi-protocol capavle. Again just GPIO controlled from ARM side.

    Maybe I should add these to the Wiki asap as the questions are great.

    regards.