"Preface: the promotion of Galileo Gen2 is a meaningful upgrade
Speaking of the Intel Galileo Gen2 board, the author's mood for it can be said to be like a roller coaster, first the excitement before getting it, then the depression after getting it, and then the admiration after really understanding it. How to say, before I saw the second generation, I had great expectations for it. I imagined how much the hardware configuration and functions had been improved. However, after I really got the board, I found that the main application processor had not been upgraded and the functions remained basically the same as those of the first generation. No wonder it would be a little depressed, but if so, Is it necessary for Intel to launch the Galileo Gen2 generation? Therefore, after careful review and real understanding, it is found that the board has indeed improved. It can be said that compared with the first generation, it is not only more user-friendly in operation, but also a qualitative leap in the performance of IO port. What specific changes will be made for you below.
Unpack
First, what we have to do is to make complaints about Intel Galileo GEN2 generation packaging. There is little difference between the 1 generation and the OCD patients.
The adapter provided with the board contains socket heads of different specifications, which is very convenient for users who need it, but it is a waste of resources for most users.
If you compare the boards of Galileo Gen 1, you will find that the board size of Galileo Gen 2 has increased, which is 123.8mm * 72.0mm, and that of generation 1 is 10cm * 7cm.
The power adapter equipped with the board is 12V / 1.5A output. Compared with the first generation, the power supply voltage of the second generation is increased. The purpose of this is likely to be related to an on-board Internet of things application. It will be sold here first and will be announced later.
Comparison with generation 1 Hardware
Let's have a look first Comparison between Galileo Gen2 and Gen 1 boards
Galileo GEN2
Galileo 1
If we look carefully, we can still find many differences, especially in the performance and implementation of functions, many circuits have been redesigned.
Change of HSB host interface
In the 1 generation, I believe many users have used the USB HOST interface on the board to install the MicroUSB bus base interface. At that time, more likely to make complaints about the layout of the card space. But the consequence of this is that we basically need to use the USB OTG connection line to use the USB interface, which is very troublesome. In the second generation, this problem is well solved, and the standard USB type a motherboard interface is adopted.
Galileo Gen 1
Galileo GEN2
Change of UART interface
In addition to USB interface, UART interface is the largest tucking point of Galileo 1 generation, and it has even given a 3.5mm audio interface. This has to allow users to give full play to their imagination and make complaints about how to use serial port functions on the card.
Galileo 1
On the Galileo Gen2 generation, the board adopts a 6-pin 3.3V USB TTL UART connector, which is very convenient. You can view the serial port output by using our usual USB to serial port cable, which is convenient for Linux debugging.
Galileo GEN2
Upgrade of power interface
Compared with the 5V power supply in the next generation, the Galileo Gen2 generation adopts the power supply voltage input of 7 ~ 15V. At the beginning of this article, we have raised this question. Why do we adopt this power supply mode?
Galileo GEN2
To say this, we have to talk about another important improvement on the Galileo Gen2 board, the upgrade of Ethernet - support for 12V POE (power over Ethernet). This technology literally means to supply power through Ethernet. As we all know, the purpose of Intel's Galileo development platform is to aim at the current hot Internet of things industry, and networking applications must be the focus. At present, there are no onboard wireless modules on the board, and the only networking means is to rely on the Ethernet port on the board. In practical fields, there are countless Internet of things applications based on Ethernet communication, for example, For example, the current surveillance cameras, and the addition of Poe technology makes these camera applications do not need additional power supply, which not only saves costs, but also greatly reduces the layout difficulty in practical applications.
Upgrade of IO port
Speaking of this, many users will wonder whether the IO port function is still that function. What about upgrading?
I don't know how much. Notice that there are many large and small chips in the Galileo Gen2 compared with the first generation? What's the use of these chips? The answer is to upgrade the IO port!
Galileo GEN2
In Galileo generation 1, we already know that the IO port of quark X1000 SOC only supports the level of 3.3V, which can not meet the 5V level support of Arduino interface. In order to be compatible with the 5V level of Arduino expansion interface, generation 1 uses I2C bus to expand IC through cypress io Cy8c9540a expands many IOS. This design is simple and convenient, but the main problem is that it does not make good use of the original GPIO port of quark SOC, which greatly limits the expanded IO rate.
In the Galileo Gen2 generation, although the signals of PWM and ADC are still led out through the extended IC, the IO port is directly led out from the original GPIO port of quark X1000 through level conversion and buffer system. Although the circuit is cumbersome, the performance of GPIO port is not greatly affected. In the later power on link, we will also focus on testing the performance of Io.
The hardware differences between the Galileo Gen2 generation and the first generation can be attributed to the above points. The main changes are also on the front of the board. On the back, there is little change between the second generation and the first generation, mainly by moving the JTAG debugging interface in the first generation to the back.
Galileo GEN2
Galileo 1
Galileo Gen2 hardware block diagram.
Power on measurement
Like generation 1, Galileo Gen2 has built-in a simplified version of Linux system, which can run when powered on. For specific operation steps and processes, please refer to the evaluation of generation 1, which will not be introduced here.
The startup of Galileo includes UEFI (Unified extensible firmware interface, which is used to automatically load the operating system from the pre started operating environment to an operating system), grub boot (multi operating system startup manager) and loading the Linux operating system. Its operating environment is like a standard PC. After the system is started, you can enter the root command to enter the Linux command operation interface. In addition, if you want to run a full version of Linux system and upgrade firmware through microSD card, please refer to the following two posts:
Micro SD card full version Linux system startup reference
SD card upgrade method of Galileo firmware
For the development of arduinio software environment for Galileo board, Arduino IDE and USB CDC driver need to be installed. Seriously, it is not recommended to use Intel's official installation program for IDE tools (although it is easy and in one step). The installation process may be interrupted and reinstalled due to network problems. The author tossed back and forth twice. I really can't stand it. Finally, I went to Arduino's official website to download it. At present, the IDE fully supports Galileo board, There is no need to set the language and startup mode like the first generation.
The USB CDC driver can be downloaded separately through the on-board USB client interface, which is different from viewing the serial port started by the Linux system.
Note: when using the Arduino ide tool to connect the USB cable, you must ensure that the Galileo evaluation board is connected to the DC power supply first, which is repeatedly emphasized in Intel's use specification. This is because the DC-DC power chip tps652510 used by the Galileo board will generate very high current at the moment of startup. Directly inserting the USB cable may cause damage to the board or computer.
After installing the USB CDC driver, you can see the virtual Galileo COM port, which is a serial port for board firmware update and Arduino file download.
Board and port settings in Arduino IDE
After the basic setting is completed, we can build an IO port level switching program in Arduino ide to check the IO level switching speed. The program is very simple and see simple high-low level switching. Take pin12 pin as an example, as shown in the figure below.
Many people may have questions here. Why test the level switching speed of the IO port? In fact, IO fast level switching is widely used in reality. For example, when GPIO is used to simulate SPI signal, it is necessary to generate the clock signal agreed in SPI protocol. If the output performance of IO is good, high-speed SPI communication can be realized, so as to improve the work efficiency of the system. Since Intel takes so much trouble to realize the output of the original GPIO port of quark SOC with more complex circuits, we must see what performance we can achieve anyway.
In the formal test of the level switching frequency of IO in Galileo Gen2 generation, the author first talks about the level switching frequency of Galileo Gen 1, which is 222hz.
OK, compile and download the level switching program into the board. We measure pin12 pin and GND pin on Arduino expansion interface through oscilloscope.
The test results are really eye-catching. The switching frequency of IO is 446.4khz, which is more than 2000 times higher than that of the first generation (about 222hz). What a terrible speed, it can be said to be a qualitative leap day by day, which plays a very important role in systems requiring fast communication.
But do you think that's all? In the Arduino library implemented by Intel, it also provides Fastdigitalwrite interface. What is the result of calling this interface to test?
It's really faster. The test results of the same IO port are as follows. The frequency actually reaches 649.4khz, which is nearly 3000 times higher than that of the first generation. However, is it because it's too fast? The original square wave produces similar "spike burr" during level switching, and the instantaneous voltage may reach about 5.5V.
There is no doubt that after actual testing and comparison with Galileo Gen 1, Galileo Gen 2 has made a qualitative leap in ease of use and IO port performance:
3.3V USB TTL UART connector replaces 3.5mm jack RS-232 control port to facilitate Linux debugging
12 original gpios ports can achieve faster speed and improve driving energy
12 bit pulse width modulation (PWM) ensures more accurate control of the servo system and smoother response
Console uart1 can be redirected to Arduino connector, eliminating the need for software connection in most cases
The board supports 7 ~ 15V voltage supply and 12V power over Ethernet (POE) (POE module installation requirements)
Although the author is not optimistic that the SOC quark X1000 can make a difference in the fields of low-power Internet of things and wearable devices, the Galileo Gen2 generation is still worth a try as a board that can be used for DIY and toss.
Evaluation of other open source hardware boards
Intel Galileo Gen 1 profiling
Raspberry Pie 3 evaluation
Banana Pie 3 evaluation
Original statement: This article is original by Aiban. Reprint is declined“
Our other product: