Post Go back to editing

AD1941 reg 2642 initialisation

Hi. Sorry if sounds like a dumb question, But its my first time using a Microcontroller to load the  single AD1941

Ive done all the Usual export Code etc.

I have one question around the Capture Window and thus resultant export code.

The DataSheet says  Reg 2642 is 2 bytes wide. As it does on previous writes

But you can see in the attached screen grab. ONE time it BlockWrites IC1.IC12 8bytes.

I am sure its got something to do with the following SafeLoadWrite, But I am having a bit of trouble understanding that to.

Anyhelp really appreaciated.

 

  • All of the SigmaDSPs support burst mode writing, where the address of the first register to be written is sent over the control port. If the write continues beyond the length of the addressed register (more than 2 bytes, in this case), then any subsequent bytes written will roll over to the next addresses in the register map. What you're seeing here on the AD1941 is that SigmaStudio is writing the two bytes to the DSP Core Control register, one to the RAM Configuration register, two each to the two Serial Output Control Registers, and one last byte to the Serial Input Control register, for a total of 8 bytes. The write is done in this way to maximize the efficiency of the data sent over the control port.

    You can find a further description of burst mode addressing on page 16 of the AD1941 datasheet.

  • Thanks So much.

    Now I also know why I had to re-apply the serial I/O settings after sending this block to use different serial I/O .

  • Hi again.

    Sigma Studio shows

    "BlockWrites" to reg 2642

    "BlockWrites" to reg 1024

    "BlockWrites" to reg 0

    "BlockWrites" to reg 2642

    "SafeLoad Writes" to reg 2560

    "BlockWrites" to reg 2642

    at startup init.

    Yet I cannot see any Bytes to the safe Load Registers 2624 and 2629 Nor can I see the Reg Bit Set on 2642 to begin the safeload transfer.

    Are these Hidden from view?

    I am having some Problem with Safe Loading My param data.

    I think its because I am Block Writing the reg 2560 at startup.?

    But the export does this in Block Write So I gathered it was OK to do.

    when I Safe Load  I am getting bad data out my serial. and it never comes back good

    Below is  what I am Sending

    // set param data into Safeload  reg 2624
      tw_start();
      tw_write_add(devAddress);                  // Chip  Write);  
      tw_write_data(0x0A);
      tw_write_data(0x40);                           // safe load address
      
      while(x < length)
      {
       tw_write_data(byPkt[x]);    // = {0x00,0x40,0x80,0x00,0x00}; // these are the bytes as displayed in Sigma Studio
     
       x++;
      }
     
     
      tw_stop(); 
      delay_us(10); 
        // set param address into Safeload  reg 2629
      tw_start();
      tw_write_add(devAddress);                  // Chip  Write);  
      tw_write_data(0x0A);
      tw_write_data(0x45);                           // safe load address
      tw_write_data( 0x0A);                  // set sub addressH Param Address = 2577
      tw_write_data( 0x11);                  // set sub addressL 
      tw_stop(); 
      delay_us(10);

    // set the Bit to init safeload

      tw_start();
      tw_write_add(devAddress);                  // Chip  Write);  
      tw_write_data(0x0A);
      tw_write_data(0x52);                    //control
      tw_write_data( 0x02);                  //
      tw_write_data( 0x10);                  // 
      tw_stop(); 
      delay_us(10);

    Have I eally got this messed up?

    Thanks

    Brett

    UPDATE... I got the safe load to work . I was setting the Param Ram . But I should be setting SLEW RAM init Bit in 0xA52.

    . How Do I Know What Type of RAM bit to set for a Given Element in Sigma Studio?