SPI Write to ADAR1000

Are there any writing modes besides block write mode and write all mode for the ADAR1000?

Is it possible to write the register address and then write the byte value to be applied to that address, and then follow up with a non consecutive address?

I.e. 

address - 0x01C

data - FF

address - 0x021

data - 35 

Thanks

Parents
  • +1
    •  Analog Employees 
    on Feb 22, 2021 6:40 PM 1 month ago

    All write modes are listed in the datasheet.  If the address was non-consecutive, then the part would not know which address to write the 2nd data byte to.  It seems like the only way to achieve this is to have that 2nd register's address already loaded into another register and have an enable bit asserted for this sort of non-consecutive write mode. 

  • I actually have another question regarding block write mode. If I have a 4 ADAR1000's in a CSB group, will the address of the chips increment as well? Or do I need to rewrite for each chip in the group?

  • Huh, doesn't this directly conflict with my first question regarding other write modes since this is is a direct SPI write where the first byte is address and the second byte is data? Neither a block write or write all.

    And if table 20 isn't a block write program then why does the first line "Reset whole chip, use SDO line for readback, address auto incrementing in block write mode" ? 

  • 0
    •  Analog Employees 
    on Feb 24, 2021 7:29 PM 1 month ago in reply to Claff231

    Perhaps I misunderstood your original question.

    The individual register SPI write is the standard SPI write.  There is always 16 address bits, followed by 8 data bits clocked in, while the CSB is low.  You can perform this SPI transaction as many times as you need to.

    I thought you originally wanted to know if you could write the following in a block write style:

    [address1, data1, data2]

    but data2 would not be written to the next consecutive address, but some other arbitrary address.

    As far as table 20 goes, just because you setup address auto incremented (aka address ascension), does not mean you will actually perform a block write (that uses the address ascension).  You can always perform a Block Write, regard of the address ascension setting.  You can have either address ascension or descension in block write mode, i.e. next address data is written to is either n + 1 or n -1, respectively.  This is controlled with Bits 2 and 5 in Register 0x00; 0 = descension, 1 = ascension.   

    Hope this clears up the confusion.

  • Ahh okay, that helps a lot. 

    From what I can understand, and please correct me if I'm wrong. I can always write the 16 bit address followed by an 8 bit data value, and this can be repeated indefinitely provided I always give the new 16bit address before the 8 bit data value. If I want to block write, I would leave out the address, but the data must be for the register immediately after the initial address.  

  • 0
    •  Analog Employees 
    on Feb 24, 2021 8:40 PM 1 month ago in reply to Claff231

    Yes, you can always write 16 bit address followed by 8 bit data value. 

    Block write would be in the following:

    Address_1, data_1, data_2, data_3, etc.

    where address_1 is 16 bits and each data value is 8 bits.  Data_1 is put into Address_1's location, data_2 is (Address_1 + 1) location, data_3 is put into (Address_1+2) location, etc.

    Assuming address ascension. 

  • Great! One last question. 

    Say I am writing in block write mode where I have Addres_1 then data1-4  (address_1-4) for the 3 registers after the first address. Can I stop block write mode by writing a new address? Or do I have to stop block write mode by raising CSB?

Reply Children