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.

TMDSICE3359: PROFIBUS Slave diagnostic data

Part Number: TMDSICE3359
Other Parts Discussed in Thread: PROFIBUS, , SYSBIOS, PRU-ICSS-INDUSTRIAL-SW, AM5728, AM3359

Hello,
I am working with EVM TMDSICE3359. I use one EVM as a Profibus master and another one as a Profibus slave.
When I get dignostic data from Profibus slave ( put command "getdiag" in master ),
I can't correlate received data with diagnostic description from Profibus standard.

1) I configured master to poll 4 devices with addresses 3, 7, 4, 6.
And when I initiate command "getdiag", get diagnostic request is sent to each of devices. I get following responce:


address  received dignostic data 
3             80 14 0A << absent
7             80 14 0A DA 0C 00 00 << the only one which really exists
4             80 14 0A DA << absent
6             80 14 0A DA 0C 00 << absent

Nevertheless I get successful response for each device. Even if it's absent.

2) Concerning to dignostic data for device with address 7
0      1     2      3       4      5      6      <<< offset
80    14   0A   DA    0C   00    00    <<< values
st1   st2  st3   addr  id5    id6          <<< semantic


The received data do not correspond to the Profibus dignostic template.
In byte Status3 ( offset 2, value = 0A ) 6 lower bits must be set to 0
and here some of them are set to 1.

Identifier of EVM is 0CDA, so bytes with values DA 0C correspond to Identifier,
but identifier must be located at offsets 4 and 5, but here it is located  at offsets 3 and 4.

I can't understand what is wrong.

  • Hi,

    What software are you running on the two boards? Which version?
  • CCS 7.1 sysbios_ind_sdk_02.01.03.02 XDCtools 3.31.2.38_core SYS/BIOS 6.42.2.29 - Profibus Master
    CCS 7.1 sysbios_ind_sdk_02.01.03.02 XDCtools 3.31.2.38_core SYS/BIOS 6.41.4.54 - Profibus Slave
  • Thanks. I have notified the software team. They will respond here.

    Please note the following:

    TI is moving support of all protocols for AM335x and AM437x to PRU-ICSS-INDUSTRIAL-SW in order to provide a single model for industrial software delivery on current and future devices. PRU-ICSS-INDUSTRIAL-SW is already in use for AM57x devices.

    AM335x and AM437x industrial protocol support has begun migrating from SYSBIOSSDK-IND-SITARA (Ind SDK 2.x) to PRU-ICSS-INDUSTRIAL-SW.

    All current protocols for AM335x and AM437x will be supported on PRU-ICSS-INDUSTRIAL-SW by the end of June 2017.

    TI stopped providing and supporting SYSBIOSSDK-IND-AM335x on 31 March 2017, and will no longer provide or support SYSBIOSSDK-IND-SITARA after 30 June 2017.

    If you are interested in receiving maintenance releases and technical support for either of these SDKs after these dates please contact IndSDKSupport@list.ti.com or your TI representative.
  • More interesting.

    If I setup 8 addresses ( 2, 3, 4, 5, 6, 7, 8, 9 )
    Then in response to getdiag I get following :
    Slave-Diag data (2):80 14
    Slave-Diag data (3):80 14 0A
    Slave-Diag data (4):80 14 0A DA
    Slave-Diag data (5):80 14 0A DA 0C
    Slave-Diag data (6):80 14 0A DA 0C 00
    Slave-Diag data (7):80 14 0A DA 0C 00 00
    Slave-Diag data (8):80 14 0A DA 0C 00 00 00
    Slave-Diag data (9):80 14 0A DA 0C 00 00 00 00

    That is the length of diagnostic data is equal to device address.
  • Hi Alexander, I will give it a try. in the meantime a question, is your Master-slave working correctly if you use another address different to 9? I was under the impression we have this address hard code in our Profibus slave example..  Do you have TMG profibus stack (full version) ?

    thank you,

    Paula

  • Hello Paula .  Yes, I tried to setup 2 and 7 with  rotary switch. Result was the same. Data exchange works fine. Diagnostic - as described above.

  • No I haven't TMG profibus stack (full version).
  • Hi Alexander, I did a quick sanity check in my side using AM5728 IDK as a Profibus master and AM3359 ICEv2 as slave. Results seems coherent (attached snapshots. I added two slaves but only "9" was connected). However, I don't discard it could be a bug. Wondering if you can get in touch with TMG, and see if they can share with your their DPE Manual. Or another documentation who can help you to understand how diagnostics is printed.

    Thank you,

    Paula

  • Hello Paula.
    Thank your for an answer.
    In your test you added 2 devices to configuration with addresses 3 and 9.
    and get diagnostic data

    f0 e8 03 << it's for address 3
    f0 e8 03 3c 02 00 00 03 00 << it's for address 9

    In fact you have the same result as I had.

    1) The length of dignostic data is equal to device address

    according to standard, diagnostic data must have 6 or more bytes.
    So in case of device 3 the length of diagnostic could be 0 or 6.
    In fact the length is 3. And it's wrong.

    2) Diagnostic data do not correspond to profibus standard.
    Stadnard states that mandatory part of diagnostic has following format:


    [ status_1, status_2, status_3, Adr, Ident_H, Ident_L ]

    It would be too verbose to analyse every byte of the 6.
    So let's take for instance first byte:

    status_1
    bit_0 - station non exist
    bit_1 - station not ready
    bit_2 - config fault
    bit_3 - extended diagnostic follows ( the length is bigger than 6 )
    bit_4 - requested function is not supported by slave
    bit_5 - Invalid slave response. This bit is always set to zero by a slave. Here a master notices that a slave gives invalid responses.
    bit_6 - fault in parameter telegram
    bit_7 - slave has been locked by another master

    We get the same value 0xF0 as status_1 byte for both devices ( 3 and 9 )
    it means than BOTH stations :
    - DO exist
    - ARE ready
    - have NO config faults
    - have NO extended diagnostics
    - have been requested for some function which is not supported
    - have invalid slave response
    - have fault in parameter telegram
    - locked by another master

    I can analyse bytes 2..6 and result will be the same. Displayed diagnostic data is a complete crap according to PROFIBUS standard.
    Something wrong with it.

  • Hi Alexander, thanks for your extended explanation, I will file a JIRA reporting a bug, with your observations.
    thank you,
    Paula