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.

McASP writing to buffer register problem, using Sitara AM389x

Hi,

I'm using McASP2 interface, on Sitara AM389x based board, to communicate with AC'97 codec chip. 

I set McASP to be master for clock and frame sync (12 time slots), in TMD mode, because this mode is capable to stream AC'97 protocol. 

But when I write data (something different than 0) directly to Transmit Buffer Register XBUFn and then read from it, just to verify the written data, I only read zeros (0x00). So does that mean that writing to XBUFn is not possible via function mcasp_set_reg() (in file davinci-mcasp.c)?

I even used oscilloscope to see what's on McASP lines, there is clock and sync running, but data line is low.

Kind regards,

Srdjan

  • I've even read technical reference manual of processor AM389x, section about McASP interface - Data Transmission and Reception.

    And there are some stuff that are unclear, like this sentences regarding how to write data to TX buffer:

    The XBUF and RBUF registers can be accessed through one of the two peripheral ports of the device:
    • The data port (DAT): This port is dedicated for data transfers on the device.
    • The configuration bus (CFG): This port is used for both data transfers and peripheral configuration control on the device.

    I understand from this description that it is possible to write data directly to TX buffer via  __raw_writel(address) function. But it seems that data transfer doesn't work like this, all other registers are accessible via this function except buffer registers (I can read and write there content).

    Can somebody help me with this issue?

    Best regards,

    Srdjan