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/BOOSTXL-POSMGR: Interfacing BOOSTXL-POSMGR/LAUNCH-XL F29379D with LinACE Absolute Linear Shaft Encoder (BiSS)

Part Number: BOOSTXL-POSMGR
Other Parts Discussed in Thread: TIDM-1010, CONTROLSUITE

Tool/software: Code Composer Studio

Hello,

I am a mechatronics engineer at Thermolift Inc. currently investigating microprocessors that can run the motion controller for our device. The motion controller currently runs on dSPACE RTI1007-- a rapid prototyping and development computer that can not be used in production. The device has two displacers whose position and velocity are controlled by actuating electromagnets. The controller needs to read position from two Renishaw LinACE BiSS-C Absolute Encoders. The datasheet for the encoder is attached. I'm trying to follow the TI tutorial:  TI Designs: TIDM-1010 BiSS-C Absolute Encoder, Master-Interface Reference Design for C2000™ MCUs authored by Subrahmanya Bharathi Akondy and Sheena Patel, but I'm having trouble getting the control code working for my specific application. There are inconsistencies between the tutorial and sample code, and the pinouts for the BOOSTXL-POSMGR are ambiguous and unclear. There are also errors when the demo code is downloaded to the LaunchPad. I'll list these errors below:

1) Pinouts

Page 27 refers to the wiring configuration of block J7 via figure 11. However, figure 11 shows the wiring configuration of block H6. I tried connecting the wires from my encoder to the boost board according to figure 11 but no position data was read. Additionally, it says pin 5 calls for +15V but my encoder only needs +5V. What is the wiring configuration of block J7?

2) Biss.h

The BISS_CD_CRC_POLY1 and BISS_SCD_CRC_POLY1 variables are defined in hex as 0x03, but according to page 3 of the absolute encoder data sheet, the correct hex value is 0x43 (corresponding to 1000011 in binary). What is the correct hex/polynomial combination? Can you explain what the SPI_FIFO_WIDTH variable? What are all the relevant variables that need to be adapted for our specific encoder?

3) Downloading code to launchpad

Error message: 0x835c7. Not really sure why this happened – what does this mean?

If we could, in general, have assistance in getting the BOOSTXL-POSMGR/LAUNCH-XL F29379D to read data from our specific encoder, that help would be greatly appreciated.

Thank you,

Tyler AmbricoLinAce_DataSheet.pdftidue73.pdf

  • Hi Tyler, We'll review this and get back to you by tomorrow.
  • Hi Bharathi,

    Thanks. Would you be able to speak on the phone today? We could coordinate that via email...

    Thanks,

    Tyler

  • Tyler,

    Are you using the s/w from ControlSuite? Software is available on the controlSuite at the directory below.

    C:\ti\controlSUITE\development_kits\BOOSTXL_POSMGR\v01_01_00_00\bissc-F28379DLpad-S2

    In this you can refer to the bissc.h file.

    The example uses the below polynomial

    #define BISS_SCD_CRC_NBITS_POLY1       6

    #define BISS_SCD_CRC_POLY1             0x03   //x^6 + x + 1 (inverted output) 1000011

    if your encoder has a different polynomial definition - you've to change the polynomial.

    J7 is the header the correct header with pin-mapping. H6 is not relevant for this board.

    Also, 15V is used for the encoder used in the example. For your encoder pin 5 is irrelevant.

    For 5V encoders you can use pin -7 instead. 

    You can refer to a 5v encoder interface below.
    http://www.ti.com/lit/ug/tidude3a/tidude3a.pdf

    Page 33 for the same header.
    This is for a different (EnDat) encoder interface - but the interface signals are the same and you can use 5v instead.




  • When we replaced the 0x03 with 0x43 according to our specific encoders data sheet, the program spit an error at us and it would not return any real numbers. There are a number of other issues we are having with reading position with your microcontroller--can we please speak with you on the phone? There are too many issues to address and too many things about the code we don't understand to effectively solve this issue over text. Please email me your phone number so we can discuss this over the phone.
  • Tyler,

    It seems to me that 0x3 is the right value for your encoder.
    Please see the polynomial i provided earlier.
    #define BISS_SCD_CRC_POLY1 0x03 //x^6 + x + 1 (inverted output) 1000011
    "1000011" is written as 0x3 - ignore MSB in this case.
    So, i tend to think that 0x3 would work for your case.
    I've sent a private message to you, if you further like to discuss, with my contacts.
  • Note that the polynomial length is 6 bits.