While digital signal processing tends to be more common than analog in many devices these days, one notable exception is when a device uses analog sensors and the signal needs to be conditioned for digital processing. For these devices, a digital signal controller is necessary, to connect the analog domain to the digital, but how do you go about selecting the right DSC for your device?
There are many considerations, including the cost and availability of the DSC, but before you get to that point, you need to compare a few other key aspects.
Floating Point or Fixed Point Arithmetic
Digital signal controllers use either fixed or floating point units in the processor. Fixed-point arithmetic is more common, but floating point arithmetic is typically more flexible than fixed-point. A floating-point allows designers to use a wider dynamic range, or the ratio between the largest and smallest numbers that can be represented, making DSC processers easier to program because the designer doesn’t have to work with the dynamic range or the precision of the math. However, this ease of use does come with some drawbacks, as floating point controllers tend to be more expensive and use more power thanks to their more complex circuitry.
In most cases, the choice comes down to the needs of the embedded system. A high-volume embedded application is usually better suited by a fixed-point processer, since the cost and power usage are a higher priority than a wide dynamic range and precision. Floating point processers are reserved for those applications that demand a greater range and more precision, or where the ease of programming outweighs the need to control costs.
How a processor’s memory is organized can directly affect its performance. Ideally, the memory needs to be organized in such a way that the algorithms can be executed quickly. Look for processors that are well-organized for your needs; this might be a multi-ported memory that allows for more than one read a cycle, separate memories for the instructions and the data required for each algorithm, or a processor that stores instructions in the cache and data in the memory.
You also need to evaluate the size of the memory chip. If you are using a fixed-point processor for an embedded system, you probably need less memory and fewer external data buses. For a floating point system, you will need more memory to handle the more complex calculations. Often, floating point chips have limited on-chip memory, and instead have large external data buses. In the end, the best option is the one that offers the most efficient memory organization as we well as the most space and external data buses for your specific application.
Power consumption is often a significant issue for the devices using digital signal controllers, so choosing a DSC with power-saving technology, such as reduced power supply voltages and the ability to manage power usage is important. Depending on your application, you may be able to choose a DSC that uses less than the typical five-volt processer, even going as low as 1.8 volts. Offering sleep or idle modes in which power consumption is reduced and the ability to control peripherals so they are not using power when not in use is also important.
Finally, the ease of working within the parameters of the DSC is also an important consideration, and depends largely on how the DCS will be used in the application. When developing new product prototypes or conducting research, a DSC that’s simple and easy to program is often the best choice; a more complex controller can be added at a later date. That being said, you probably want to make sure that the controller you choose includes adequate software tools, including code libraries, compilers, linkers, etc., and the necessary hardware tools to adequately develop the product.
Choosing the right digital signal controller can make the difference between a functioning, well-received device and one that requires excessive tweaking and fails to meet customer expectations. While again, the biggest determinant for the right DSC is the specific project, looking at other factors like the type of arithmetic used, the available memory, the power consumption and the ease of use are all important considerations.