Hardware To Avoid
There are lots of informative texts on good hardware designs which are of
course well worth reading. But sometimes it is even more educating to
look at examples of especially bad hardware design.
The following examples from actual real-life systems
generally fall into two categories. Either they limit the functionality of
the complete system because of (non-obvious) limitations - usually performance
limitations, or they are so ingenious that they push software costs to an
extrordinary amount where standard solutions would have been available at
a fraction.
Inherently low-performance hardware blocks
- The "SPI Controllers" in the MPC5200 and in the PPC4xx processors.
These "controllers" have a FIFO of size 1 and thus produce a
very high number of interrupts on larger data transfers.
It is thus not a very good idea to attach for example a display
controller or a WLAN module to such an interface or, even worse,
try to implement a MMC/SDCard interface with it.