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.

TIDA-010016: TIDA-010016 demo behavior

Guru 10235 points
Part Number: TIDA-010016
Other Parts Discussed in Thread: TIOL111, TIDA-01335

Hello, Steffen Graf,

 

We can find to success to run TIDA-010016 demo from your below E2E-guide

by connecting Autosen(AO001). Thank you!

http://e2e.ti.com/support/tools/sim-hw-system-design/f/234/t/814827

 

Now I am investigating the TIOL111(Tx/Rx) data by connection Autosen(AO001) as IO-Link slave

from above E2E-post writer(U-SK) in the same Team for proper IO-Link Master(TIDA-010016)

behavior understanding.

 

The below-E2E said like below;

   http://e2e.ti.com/support/tools/sim-hw-system-design/f/234/t/814827

   J11 - J14 looks good, if the IO-Link device JS-IOL-T10-EVB is not connected.

   Otherwise a response should be visible.

   What you see here is the wake up pulse of 80 us length followed by a sequence to

   communicate with the device in COM3, COM2 and COM1.

 

So, our expectation is "wake-up success & then continuing COM1(4.8kbps) serial communication"

Then, we captured TIOL111(Tx/Rx) wave form to analyze (Tx2/Rx2) data on Port1.

But we cannot find expected data in Rx signals for PD,OD communication like below console message.

(Please refer the attached pdf in detail)

Questions:

- Do you have same experience?

   - We observed Rx2 signal as 48kbps serial data.

   - But we cannot find expected hex-data like below on Rx2.

     (data: 0x61 0x75 0x74 0x6f 0x73 0x65 0x6e 0x20 0x67 0x6d 0x62 0x68)

     (data: 0x41 0x4f 0x30 0x30 0x31)

 

We would appreciate if you tell us how to observe Rx-data(IO-Link Slave slave data) as hex for TIDA-010016.

 

Best regards,

Port1_Autosen_log.txt
port 0 state changed to 0

port 1 state changed to 0

port 2 state changed to 0

port 3 state changed to 0

port 4 state changed to 0

port 5 state changed to 0

port 6 state changed to 0

port 7 state changed to 0

port 1 state changed to 4

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x0 

port 1 state changed to 5

OD read request on port 1: index 16, subIndex 0, dataLen 12
data: 0x61 0x75 0x74 0x6f 0x73 0x65 0x6e 0x20 0x67 0x6d 0x62 0x68 

autosen gmbh device AO001 on port 1 did not detect an object

OD read request on port 1: index 18, subIndex 0, dataLen 5
data: 0x41 0x4f 0x30 0x30 0x31 

autosen gmbh device AO001 connected on port 1

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x1 

autosen gmbh device AO001 on port 1 detected an object

autosen gmbh device AO001 on port 1 did not detect an object

autosen gmbh device AO001 on port 1 detected an object

autosen gmbh device AO001 on port 1 did not detect an object

autosen gmbh device AO001 on port 1 detected an object

autosen gmbh device AO001 on port 1 did not detect an object

autosen gmbh device AO001 on port 1 detected an object

autosen gmbh device AO001 on port 1 did not detect an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x0 

autosen gmbh device AO001 on port 1 detected an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x1 

autosen gmbh device AO001 on port 1 did not detect an object

autosen gmbh device AO001 on port 1 detected an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x0 

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x1 

autosen gmbh device AO001 on port 1 did not detect an object

autosen gmbh device AO001 on port 1 detected an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x0 

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x1 

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x0 

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x1 

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x0 

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x1 

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x0 

autosen gmbh device AO001 on port 1 did not detect an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x1 

autosen gmbh device AO001 on port 1 detected an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x0 

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x1 

autosen gmbh device AO001 on port 1 did not detect an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x0 

autosen gmbh device AO001 on port 1 detected an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x1 

autosen gmbh device AO001 on port 1 did not detect an object

autosen gmbh device AO001 on port 1 detected an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x0 

autosen gmbh device AO001 on port 1 did not detect an object

autosen gmbh device AO001 on port 1 detected an object

autosen gmbh device AO001 on port 1 did not detect an object

autosen gmbh device AO001 on port 1 detected an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x1 

autosen gmbh device AO001 on port 1 did not detect an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x0 

autosen gmbh device AO001 on port 1 detected an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x1 

autosen gmbh device AO001 on port 1 did not detect an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x0 

autosen gmbh device AO001 on port 1 detected an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x1 

autosen gmbh device AO001 on port 1 did not detect an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x0 

autosen gmbh device AO001 on port 1 detected an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x1 

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x0 

autosen gmbh device AO001 on port 1 did not detect an object

autosen gmbh device AO001 on port 1 detected an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x1 

autosen gmbh device AO001 on port 1 did not detect an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x0 

autosen gmbh device AO001 on port 1 detected an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x1 

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x0 

autosen gmbh device AO001 on port 1 did not detect an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x1 

autosen gmbh device AO001 on port 1 detected an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x0 

autosen gmbh device AO001 on port 1 did not detect an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0

autosen gmbh device AO001 on port 1 detected an object
PD in data: 0x1 

autosen gmbh device AO001 on port 1 did not detect an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x0 

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x1 

autosen gmbh device AO001 on port 1 detected an object

autosen gmbh device AO001 on port 1 did not detect an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x0 

autosen gmbh device AO001 on port 1 detected an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x1 

autosen gmbh device AO001 on port 1 did not detect an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x0 

autosen gmbh device AO001 on port 1 detected an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x1 

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x0 

autosen gmbh device AO001 on port 1 did not detect an object

autosen gmbh device AO001 on port 1 detected an object

autosen gmbh device AO001 on port 1 did not detect an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x1 

autosen gmbh device AO001 on port 1 detected an object

autosen gmbh device AO001 on port 1 did not detect an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x0 

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x1 

autosen gmbh device AO001 on port 1 detected an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x0 

autosen gmbh device AO001 on port 1 did not detect an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x1 

autosen gmbh device AO001 on port 1 detected an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x0 

autosen gmbh device AO001 on port 1 did not detect an object

autosen gmbh device AO001 on port 1 detected an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x1 

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x0 

autosen gmbh device AO001 on port 1 did not detect an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x1 

autosen gmbh device AO001 on port 1 detected an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x0 

autosen gmbh device AO001 on port 1 did not detect an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0

autosen gmbh device AO001 on port 1 detected an object
PD in data: 0x1 

autosen gmbh device AO001 on port 1 did not detect an object

PD indication received on port 1: invalid flag 0x0, in len 1, out len 0
PD in data: 0x0 

wave.pdf

  • Hello matusan

    please allow some delay in our feedback until 30th of March when Steffen is back in the office.

    Thanks for your understanding?

    Regards

    Alex

  • Hi,

    Thank you very much for your kindness.

    I really appreciate your help.

    We are waiting for the answer.

     

    P.S. I'd like to share the additional checking result like below;

       - We also observed Rx2 signal as 4.8kbps serial data. (based on in IO-Link spec: COM1=4.8kbps)

       - But we cannot find expected hex-data like below on Rx2.

         (data: 0x61 0x75 0x74 0x6f 0x73 0x65 0x6e 0x20 0x67 0x6d 0x62 0x68)

         (data: 0x41 0x4f 0x30 0x30 0x31)

     

    We would appreciate if you tell us how to observe Rx-data as hex for TIDA-010016.

     

    Best regards,

    wav_2.pdf

  • Hi matusan,

    thanks for reaching out to us, I will try to help you to understand the TIDA-010016 and IO-Link. Nice to see that you have been able to bring up the software. What I see from your screenshot looks absolutely correct.

    IO-Link will start with the wake pulse of 80 µs followed by a communication attempt at COM3 (230400 Baud). If that doesn't work it switch to COM2.

    The Autosen sensor you are using is a COM2 device, so I would expect communication running at 38400 Baud. When it is connected you should see with the logic scope communication every 2.5 ms with this speed. It will get hard to see the on request data (OD read request on port 1) with the logic scope as you would need a IO-Link analyzer for that. What you can easily see is the process data that is transmitted every 2.5 ms.

    The scope plots you have attached are without any device connected, right? What yo see there in the zoomed area, is the wake pulse, followed by a communication attempt in COM3, COM2, COM1. this repeats every 2 seconds.

    Best regards,

    Steffen

  • Hi,

    Thank you very much for your kindness.

    I really appreciate your help.

    Your information is very helpful for us.

    Thank you!

     

    We can see the serial data on Tx/Rx with 38400 Baud.

    We would like to continue to check those serial data.

     

    I' like to attach our current result.

    (Autosen(AO001) is connected to Port1.)

     

    If you have any comment, please tell us.

     

    Best regards,

    wave_p1.pdf

  • Hi,

    what you see in your screen is the startup sequence. First it starts with the wake pulse, followed by some communication in COM3 data rate. 

    As the device does not answer the TIDA-010016 switches to COM2 and again transmits data (0xa2 0x00). Now the device answers (0x19 0x52). The first messages are information about MSEQ, cycle time, capabilities and so on. If you want to decode this manually, you would have to dive into the specification deeply.

    Best regards,

    Steffen

  • Hi,

    Thank you very much for your kindness.

    I really appreciate your help.

    Your information is very helpful for us.

    Thank you!

     

    We found hex-data by Autosen(AO001) from your advice.

    So, we can analyze wake-up behavior and find difference between Autosen(AO001) and our IO-Link slave like below.

    (please refer attached pdf.)

    - Autosen(AO001):

         - We can find below messages on the Teraterm console.

             port 1 state changed to 4

             PD indication received on port 1: invalid flag 0x0, in len 1, out len 0

             PD in data: 0x0

             port 1 state changed to 5

             …

       - We also found the hex-data on Tx/Rx with 38400 Baud by wave capturing tool.

    - Our IO-Link Slave:

         - We can only find below messages on the Teraterm console.

               port 1 state changed to 0

       - We also found the hex-data on Tx/Rx with 230400 Baud by wave capturing tool.

     

    Question:

       Could you tell us how to modify code to use (230.4kbps) Slave?

         - Autosen(AO001) react to COM2(38.4kbps) as you said.

         - Our slave react to COM3(230.4kbps).

             But it seems not to be detected by IO_Link Master(TIDA-010016).

             (We cannot find “proper state change” message in teraterm console.)

     

    I also share our results like below waveform files;

    If you can download the below wave-tool, we would appreciate if you check the our waveform files.

       https://www.saleae.com/downloads/

     

    Best regards,

    wave_files.zip

    wave_anl.pdf

  • Hi,

    thanks for your good logic analyzer plots, this makes debugging easier!

    In your plots I see that your devices takes a rather long time to respond between the end of the last byte from the master and the response a time of 78 µs is needed. This equals 18 times the bit time. This timing is specified in the IO-Link specification as Ta and needs to be below 10. What is the device you are using?

    As this time is too long, it might cause a timeout in the IO-Link Master and it will not communicate.

    However, it is possible to modify the software running on TIDA-010016 to extent this time. The timing is specified in IOLINK_drv.c that can be found in C:\ti\pdk_am437x_1_0_14\packages\ti\drv\iolink\src. Try to increase the Ta value here, for example to 85.

    const IOLINK_Params IOLINK_defaultParams =
    {
        25U,      /* tA */
    };

    After this you have to recompile not only the project, but the complete PDK. Let me know if this works for you.

    Best regards,

    Steffen

  • Hi,

    Thank you very much for your kindness.

    I really appreciate your help.

     

    I tried to modify "IOLINK_defaultParams" based on your advice.

    But the situation seems not to be improved.

    (We cannot find “proper state change” message in teraterm console.)

    Please refer attached pdf.

     

    Our IO-Link Slave design is based on "IO-Link Slave TI-Design" such as TIDA-01335.

    http://www.ti.com/tool/TIDA-01335

     

    I understand our IO-Link slave seems to be out of the IO-Link specification.

    I will also try to ask the designer to fix the IO-Link Slave code.

     

    If you have some IO-Link slave of TI-Design, we would appreciate if you check the behavior by connecting to TIDA-010016.

    I'm sorry to bother you.

     

    Best regards,

    tA_result.pdf

  • Hi Matusan,

    have you tried to recompile the PDK after changing this? 

    Best way is to use a device that is compliant. TIDA-01335 is just a demo device that is not completely compatible to the IO-Link specification.

    I have tested with another IO-Link device that supports COM3 and 400 µs cycle time to test TIDA-010016.

    Best regards,

    Steffen

  • Hi,

    Thank you very much for your kindness.

    I really appreciate your help.

     

    Yes.I recompile the PDK after changing code like below;

    - remove folder "C:\ti\pdk_am437x_1_0_15\packages\ti\binary"

    - cd c:\ti\pdk_am437x_1_0_15\packages

    - pdksetupenv.bat

    - gmake clean

    - gmake

    - cd c:\ti\pdk_am437x_1_0_15\packages\ti\drv\iolink

    - set IOLINK_STACK_INSTALL_PATH=<stack_folder>

    - gmake LIMIT_SOCS=am437x LIMIT_BOARDS=idkAM437x

     

    But the situation seems not to be improved.

    (We cannot find “proper state change” message in teraterm console.)

     

    If there are any other code modification such as pruss, please tell us.

     

    Best regards,

  • Hi Matusan,

    this is the right procedure...

    I would have expected that this should change the Ta timeout. As I'm a bit limited in my debug possibilities at the moment, could you please modify the IOLINK_v0.c, function IOLINK_pruCompleteSwiFxn to toggle a GPIO when calling object->callbacks.xferErrRspCallback(handle, channel); for the channel you are using. 

    This should show at what time a timeout is generated when trying to connect to TIDA-01335. However I recommend using something else as device.

    Best regards,

    Steffen

  • Hi,

    Thank you very much for your kindness.

    I really appreciate your help.

    I'd like to continue to check the behavior with your advice.

     

    Best regards,

  • Hi,

    Thank you very much for your kindness.

    I really appreciate your help.

     

    We can get the tA-spec improving IO-Link-Slave Device.

    We can find PD data in the teraterm console with IO-Link Master(TIDA-010016) by COM3(230.4kbps).

    Thank you for your gentle support.

     

    Best regards,