This question is about understanding the internal workings of the CSR8675 Bluetooth audio chip

These four terms keep popping up while working with the CSR8670/8675 chip

  1. VM (Virtual machine)
  2. Firmware
  3. MCU (Microcontroller Unit)
  4. Kalimba DSP

Could someone please explain in detail what exactly is the difference between them? I have some understanding of the differences between VM and firmware, and I believe that the kalimba DSP can be considered a completely separate processor just packaged inside the same 8675 chip, but where does the MCU fit into all of this? Is the bluetooth stack a part of the MCU as well?

block model of the mcu and the interfaces

8670 datasheet can be downloaded here


1 Answer 1


You are correct the, DSP is a separate processor within the CSR8675. It has its on program and data memory.

All image are taken from the linked datasheet.

block picture around the mcu's DSP

The DSP (Digital Signal Processor) is a dedicated processor. It has additional hardware units, parallel instruction execution support that gives you a better platform with better performance to process audio, video and such signals where huge amounts of data has to be processed in short time. Check the link for more details. The audio handling part of your software should be implemented on this processor.

The MCU is a more general unit, the datasheet calls it "application processor". It is used for the higher logic of your application. While the DSP handles the audio signals, general thing such as LED driving, capacitive sensing and USB connection can be handled by this MCU.

The BlueCore® CSR8670™ BGA consumer audio platform for wired and wireless applications integrates an ultra-low-power DSP and application processor with embedded flash memory

As for the firmware and VM. Page 104 gives you a comprehensive figure of the software.

model of the mcu's firmware architecture

The firmware means the whole software of the device and consists of different parts.

  • On-chip software on the MCU by the manufacturer. This can be for example the BT stack, just as you suspected.

    The internal MCU runs the Bluetooth stack up to the HCI.

  • Applications on the MCU (in the VM) by you. The VM is the environment where your application software can be placed within the MCU's program memory.

    The software layers for the application software run on the internal MCU in a protected user-software execution environment known as a VM

  • DSP Application, again by you just on a separate unit.

    DSP application code runs from the DSP program memory RAM

Not the answer you're looking for? Browse other questions tagged or ask your own question.