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.

CCS/AM5728: Profibus FDL layer

Part Number: AM5728
Other Parts Discussed in Thread: PROFIBUS,

Tool/software: Code Composer Studio

Hi,

I am currently working on the AM5728, and I would like to work with the FDL layer of Profibus protocol. I tried the "PRU-ICSS-Profibus_Master-01.00.01.00" firmware, but there is no APIs for the FDL layer.

I read those documents :

- PROFIBUS_MASTER_FDL_API.pdf

- PROFIBUS_STACK_API.pdf

- Profibus master API Documentation

- Profibus_Master_Datasheet.pdf

but there are no instructions about FDL APIs that could help me (by using the "PRU-ICSS-Profibus_Master-01.00.01.00" firmware) to work directly with it.

Can somebody help me to understand how to work with this layer? Is there an other firmware available that can help me?

Thank you,

Best regards

  • The software team have been notified. They will respond here.
  • Hi, sorry for my delayed reply, I was out of office travelling. About your question, no sure if you have already checked API doc inside: C:\TI\PRU-ICSS-Profibus_Master_01.00.01.00\protocols\profibus_master\docs. In API_Documentation.html you will see in "Related Pages" tab with an "Integration with FDL Firmware" link. Please take a look and let us know if that was the information that you are looking for.
    Thank you,
    Paula
  • Thank you for your answer.

    Yes, I have already read this documentation, but I don't think it is up to date.

    For example, the functions InitApplicationBlocks(), GetApplicationBlock(), FreeApplicationBlock(appl_blk * ptr) and ActivateApplicationBlock(appl_blk * ptr, struct _queue * q) seem not available in the library provided. Can I know where this functions are available? 

    I need to understand how the FDL layer works. I have a lot of questions unanswered, for example :

    - How to initialize an appl_blk ?

    - How to insert an appl_blk to the request queue ?

    - In which confirmation queue can I find the appl_blk requested ?

    - How the memories' structures are packed (4 bytes by 4 bytes or continualy) ?

    - What are the different queues' functionalities ? Then, what is the logic processed between all queues and appl_blks?

    - In which register addresses can I see TReadReg and TWriteReg evolution ? I saw in the Sitara_TRM_Revised April 2017.pdf and PROFIBUS_MASTER_FDL_API.pdf documentations that TReadReg and TWriteReg are mapped in the RAM1 of PRUICSS local data memory. The ARM has the access to it through the PRUICSS global memorybut all values seem freezed at 0.

    - What is the value of REQ_EMPTY (TWriteReg->Mode1RegisterRes) ?

    Thank you,

    Best regards

  • Hi, checking in our repository code I see InitApplicationBlocks(), GetApplicationBlock(), FreeApplicationBlock(appl_blk * ptr) and ActivateApplicationBlock(appl_blk * ptr, struct _queue * q) inside of TMG stack files folder. As you might know, we deliver only prebuild library and not the stack files... You should be able to use those APIs, however, we recognize it could be some information missing in our documentation on how to support other 3rd party stacks as we assume TMG stack.. I will open a ticket with our developers in order to review documentation and CCS application project under this optic.

    On the other hand you can check PRU-ICSS local data memory using CSS + Emulator and following below instructions:

    PRU debug: in CCS's debug mode, Connect CortexA, load the program and run it. Then, you can connect the PRU core, and suspend it. You will see in Disassembly window PRU's program and also you can explore in memory window Program_Memory, Data_Memory and PRU_Device_Memory.

    Thank you,
    Paula
  • Hi,

    Thank you for those informations, I will try this.

    Best regards

  • While we are trying to understand how the firmware works, we fear it will take us too much time so here are more specific questions.

    Basically our problem is the following : We want to use the Profibus of the am572x Sitara in the following way :
    -Use only the FDL layer.
    -The Sitara will act as master on the bus, but there may be several master on the bus :
    =>The Sitara must be able to manage token rotation
    =>The Sitara must be able to process SDN or SDA messages received from other masters
    -The profibus function shall be integrated in our own operating system

    The profibus architecture advertised by TI with a FDL firmware in the PRU-ICSS and the DP layers managed by the Arm core seems adapted to our needs.

    We thought we could use TI PRU-ICSS Profibus master firmware provided :
    1) We can use the firmware independently of the DP stack, In our own OS. Of course we assumed we would have to write the correct wrapper for the OS
    2) That this firmware supports to manage token rotation
    3) That this firmware manages to pass to the Arm cores data received from other by a SDN or SDA requests

    Now that you have a better knowledge of the context, what else could you suggest tell us if our assumptions 1, 2 & 3 are correct and how the Profibus PRU-ICSS firmware can be interfaced?

    By looking at the buffers and assembly we will eventually get those answers. However we do need quick answers, because if 1,2 or 3 proves false this means we need to develop or outsource a whole new Profibus Firmware in a very tight schedule.

    Thank you,

    Best Regards
  • Hi, let me confirm with our Profibus experts and come back to you soon.

    thank you,

    Paula

  • Hi, sorry for my delay reply. Some of our industrial developers are out of office this week. From TI's Profibus White Paper I see multimaster mode is supported. But anyhow, please give us few more days until I can get a confirmation.

    thank you,

    Paula

  • Hi,

    Thank you for this answer, but do you know when you will have a confirmation ?

    Best Regards

  • Hi, starting next week.

    thank you,

    Paula

  • Hi, unfortunately, I got the information our Profibus master doesn't support multi master mode (which includes token management). I will request the white paper to be corrected.

    Thank you,

    Paula

  • Hi, thank you for this information even if it is very disappointing. 

    Is the am572x the only Sitara on which this feature is not available, or is this the case on all Sitara processors ?

    Is there a technical limitation on the am572x PRU-ICSS that prevents this feature from working ?

    How can TI help us get this feature working on the am572x ?

    Regards

  • Hi, none of our Profibus Master for Sitara family has this feature currently available. However, there is not a technical limitation for this, but it would require some development effort.

    We currently don't distribute Profibus Master firmware source code, so, regretfully you would need to develop your own. Below I added few links which have PRU-ICSS code development examples and documentation. This could be helpful as a starting point.

    http://processors.wiki.ti.com/index.php/Sitara_PRU_ICSS_Starting

    http://processors.wiki.ti.com/index.php/PRU-ICSS  

    You could also reach your local TI FAE, in case of exploring some type of development agreement, in order to get source code. No promises here, but maybe you can give a try to see if there is any option for working together.

    thank you,

    Paula