I'm developing a machine with multiple prime movers and sensors.
Wondering if I could you Edison as my controller?
I require at least 52 GPIOs for PWM, I2C and SPI.
If yes, how could I expand the GPIO pins in Edison, right now I have 14 digital and 6 analog pins.
In order to expand the GPIO pins, you should use a GPIO expander. They are usually controlled through I2C by the Master Device which in this case it would be the Edison module.
How many PWM, I2C and SPI interfaces do you need? If you require that many GPIOs and interfaces, it's inevitable to use external hardware like the GPIO expander, however another option would be to use an external microcontroller with more interfaces and GPIO pins. This way, you would interface this microcontroller with your end devices (sensors, etc.) and then, you can connect this microcontroller to the Edison module using an I2C, SPI or UART interface.
I hope you find these suggestions helpful.
Thanks for the reply Diego.
We need 50 GPIOs for PWM, 6 for I2C and 2 for SPI.
Can you please recommend some GPIO expanders?
Also for the second option which microcontroller should, we go for?
I have Intel Edison with Arduino breakout. What about DF40 connectors, will it be helpful?
There are no external hardware recommended, you would have to check among different options and choose the one that fits better to your project. If you want to use the Edison module, you will have to design your custom board in order to have the desired interfaces. The Arduino Expansion Board is not best board in this scenario since it doesn't expose all Edison pins to be used.
The custom board would use the DF40 connector so the Edison can be mounted on it, however you would have to do the complete design by your own and choose the proper hardware and electronic components for it. Please consider that this is out of our support scope so the help we can offer is limited.
Considering the quantity of interfaces that you need, I would use instead one or two microcontrollers with enough interfaces, and probably some few PWM drivers to have the 50 GPIOs that you need for PWM. I don't have any microcontroller recommendation for you, you would have to investigate among the different options available and choose the one that you think will work better.
If you have additional questions, don't hesitate to ask. I'll try to help you as best as I can.
You can do that, though it might probably require to use your own "baseboard" for Edison instead of Edison/Arduino one. Be also aware about latency requirements (if you strict with them). I2C expanders (which are used on Edison/Arduino) might bring a long and unpredictable latency into communication by its nature (I2C communication the one that might sleep, meaning on heavy loaded non-RTOS scheduling might happen not fast enough).