I'm designing an IoT Device with many sensors which are going to be integrated using serial interfaces like UART, SPI, I2C and so on. For communication capabilities, I plan to use Wi-Fi (IEEE 802.11). Does it make sense to use something like Atmel’s Wi-Fi SoC and SAM D21 ARM Cortex-M0+ MCU or use Atmel's Cortex M4 and then integrate a WiFi module using SPI or UART (not a SoC solution).
- If I go with M0 option, I have the advantage of Wifi and MCU on single chip.
- With M4, I will have to integrate them together using some serial interface. But the advantage is a faster processor.
Since I have many peripherals on board, does it makes sense to use a Cortex M4 CPU which is much faster and capable?
Edit: I'm sure this is opinion based. But I'm looking for some valid design inputs which help me make this choice. For example,
I plan to integrate a SD storage, real time clock, a number of sensors - temperature, energy etc. The number of peripherals might be 10 - 12. All integrated through UART, SPI and I2C. I also plan to have communication - Wifi, RF, GSM, Ethernet etc.
I don't need any hardcore mathematical capability. FPU unit would be nice but not compulsory.
What I'm looking for are answers to questions like --
- Does having many peripherals mean I need a bigger and a faster processor? I know this can be handled by ATMega. I was using an 8 bit ATMega for something similar. It worked. But I'm moving to a bigger platform with more peripherals.
- Will going for bigger processor like M4 and M7 help me handle time sensitive operations like RF, WiFi and sensor communication?
- How does one choose based on valid design principles? Is there a set of rules?
- Does faster processor speed, RAM and Flash mean easier to work with when I'm switching between different peripherals?
Also: I'm an electrical engineer with amateur/decent embedded programming skills. Not the greatest but decent.