2
\$\begingroup\$

I'm working with an amplifier chip (slave mode) that is currently receiving the SPI commands through an SPI cable connected to an FPGA board (master mode). I'm looking into making the chip operate on a wireless platform and being independent of the FPGA, and also have power and size/weight limitations so am trying to make the device as small as possible. Essentially what I'm looking for is an MCU that could be used to substitute for the FPGA board and supply the required SPI signals (CS+, SCLK+, MOSI+) to make the chip continously run and put data out through MISO+ (which doesn't need to be processed by the MCU as it would be processed elsewhere) The chip carries out 16 bit ADC, with the min SCLK period being 40.8 ns (24 MHz) depending on the sampling rate. The chip samples MOSI+ on the rising edge of SCLK.

Since I'm relatively new to microelectronics I was wondering what the most efficient way of doing this would be, and what would be the best MCU (or a small low power FPGA?) to carry out this task?

So far the two MCUs that I have been thinking about are:

EDIT:

I was hoping the MCU could be programmed to send the commands down the MOSI+ line, which would include: setting 18 16-bit registers of the chip at power-up, send a 16 bit command to calibrate the chip, and send the convert command to start carrying out the ADC (continue cycling through the channels of the chip as long as it is powered). The wireless capabilities of the MCU would only really be used to turn on/off the slave chip. Since the chip carries out 16 bit ADC, and reads 16 bit commands SCLK is pulsed 16 times when CS is pulled low. MISO+ from the slave chip is sent elsewhere to be sent off-board (to a device that only requires the raw bit stream coming out from MISO+), so the MCU wouldn't have to process it.

Since the chip requires 16-bit words to operate, wouldn't it need at least a 16-bit uC to control it?

Noticed that just cause an uC runs at a certain frequency doesn't mean it can provide SPI signals at that same frequency. For example from what I gathered about the TI CC2650 if it is set as an SPI master, the max SPI bitstream is 12 Mhz even though the MCU itself runs at 48 Mhz. Is there normally a correlation between how the base clock of the MCU relates to what SPI frequencies it can provide?

Thank you in advance,

\$\endgroup\$
  • \$\begingroup\$ What is the maximum SCK period you would accept? \$\endgroup\$ – The Photon Oct 18 '16 at 18:32
  • \$\begingroup\$ Are you sure BTLE can support the sample rate you want? \$\endgroup\$ – Ignacio Vazquez-Abrams Oct 18 '16 at 19:01
  • \$\begingroup\$ At present your real requirements are not clear enough for this to be usefully answerable - likely what you need goes beyond just being able to clock an SPI bus at 24 MHz. But once those are resolved, there remains the problem that the current direction of your question is towards specific part selection, which is both explicitly off topic, and also falls in the category of things likely to be found too dependent on personal opinion rather than definitive answers of the sort the stack exchange sites are intended for. \$\endgroup\$ – Chris Stratton Oct 19 '16 at 17:24
1
\$\begingroup\$

I would say that you want to look for the smallest uC possible that can run at the desired frequency. Since you are only going to use it to transfer the data using SPI protocol, it does not matter if it is an 8, 16 or 32 bit uC - you will be transferring bit by bit anyway. The other question is how you are going to generate the commands for transfer. Or they will be simply stored and read from memory?

And keep in mind that your maximum clock frequency can be 24MHz, and since you are new to electronics, you will be better off starting with a microcontroller, as opposed to an FPGA.

You did not mention anything about wireless communication, what is going to send information and what is going to receive the information, so my answer assumes that you want to substitute the FPGA with something simpler.

\$\endgroup\$
  • \$\begingroup\$ I have edited my original question, where I have answered some of your questions (not enough space here), and asked some new ones. Thanks again. \$\endgroup\$ – varkong Oct 19 '16 at 17:34
  • \$\begingroup\$ It would be nice to know why my answer was downvoted \$\endgroup\$ – Nazar Oct 19 '16 at 18:16
  • \$\begingroup\$ I'm not sure, it wasn't me. I thought your answer was constructive. I noticed my question was downvoted as well. \$\endgroup\$ – varkong Oct 19 '16 at 18:46
  • \$\begingroup\$ I personally used Attiny85 to configure some hardware. I was simply toggling pin to create a pseudo clock and the other pin was used for data. So, before changing the clock bit from 0 to 1, I was updating my data pin with a 0 1 value. So, it looked like a serial SPI transfer, so it did not matter that it was an 8bit uC. However, the frequency was not as high as you want \$\endgroup\$ – Nazar Oct 19 '16 at 19:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.