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.

LAUNCHXL-F28379D: LAUNCHXL-F28379D, BOOSTXL-POSMGR BISS_C Reading Reveral Register

Part Number: LAUNCHXL-F28379D

Hi,

How can I do sequential CD Register reading when using C2000 Position Manager BISS-C Library?

As in the example above, I have to create the CDM variable sequentially. Then the cdm variable is getting more than 32 bits.

As can be seen here, the CDM variable is defined as uint32_t as 32 bits. And the bit limit for other dependent variables is not enough.

I can access 8 bits of data correctly. But in order to read other variables such as rotational speed in RPM, I need 45 bits as below.
− // cdm = ST (1) + CTS (1) + ID (3) + Addr (7) CRC (4) + R (1) + W (1) + S (1) + TxData (8) + TxDataCRC ( 4) + STOP (1) + TxData (8) + TxDataCRC (4) + STOP (1)

How can I access data larger than 8bit as in the last picture?

  • In each frame one CDM bit is sent and one CDS bit is then received.  If you want to read sequential registers then send the CDM start bit after each read.  The red box is around these in the diagram you posted.   That start bit (S) will tell the receiver that you wish to read the next register. 

  • OK, I'll try this.

    So how can I get CD data faster?
    I realized that to read CD data, I had to read SCD data 32 times due to the remaining_cd_bits(This variable shows how many more SCD transactions must occur before CD data is complete.).
    One SCD cycle is completed at approximately 26us (microseconds). So I can read position data every 26us.
    But when I want to read speed data of a CD data, it takes 32 * 26 (remaining_cd_bits * scd_period) = 832 us time. How can I shorten this time? So can I read Cd data without waiting for the remaining_cd_bits?

  • This is how the protocol works.  One CDM/CDS bit is transferred per frame.