Post Go back to editing

Command FIFO

Thread Summary

The user asked if the AD5941 command FIFO can be used as a true FIFO by writing commands to a single register. The final answer clarifies that the command FIFO operates only in memory mode, requiring commands to be written to specific SRAM addresses. The Data FIFO, however, functions as a true FIFO. No configuration options for a true command FIFO are available in the CMDDATACON register.
AI Generated Content
Category: Datasheet/Specs
Product Number: ad594x

Hello there,

I'm using a custom software for a AD5941 project, and I am a little confused on how to use the command FIFO (sequencer) as a true command FIFO, I have the following questions:

1. Can I use the command FIFO as a true FIFO, where I could write a command using only one register, in this case using the CMDFIFOWRITE register, writing more commands as needed?

2. If question 1 is yes, how can I configure this behavior? Because there is no option for command FIFO in the CMDDATACON register:

As of now the only way I to use the sequencer is to write each command manually into a specific SRAM memory address, like this:

CMDFIFOWADDR<= command_address

CMDFIFOWRITE <= command

then for the next command:

CMDFIFOWADDR<= incremented_command_address

CMDFIFOWRITE <= another_command

Parents
  • Hi,

    In AD5941, as shown in the register above, command FIFO can be used only in memory mode as below:

    void AD5940_SEQCmdWrite(uint32_t StartAddr, const uint32_t *pCommand, uint32_t CmdCnt)
    {
    while(CmdCnt--)
    {
    AD5940_WriteReg(REG_AFE_CMDFIFOWADDR, StartAddr++);
    AD5940_WriteReg(REG_AFE_CMDFIFOWRITE, *pCommand++);
    }
    }

    Only Data FIFO can be used as a true FIFO (Each set of measured data is referred to buffer of same address. Data written first is read first. After being read, space is created for new data).

Reply
  • Hi,

    In AD5941, as shown in the register above, command FIFO can be used only in memory mode as below:

    void AD5940_SEQCmdWrite(uint32_t StartAddr, const uint32_t *pCommand, uint32_t CmdCnt)
    {
    while(CmdCnt--)
    {
    AD5940_WriteReg(REG_AFE_CMDFIFOWADDR, StartAddr++);
    AD5940_WriteReg(REG_AFE_CMDFIFOWRITE, *pCommand++);
    }
    }

    Only Data FIFO can be used as a true FIFO (Each set of measured data is referred to buffer of same address. Data written first is read first. After being read, space is created for new data).

Children

Before You Switch


Switching languages will make ADI Explorer unavailable. Resume your session by switching back to English and reopening ADI Explorer.