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.

[FAQ] ADS7953: I cannot communicate with the ADS795x, how do I program the device?

Part Number: ADS7953

I am having trouble programming the ADS7953, part of the ADS795x family of devices.  How do you communicate to the device?

  • The ADS795X family of devices is programmed using the SPI bus, consisting of CS, SCLK, SDI and SDO, and has three sampling modes of operation.

    Let’s use an example where Manual sampling mode is used. We want to program the device in manual mode, sample channel 4 next, use the extended 2xVref range, do not enter power down mode, and have the SDO include channel ID.

    To use manual mode, the Control Register must be programed following the bit-by-bit breakdown provided in Table 1 from the datasheet, shown below.

    To accomplish this, SDI command needs to be programmed following the CS frame shown in the timing diagram below, which is based on the register map in Table 1.

    The command in binary would be: 0001 1 0100 1 0 0 0000b.

    Which converts to 1A40xh

    Let’s build on this example, and say instead of the channel ID, the GPIOs are used, specifically GPIO0 and GPIO1 as outputs set to high.  

    This new example uses the GPIOs, this calls for the GPIO Register to also be programmed. In this case, the GPIO register needs to be programmed before the Control register is programmed.

    To program the GPIO register, the SDI command must follow the bit-by-bit breakdown listed Table 11 in the datasheet, also shown below.  The previous timing diagram can be used as a reference.

    The GPIO register needs to have GPIO0 and GPIO1 programmed as outputs.

    Based on Table 11, the SDI command to program the GPIO register is as follows: 0100 00 0 0 0 000 0011b

    Which converts to: 4003xh

    Once the GPIO register is configured, the next CS frame will be used to set the GPIOs and begin a new conversion, by programming the Control Register

    To program the control register, we will be using the previous example. The device will use manual mode, sample channel 4 next, use the extended 2xVref range, but now GPIO0 and GPIO1 to be outputs set high.  

    Following the timing diagram previously provided, the SDI command is as follows:  0001 1 0100 1 0 1 0011b. Which converts to 1A53xh.