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.

Interfacing an ADC1610 with MSP430F2410

Other Parts Discussed in Thread: ADS1610, MSP430F2410

We are planning to interface a 16-bit, 10 MSPS ADC (ADS1610) with the MSP430F2410.  Are there going to be any issues reading data into the MSP430F2410 every 100ns?

  • EE_2_MBA said:

    We are planning to interface a 16-bit, 10 MSPS ADC (ADS1610) with the MSP430F2410.  Are there going to be any issues reading data into the MSP430F2410 every 100ns?

    Yes.  The MSP430F2410 operates at a clock frequency of 16MHz, or 62.5ns clock cycle.  Secondly, there is not a parallel interface on the MSP430 to capture the data coming from the ADS1610.

  • Brandon,

    Thanks for the response.  We have 16 dedicated GPIOs to read in the ADC values.  We should be able to register these GPIOs every 62.5ns, right?  The ADC (GPIO) values will change every 100ns.  Or is there something we are overlooking?

    Thanks!

  • EE_2_MBA said:

    We have 16 dedicated GPIOs to read in the ADC values.  We should be able to register these GPIOs every 62.5ns, right?  The ADC (GPIO) values will change every 100ns.  Or is there something we are overlooking?

    The information that I am relaying below is taken from the MSP430x2xx Family User's Guide (SLAU144) in Chapter 3.4 for the CPU and instruction set portion, and Chapter 8 for the GPIO portion.

    Section 3.4 provide valuable information in describing the number of cycles required for each instruction and which addressing mode is used.  For the scenario that you are mentioning, let's assume we are implementing a move from the GPIO Port Input register to a CPU register (probably not what you want to do, but for illustration purposes let's use it).

    In this case, you would be implementing something like : MOV @R4, R5
    The address of the GPIO Port Input register would be in R4.

    Looking at Table 3-16, we see this instruction takes 2 cycles.  That is your best case.  So already we are now indicating it would minimally take 125ns to perform a read of the GPIO Port Input register and shove that data into a CPU register.  Also note, each GPIO Port is only associated with 8 bits.  Therefore you would need to perform two sets of this operation to get all 16-bits, which means minimally, 4 cycles or 250ns.

    I suspect that you probably want to capture a set of this data coming from the ADC1610, so really you want this data going into memory, not a CPU register.  This would be something like a MOV @R4, 0(R5), where R4 is the GPIO Port Input register address and R5 is the address of the destination.  The 0(x) is a an offset of 0.  This instruction takes 5 cycles.  If you need to create a buffer in memory using R5 as the index, you then need to increment R5 which is a 1 cycle instruction.

     

    I hope that I have clarified things appropriately.

**Attention** This is a public forum