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.

MCU-PLUS-SDK-AM243X: BissC encoder interface with 16kHz cycle

Part Number: MCU-PLUS-SDK-AM243X

Tool/software:

Hi experts,

I am evaluating AM243x MCU+ SDK 09.02.00.09

The BissC encoder interface currently only runs in an 8kHz cycle,
but not in a 16kHz cycle.

What do I have to change so that the BissC encoder interface runs in a 16kHz cycle?

Best regards
Karl-Heinz

  • Hi Karl-Heinz,

    few clarifications before we proceed 

    am evaluating AM243x MCU+ SDK 09.02.00.09

    do you mean AM243x Motor Control SDK  09.02.00.09 here?

    The BissC encoder interface currently only runs in an 8kHz cycle,
    but not in a 16kHz cycle.

    do you mean MHz instead of kHz here?

    Additionally the BiSS-encoder Interface supports speed of 1, 2, 5, 8, and 10 MHz so, 16 MHz won't be supported here.

    Please let me know if my understanding is correct here or you can reply with further questions. 

    Best Regards 
    Arnav

     

  • Hi Arnav Raj,

    (1) Yes, I mean AM243x Motor Control SDK  09.02.00.09 here !

    (2) I mean 16kHz here!

           ...  And it is the repeat frequency of the whole position cycle. (The BissC clock frequency is 2MHz!)

    The position cycle currently only runs in an 8kHz repeat cycle, but not in a 16kHz repeat cycle.

    Currently I need this in a 16kHz position cycle.

    Thank you in advance for your efforts,

    Best Regards

    Karl-Heinz Fischer

  • Hi Karl-Heinz Fischer,

    I checked it's working with 16 KHz position cycle 



    Can you cross check if you have entered correct IEP cycle count here?

    I will just write the steps for calculation in case of ambiguity

    1. convert your cycle frequency into period ( 62.5 us in this case)
    2. IEP is running at 200 MHz which makes the period ( 5 ns) 
    3. Divide period in step 1 with step 2, result will be 12500 steps as you can see in the image. 

    I hope this answers the question. 


    Best Regards
    Arnav 

  • Hi Arnav Raj,

    (1)  In your answer, you are using the example program with the selection
    "6 : Start continuous mode", where a cycle length is then requested
    in 5ns steps (12500 steps --> 16kHz cycle).
    Here, a free-running, cyclic process is probably generated via the PRU itself.
    This then appears to run at 16kHz!

    (2)  In our case, we trigger one cycle at a time (currently via software (***),
    later via hardware!!!), but with a repetition rate controlled by us:
    ... and this is currently not running at 16kHz, but only at a maximum of 8kHz!

    (***) Triggered individually via software by calling the function:
          bissc_command_send(priv);      (from bissc_drv.c)
    We also call the default function for initialization:
          bissc_set_default_initialization(priv, icssgclk);     (from bissc_drv.c),
    just like in the example software in void bissc_main(void *args).

    (3)  So the question is:
    What else do we need to initialize (re-initialize) beyond calling
          bissc_set_default_initialization()
    so that the cyclic position evaluation via the cyclic call of
          bissc_command_send()
    also works with a 16kHz cycle?

    Thank you in advance for your efforts,
    Best Regards

    Karl-Heinz Fischer

  • Hi Karl-Heinz Fischer,

    2)  In our case, we trigger one cycle at a time (currently via software (***),
    later via hardware!!!), but with a repetition rate controlled by us:
    ... and this is currently not running at 16kHz, but only at a maximum of 8kHz!

    (***) Triggered individually via software by calling the function:
          bissc_command_send(priv);      (from bissc_drv.c)
    We also call the default function for initialization:
          bissc_set_default_initialization(priv, icssgclk);     (from bissc_drv.c),
    just like in the example software in void bissc_main(void *args).

    Can you elaborate the implementation part? 
    alternatively you can share application source file so that we can run the same on our end and see what's going wrong

    Best Regards 
    Arnav