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.

CC3235SF: SPI interface to 4 ADS1298

Part Number: CC3235SF
Other Parts Discussed in Thread: ADS1298, , SYSCONFIG

Dear sirs,

We are starting to develop a new product to read data from 4 ADS1298 at a minimum of 250/500 samples/s. As we have to send the samples through Wifi, we have chosen the CC3235SF as the main host to perform this task. Although we are very familiar with Simplelink product, this is the first time that we use this microcontroller.

Currently we are already sending fake data at the needed throughput using UDP packets with the launchxl-cc3235sf. Our SDK is 6.10 and we have modified the included example program named "udpecho" to carry out this transmission with success.

Now, we intend to test the interface with the ADS and change the fake data by real data coming from the ADS. We have already experience with ADS since we use it with our products that are based on the CC2642R1 IC. However, for this design, we have several doubts:

1. In this program (udpecho), there is already defined a SPI (CONFIG_SPI_0). Can we use it for reading data from the ADS or it is already in use to communicate with the networking subsystem?. If this is the case, can we add a new SPI? . SysConfig does not give us the chance to add another one. Is that right?. Do we need to share this one?

2. Could you please advice us if the CC3235SF will be able to cope with the 4 ADS through SPI?. Should we connect them in daisy chain?

Looking forward to hearing back from you

Thanks

 

  • CONFIG_SPI_0 is an SPI interface for application use (If you check the syscfg auto-generated code you'll find out that 2 instances of SPI are allocated and one is kept for the NWP connection).

    SPI support multi-slave through use of SS - you can control the SS by SW and use GPIOs to control the different slaves (sharing the clock/MOSI/MISO). 

  • Thanks Kobi for your answer.

    My concern regarding the second question has to do with the capacity of managing the interruptions and the readings fast enough to keep the needed transmission throughput.
    For instance, in the case of 500 samples/s, the throughput is 4 ADS * 216bits * 500 = 432000 bps = 54000 Bytes/s

    For the interruptions, we believe that there are 3 scenarios:
    1. ADS connected individually (sharing only CLK,MOSI and MISO): interruption rate for 500 samples/s x 4 ADS = 0.5ms with readings of 216bits
    2. ADS connected in cascade (synchonised start and clock with individual CS per device); interruption rate for 500 samples/s = 2ms with readings of 216*4=864bits
    3. ADS connected in daisy-chain: interruption rate for 500 samples/s = 2ms with readings of 216*4=864bits

    Therefore the CC3235SF has to be able to collect the data from the 4 ADS, packed this data and send it through Wifi at the appropiate speed

    Do you think the CC3235SF will be able to manage it?. What configuration do you recommend?.

    Regards

  • the device can support application throughputs (over TCP) of up to 13Mbps (high threshold was achieved in lab, open-air will reduce this number), so 432000 bps shouldn't be an issue. But this assume that you are sending full size packet (aggregated) and not packet per sampling cycle which will increase the bandwidth due to TCP/IP overheads). 

    I don't see why you won't have the 2ms interrupt rate for all the scenarios. the master will wakeup and read every 2ms from each of the slaves. this is not optimal but should give you enough CPU cycles (at 40MHz) to finish the task (but please verify this yourself). BTW. XiP flash has some delays, if you have a time-critical code you can allocate it in the 0 wait-state SRAM.