Blog » Freescale 56800/E digital signal controllers
Freescale 56800/E digital signal controllers
I think there is no need to heavily introduce Freescale company - one of the biggest microcontrollers, processors and signal controllers manufacturer. For example their 8 bit microcontroller family S08 is very popular around the world. I will focus on something what Freescale calls "Digital signal controllers" (DSC) family with 56800/E core which can be placed somewhere between classic 8 bit microcontrollers and powerful microcontrolers with ARM core. They are interested because of their signal core, reasonable price and scope of development products offered by Freescale for free.
Frescale says that they combined good signal core with peripherals and easiness of programming microcontrollers. One must say that this combination is very nice and easy to use in low level too. Lets see main benefits of this combination:
- Less of external components
- Wide range of target applications
- Minimalization of analog signal processing
- Possibility of implementation of adaptive measurement chain
- Better analog properties of whole application (noise imunity, PSRR, easy adjustment, etc.)
Target applications of these controllers are:
- Motor control (3 phase BLDC, PMSM, etc.)
- Inteligent power changers
- Control and regulation
- Medical and therapeutic instruments
Now lets see key features of this architecture:
- 16 bit processor - 16 bit memory organisation with byte, word and long word addressing possibility
- 4x 36 bit accumulators - every accumulator is composed of two 16 bit parts and 4 bit extension, which reduces a risk of result overflow. ADD, SUB and other instructions between accumulators are fully 36 bit.
- DSP instructions - multiplication 16x16 with 36 bit accumulation (MAC) within one instruction
- Paralelism - every processor unit (memory, peripheral, ALU) works independently and it is possible to work with them in one single moment. For example it is possible to do following within one single instruction:
- fetch next instruction
- MAC 16bx16b+32b
- saturate or round result (optional)
- two 16 bits moves
- update two pointers
- Hardware loops - support of two nested loops like "repeat N times" directly by instruction set
- Multitasking support - this is what Freescale says. It can not be compared with ARM (there is no memory protection, no privileged instructions), but there is a possibility to do preemptive multitasking with this core (will be described in some of future notes)
- JTAG debugging
I really recomend to study home page of signal controllers. There is a lot of useful documents and you can get the basic idea of properties, possibilities and types. I will focus only on MC56F8xxx (80xx, 81xx, 82xx, 83xx and 84xx). Other types are classic signal processors (same core but no peripherals) or controllers with older core type. It is not easy to understand types numbering for the first sight. You can see complete roadmap of DSC on picture below. You can undestand numbering of DSCs depending on its performance/peripherals from it.
Freescale 56800/E DSC roadmap
All types have common core - 56800/E and sophisticated peripherals (especially PWM considering target applications). 56F84xx types have latest 56800/EX core with higher performace, lower power consumption and more improvements.
Availability for normal user is quite good. Farnell, Digikey and other well known sellers have DSCs in stock. Freescale is known for its good sample policy (you can obtain any sample type quick).
I will try to describe entire signal controller family on this web but the only affordable demo board is MC56F8006DEMO kit (see picture below). You can buy it on Farnell for aprox. $50. You can also build your own kit - Freescale has documented all kits schematics. So you can design your own board and populate sample from Freescale.
Freescale MC56F8006DEMO kit
Tools needed for development:
- MC56F8006DEMO kit or other kit with any type of DSC with 56800/E core
- CodeWarrior for DSC Special edition - development IDE with C compiler and 64kB code limitation - free
- DSP56800E QuickStart - configuration application and set of functions/macros for your quick start - free
- FreeMASTER Run-Time Debugging Tool - visualisation tool for debugging - free
- JTAG adaptor - you can use CodeWarrior USB TAP (for about $100) or you can buy your own LPT JTAG based on 74HC244 and 74LS00
As you can see Freescale policy is to offer maximal possibilities for beginning developers - code limitation 64kB is really big (MC56F8323 in LQFP64 has 64k FLASH memory). Regarding JTAG - you can build special pack of MC56F8006DEMO with CodeWarrior USB TAP for $100. This is a good choise.
CodeWarrior Development suite exists in two variants:
- Classic IDE - old
- Eclipse IDE - new
I personally use the old one but it has strange editor window behavior and bad syntax completition. I will probably move to Eclipse IDE soon.