"When designing products, developers often can't choose a satisfactory and perfect solution. For example, when using MCU for development control, they can't make full use of MCU resources. Although semiconductor manufacturers have made every effort to launch micro controller products with differentiated peripheral functions as far as possible, the provider is not a developer, In short, the choice of MCU often makes developers unable to make the best use of everything. In view of this phenomenon, cypress launched psoc4 with programmable module before. Now, the author has got a microcontroller that users can customize and configure, which can be said to subvert the rules of MCU field - StartKit, a development board of configurable Xcore multi-core microcontroller products based on XMOS company.
XMOS is a young private fabless semiconductor company. At present, it mainly designs and develops configurable microcontrollers for complex and diverse embedded systems, and StartKit is the development evaluation board based on this configurable Xcore microcontroller. In a word, getting StartKit was an unintentional move. I inadvertently browsed the website of XMOS company and saw that there was an opportunity to apply for a trial of StartKit board, so I made a quite correct choice. A few months after applying for trial and getting the board, I almost forgot about it. I just recalled it after receiving the mysterious gift StartKit from Hong Kong not long ago. Now let's take you to understand the StartKit development board based on configurable Xcore multi-core microcontroller launched by XMOS company.
StartKit development board
The packaging of the StartKit development board is very concise and clear. The packaging of the real purchased products should be different from this. The author wrote "a goft from XMOS" on the cover of this complimentary board. When the package is opened, the inner cover indicates some hardware conditions of the board and the link website of the use guide. The StartKit development board is embedded in the anti-static black foam in the middle, which is well protected (see the figure below).
StartKit development board packaging
Similar to this simple package, for example, the previous ATMEL xplained Pro Series development boards are not equipped with a power cord, and StartKit is no exception. You need to prepare a micro USB cable for use.
The StartKit development board is as simple as its packaging. It is a simple 4-layer green PCB, 94mm * 50mm in size, with an XMOS marked chip on the front. There are only scattered peripheral devices around it, and there is a bare piece on the back, except for some vias from the front and a row of metal solder joints, At first glance, StartKit board has very few functions to play (see the figure below).
Front and back of StartKit development board
OK, put aside the conjecture, let's take a closer look at the composition of StartKit board.
Hardware overview of StartKit development board
StartKit onboard resources:
Xcore analysis a8-dev microcontroller integrates debugger and a 256Kb SPI flash
A micro USB interface is used for power supply / debugging
One PCIe interface, one button switch
3 * 3 green matrix LEDs, 2 green LEDs
Two capacitive touch sensitive strips, ADC input interface, two rows of raspberry compatible GPIO interfaces
After careful observation, you will find that StartKit still has many functions, such as micro USB interface with ADC input, micro USB interface with debugging function, touch sensitive bar with human-computer interaction function, and various creative PCIe interfaces of DIY. In addition, it is especially considerate for raspberry compatible GPIO interface (only a via is reserved, and the pin seat of the interface needs to be welded by itself), This makes it an ideal real-time I / O solution for various raspberry PI projects. The integration of these functions should be attributed to this "specially customized" Xcore analysis a8-dev microcontroller. Why special customization? Let's get to know.
Xcore analysis A8 dev microcontroller
When I first got the board, I didn't know why, so I took it for granted that the letters and numbers of mark on the chip were the product specifications and models. After looking around, I found that there was no chip of this model on the XMOS official website. At present, the Xcore microcontroller series products on the XMOS official website mainly have four categories:
One is an L-Series product based on the most basic Xcore microcontroller
One is a series that adds the function of ADC to L series products
One is the U series with USB PHY integrated on the a series
The latest XA series integrating arm Cortex-M3 core extended architecture SOC
However, Xcore analog A8 dev microcontroller does not exist in any of these series. The reason is that XMOS company specially customized the microcontroller for StartKit (see the figure below).
Xcore analysis A8 dev microcontroller
To thoroughly understand the functions of Xcore analog A8 dev microcontroller, we must first start with the architecture of Xcore. Xcore is composed of single or multiple tiles. Each tile can be distributed with up to 8 32-bit logic processing cores, and each logic core can process real-time tasks independently. At present, the highest device owned by XMOS device is 4 tiles, which can accommodate 32 logic processing cores in total( The following figure shows the internal block diagram of two tiles Xcore series microcontrollers)
Internal system block diagram of Xcore series microcontroller with two tiles
Compared with traditional microcontrollers, Xcore has higher performance. Each tile has a computing performance of 500 MIPs, and a single logical core has a processing performance of 125 MIPS at most. Although the logical processing cores in the same tile have separate register files, the logical processing cores in a tile can share the resources and storage in processing, This architecture makes the performance of Xcore simple and efficient. In addition, Xcore has DSP operators and instruction set, which can let you process high-speed digital signals. Therefore, similar car entertainment audio solutions can be realized through Xcore.
After understanding the architecture of Xcore, it is easier to understand the Xcore analog A8 dev microcontroller. As mentioned earlier, Xcore analog A8 dev microcontroller is a MCU specially customized by XMOS for StartKit development board. It has two tiles. One tile integrates debugger and USB PHY; A tile integrates eight 32-bit logic processing cores, has 500mips processing performance, and all digital IO is led out on the StartKit development board. The system block diagram of Xcore analog A8 dev microcontroller can be seen in the figure below (not complete, for example, the integrated debugger is not reflected in the figure below).
Xcore analog A8 dev microcontroller system block diagram reference (incomplete)
In short, Xcore analog A8 dev is a new microcontroller with multiple processing cores. The efficient 32-bit logic processing core can execute reduced instruction set, support high-level programming languages (such as C, C + + and XC language developed by XMOS on the basis of C language), and can process multiple real-time tasks in parallel at the same time, In addition, the on-chip debugger can support comprehensive and real-time circuit operation analysis of the complete design. This enables developers to see what happens in the device interface and their code in real time while their system is running without affecting performance. The StartKit analog interface can be monitored together with the digital signal. For example, the user can observe the signal in real time by monitoring the capacitive touch sensor.
Xcore analog A8 dev microcontroller has very flexible IO configuration and deterministic execution time. For IO response time, it is 100 times faster than traditional microcontroller, as shown in the example below.
Response time of IO port of Xcore analog A8 dev microcontroller
It can be said that all the functions of the StartKit development board lie in this special customized Xcore analog A8 dev microcontroller. As mentioned earlier, there is basically nothing to say about the scattered circuits around. The following is the functional block diagram of the StartKit development board, which mainly describes the functions of the development board.
Functional block diagram of StartKit development board
StartKit power on and start
After a preliminary introduction to the StartKit development board and Xcore analysis a8-dev microcontroller, we will further understand StartKit through the operation of power on the development board. After powering on the micro USB line, the board will run the factory default LED matrix breathing lamp program (see the figure below).
Led breathing program of StartKit development board
The first time you use the StartKit development board to connect to the computer, you will be prompted to install the driver. At this time, you need to install the driver by installing the XMOS development tool xtime Composer Studio.
Xtime Composer Studio is a development tool specially developed by XMOS for its own Xcore microcontroller (32-bit and 64 bit operating systems supporting multiple platforms: windows, OSX and Linux). Xtime is similar to the well-known keil software and is also a full graphical development environment, including compiler, debugger, a static timing analyzer and software based logic analysis tool, The following figure shows the interface of xtime software for the first time.
Xtime Composer Studio interface description
OK, let's learn more about StartKit by using the xtime tool. The routine code can be obtained online at the bottom left of xtime software (see the figure below), which is very convenient and fast.
Download routine code online via xtime
Take the routine selected by the author as an example, click the tag comm - > and then double-click the spinning dot routine. A confirmation box appears to determine the local path of the code to be downloaded. After downloading, you can modify and compile the code through the user's local project file box in the upper left corner (as shown below)
Xtime software code rewriting, compiling, running, debugging, simulation, downloading and other operations
The bin file stored in the bin folder is the compiled bin file. You can download the program to the StartKit development board through the lightning flag button in the menu bar, or click the run button to view the execution results on the board in advance. This is a very humanized operation, which can help users test run the compiled software and view the operation results, Greatly reduce the operation of reading and writing flash only by downloading frequently, so as to greatly prolong the service life of flash. The following figure shows the results of the spinning dot routine (for reference only)
The spinning dot routine runs as a result
Of course, these experiences do not show the advantages and differences of StartKit. At the beginning, the author mentioned the configurability of Xcore. How should I operate? This requires another software, XMOS xsoftip explorer, which can be downloaded separately from the official website. However, if you have installed the xtime development tool, you can directly open it from this software (see the figure below) - Window - > Open Perspective - > XMOS xsoftip explorer.
Open the XMOS xsoftip explorer from the xtime tool
The interface of XMOS xsoftip Explorer tool is different. It mainly includes a module code file box, loaded system configuration, detailed information of loading system configuration, and humanized instructions mentioned many times (see the figure below).
XMOS xsoftip Explorer development tool
From the XMOS xsoftip Explorer development tool above, we can see that there are many examples of obtaining function module code online, which can fully meet the needs of users to design their own external expansion function boards, such as Ethernet, display, audio and other functions. However, because these functions need the support of corresponding boards, the author can't demonstrate them one by one here. Let's briefly introduce the usage of xsoftip.
Select the required module in the online module box, click and drag it directly to the loaded system configuration box. Then click "C" in the system configuration box to create the project (as shown in the figure below, taking the LED PWM module as an example)
Use of xsoftip Explorer development tool
Then select the corresponding board and tile, modify the supplementary code to improve the configuration, and finally view the results through the simulation timing, as shown in the figure below.
Timing simulation of LED PWM driving routine designed by loading the module in xsoftip Explorer development tool
Due to space constraints, here is just a brief introduction to the general use of the software. Interested friends can download it on the XMOS official website and experience it. Even without a board, these XMOS software have corresponding guidance notes and simulation functions to realize the preview of the functions. Of course, if you don't like it, you can buy a real StartKit. The quotation on digi key is $14.99.
Summary
Through the introduction and use of StartKit development board, it is found that Xcore Architecture Series microcontrollers of XMOS company can not be simply regarded as a fixed hardware carrier, but more through the perfect combination of proprietary design tool xtime and development board, giving birth to the mode of 1 + 1 far > 2. For users themselves, we also see an innovative definition, Instead of relying on the demand to constantly find the corresponding chip, but through the "transformation" of the chip, we have our own ideal solution. We believe that this innovative model of XMOS company is worthy of reference for semiconductor manufacturers.
reference material
XMOS official website
StartKit purchase link
StartKit data
StartKit getting started
Original statement: This article is original by Aiban. Reprint is declined“
Our other product: