Using of the shelf parts in our products or embedded systems has the drawback of hardware limitations of the parts we are using. As embedded system design is a very broad domain, where you can have a range of products from tiny low-power designs to high end micro-computers interfacing a vast amount of different peripherals.
So many times we are obliged to select and change parts because of the limitations of our mainstream microcontrollers to a higher end one or we need to add external logic and circuits to accommodate richer input-output architecture.
Wouldn’t be great to have a uniform polymorphism platform that can scale easily to work with for the majority of our projects?
Another aspect that is considered is design verification. Embedded systems usually need to have real-time performance, thus classic debugging (step-through) under real-time conditions is not always possible or is an additional challenge. Stack checking on RTOS or timings are not easily observed with accuracy without an impact on performance.
Wouldn’t be great to have a much easier time to debug embedded systems?
For these reasons we are developing an embedded platform that combines the power of a 32-bit microcontroller along with programmable hardware (FPGA). This provides re-usability of hardware, hardware acceleration, extensive functionality not available through standard commercial parts and fast prototyping for proof of concept scenarios.
If you still do not need an FPGA in your application, using such a board can offer you verification advantages for your project. For example you may do hardware stack checking in your RTOS and verify the stack you need or use for every task without any execution time impact. You may also have protected task memory in case you use an external memory connected to the FPGA or have a huge memory expansion RAM in respect to of the native microcontroller’s own RAM.
In addition standard type of connectors are provided for connecting new modules, peripherals etc for easy and fast integration with your projects.
- Embedded Design Verification (Stack Checking, Timings, Tracing)
- Embedded Security (Protected tasks RAM space, Separation of Data and Program memories)
- Hardware Acceleration (AES, Digital Filters, RTOS extensions, Motor Control, DSP)
- Hardware I/O Extensions (I/O pins, Connection of peripherals, I2C, SPI USB)
- Wide input switching regulator (9-36Vdc/ac)
- Coldfire MCF52258 microcontroller @48MHz (512KB Flash, 64KB RAM)
- Spartan XC6SLX9 (11K Flip-flops, 9K Logic cells) @ 48MHz
- microSD Card
- Olimex UEXT Connectors for external modules, (UART, SPI, I2C)
- I/O Connectors (USB, Analog, Digital I/O)
Well, why should I use this platform while I can get similar setups from the FPGA vendors? I can get single or dual ARM cores along with a larger set of available logic.
This is true, however, these solution are micro-processor based and not micro-controller based. The devices are huge BGA, and they still need a lot of peripherals to make it work (SDRAM, Flash etc). Our solution offers a two-chip solution (MCU and FPGA) which is more compact and less power hungry.
What is the advantage over microcontroller based solution that contains logic?
Using an external FPGA device your solution is not bonded to a specific microcontroller or FPGA device. The split architecture allows more flexibility. You can scale up capacity for example using the same footprint (just replace the FPGA with a higher capacity logic one), or you may decide you need another processor (ie. Coldfire or Kinetis) that support the same inter-chip interface.
Soon we will release this product commercially, so stay tuned.