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.

How can I generate a 48Bit-Data frame with C6713B MCBSP in SPI-Mode?

Other Parts Discussed in Thread: DAC7811

Hello Community! We have made a design with 3 DACs (DAC7811) in "daisy chain mode" connected on a McBSP-Port of a C6713B.
The DACs need a coherent 48Bit data frame followed by a rising edge on frame sync for load and update the DAC.
Currently we are using the McBSP mode where the frame sync are generated out of the sample rate generator SRGR (SPRU580G,page 23).
So with single phase frame and fixed FWID of 48Bits everything works fine. The disadvantage is, we have a fixed sample rate wich
depends on FPER and CLKGDV inside SRGR.

In the future we want to use the update function as callable function with no specific time interval (no fixed sample rate).
So we think about SPI Mode where the frame sync signal is generated by DXR-to-XSR-copy. I wrote a function, where 3 16Bit values
are written to the McBSP data transmit register consecutively. The problem is, the McBSP generate 3 accesses with a data width of 16Bit.
Or respectively i will get no coherent 48Bit access within one frame sync periode.
So i think it will be a good idea to change XFRLEN1 to 3 words in a phase. Perhaps this will be solve the problem with
the non coherent frame sync. I visit the signals on the scope. Eureka! I see the coherent frame periode...
But the problem is: With this configuration i will get 54 clock periods instead of the expected 48 clock periods.
So it seems to be that this doesn't work...

So i ask my self now is this possible at all?
How can I realize such a functionality?

  • Hi Torsten,

    Welcome to the TI E2E forum. I hope you will find many good answers here and in the TI.com documents and in the TI Wiki Pages (for processor issues). Be sure to search those for helpful information and to browse for the questions others may have asked on similar topics (e2e.ti.com).

    Please try to change XFRLEN1 for 2 words per phase i.e XFRLEN1=1h and transmit word length to 24bits i.e XWDLEN1=4h
    , and tell your observations.
  • Hi Arvind,
    thank you very much for your fast response. I have tried XFRLEN1=1 (2 words) and XWDLEN1=4h (24Bit word).
    The result is i get 50 clock periods instead of the expected 48 clock periods within one frame periode.
    It seems to be that of the 2nd word the 2 MSBs are repeated in the stream.

    Regards
    Torsten
  • Hi Torsten,

    Please clarify some points in order to support you in much better way.
    1. You are working on TI EVM or your own custom board ?
    2. Which software package you are working with ? TI provided one or your own developed code ?
  • Hi Arvind,

    1. I'm working on a custom board. It is no TI EVM.
    2. I'm working with CCS 3.1.23, CGTools 5.3. Additionally i'm using Chip support library for configuration of the McBSP and EDMA.

    By the way I have found the following in the McBSP User Guide (SPRU580G, Page 59):
    In SPI master mode, as well as SPI slave mode, the McBSP requires an FSX/SS edge for each transfer. This means the FSX/SS signal must
    toggle for each word. The McBSP clock stop mode requires single-phase frames ((R/X)PHASE = 0) and one element per frame
    ((R/X)FRLEN = 0).

    With my interpretation i would say, that SPI transfer with more than 32Bit doesn't work!?
    Or did you say it must work in generally?

    Regards
    Torsten
  • Hi Arvind,

    are there any news?

    Regards

    Torsten

  • Hi Torsten,

    Apologies for the delayed response.


    With my interpretation i would say, that SPI transfer with more than 32Bit doesn't work!?

    Yes your interpretation is right, we can configure word length at max. 32 bits only.

    Also refer transmit control register(XCR) and recieve contorl resister(RCR) for more understanding.
  • Hi Arvind,

    thanx for the support...