Post Go back to editing

Command FIFO

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