Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Since you write with an authoritative voice, I ask:

  * I've most often heard of the STM32 series as microcontrollers instead of microprocessors and never as CPUs. What is your reason for referring to them as a CPU?

  * What is wrong with "25-50 FPS on QVGA (320x240) resolutions and below" for low cost use cases, like a step up or longer range than an ultrasonic obstacle sensor?

  * What is the advantage of an FPGA over a microcontroller or microprocessor of similar cost? Are there disadvantages in terms of additional technical debt to programming a FPGA instead of a higher level controller or processor API?


Dear Adolph,

shouldn't you be the one speaking with an authoritative voice? ;)

I'd say "microcontroller" and "CPU" are both designations of their purpose, whereas "microprocessor" is a designation of technology. So yes, usually the STM32 are used as hardware/sensor controllers alongside with other microprocessors and then it makes sense to call them "microcontroller". But in this specific hardware design discussed here, the STM32 acts as the central processor coordinating everything. That's why I called it CPU to highlight this central function.

"25-50 FPS on QVGA (320x240)" is just too little performance for most practical applications. Also, $80 is very far from "low cost use case". That's why I pointed out that for the same price, one can have much more performance using FPGA. Who wouldn't want 100x faster at the same price?

The big advantage of an FPGA is that you can drive its clock from an external source. If you hook a CPU up to a sensor, it needs to burn CPU cycles (or have dedicated FPGA-like hardware) to read bits from the port when the sensor sends them. With an FPGA, you can take the sensor's clock and use that to drive your circuit.

But much simpler than that, CPUs are built to handle a lot of different tasks at an OK price. FPGAs are more like GPUs. They do signal processing very well, but fail badly in other areas. Plus CPUs can be programmed easily in a variety of languages, while using an FPGA well requires obscure tools and knowledge.

CPUs are Easy+Generic+Slow. FPGAs are Difficult+Specialized+Fast.


Thanks for the reply. I found the below page as a relatively updated info source. It is interesting to see your note about FPGAs being more akin to GPU and then see many development boards pair a FPGA with an Arm processor.

https://www.joelw.id.au/FPGA/CheapFPGADevelopmentBoards




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: