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.

TMS320F28379S: Endat library: Receive/Send register

Part Number: TMS320F28379S

Hello

I want change the Endat absolute position by writing into some register.

According manufacturer, I must write offset on register address 22 and 23.

Then I read value, and try to write and read again, but register value is not modified (always read as 65535), CRC is Ok.

I'm using the datasheet code:

Val = PM_endat22_setupCommand(ENCODER_RECEIVE_PARAMETER, address, 0x0, 0); //data1=MRS; data2=any
PM_endat22_startOperation();
while (endat22Data.dataReady != 1) {}
Val = PM_endat22_receiveData(ENCODER_RECEIVE_PARAMETER, 0);
crc5_result1 = PM_endat22_getCrcNorm(endat22Data.address, endat22Data.data, table1);

and

Val = PM_endat22_setupCommand(ENCODER_SEND_PARAMETER, Address, data, 0); //data1=MRS; data2=any
PM_endat22_startOperation();
while (endat22Data.dataReady != 1) {}
Val = PM_endat22_receiveData(ENCODER_SEND_PARAMETER, 0);
crc5_result1 = PM_endat22_getCrcNorm(endat22Data.address, endat22Data.data, table1);

Is something I have forget?

Thank

  • HEllo

    In fact, It is Ok to read the word number 13 which correspond according the Heidenhain documentation to the "Number Of clock pulse".

    Then I read in my case : 31 which correspond to my coder.

    Now, I want read the adress 22 and 23 (Datum shift). I think this can help be to define a zero reference with the electrical motor angle.

    Then I read Address 22 and 23 => Data read = 65535.... strange.

    I try to write (Exemple 0x5678 at address 23 = 0x17) . Procedure seems end ok, On acknowledge, the endat22Data.addess = 0xE8 (= 0x17\)

    and endat22Data.data = 0xA987 = 0x5678\..)

    It is Ok for acknowledge? of the NOT bit result indicate error?

    Any way, after write, I read again, but I get always 0xFFFF = 65535

    Note: When I read address 13 (0x0D) or 9 after finish, endat22Data.address = 0x0D (or 0x09)

          When I read address 22 or 23, after finish endat22Data.address = 22 or 23 inverted....

  • Hello,

    Was the memory selection made (command SELECTION_OF_MEMORY_AREA) before the ENCODER_RECEIVE_PARAMETER / ENCODER_SEND_PARAMETER commands?

    Regards

    Lori

  • The same as shown on exemple for 0x0D adresse access (0xA1).

    But I have no doc about all MRS..??

  • On heidenhain website, many reference is done on applcation note, but impossible to find this file.

    Have the the list of MRS code according the desired address?

    Do you knwo the way to unlock the Write protected address?

    Regard

  • Hello,

    I will look and see what I can find.  There is a page here where you can request information from Heidenhain regarding the EnDat implementation:

    https://www.endat.de/de_EN/endat-form/

    Regards

    Lori

  • Hello

    Heidenhain answer me to the way to modify the "datum shift" and then, raz mono/multi turn value...

    Thank

  • Great news, thank you for following up and letting me know. 

    Regards

    Lori