XMC4700 Relax 5V shield Review 4 Thanks to Infineon for completing the FULL EDITION of XMC4700 Relax Kit, and thanks to the relevant staff of EE for giving us the opportunity to look at the resources related to network and SD. Limited to the purpose of the review, the focus is on the resources provided by Infineon itself and the community resources. The referenceability of the resources provided by Infineon itself can indirectly show the status of this production line in the factory, and the referenceability of the resources provided by the community can also indirectly show the popularity of the product. Network systems and storage systems have always been top modules in any complete scale system, and the content they involve is far from being simple to talk about. Let's talk about community resources first. I looked for a long time, and only found one network library CycloneTCP in the public resources within my range. There are indeed very few resources about Infineon in the community. Most of the popular public systems do not have any trace of Infineon. In other words, except for the undisclosed professional systems and professional fields, Infineon has almost no share, which is a pity. Of course, the problem may also be that my scope is not enough and my experience is limited. From the perspective of the history of science and technology, the so-called "high-end"/"professional" either disappeared, was sold, or transformed into full market coverage. Without exception, they were all dominant companies/products. I hope Infineon can cover the entire market and strengthen community investment. CycloneTCP was originally available for direct download in the Keil repository, but it seems to have been removed in the newer Keil. Although it has been removed from the Keil repository, it does not affect the use of CycloneTCP at all. The code for direct download contains examples of web server and ftp client. Both examples support iar, Keil and Dave. However, it should be noted that the Dave project version in the demo is 3.x, and the latest Dave4 cannot be opened. The project is very simple, but you need to activate the GPL_LICENSE_TERMS_ACCEPTED macro to indicate that we are using GPL-licensed code. After compiling, you can directly burn it. When powered on, use the serial port tool to connect to the virtual serial port carried by the XMC4700 Kit to display the process information, as shown in the black background window part in the figure below. If you use DHCP to obtain an IP address, you can see it here. Visit this IP in a browser to open the homepage provided by the web server. A very complete network example. Here, we do not use the xmclib library provided by Infineon, but use cyclonetcp to operate xmc4700 by hand. It mainly consists of two parts: phy and mac driver. They are located in drivers/phy/ksz8081_driver.c and drivers/mac/xmc4700_eth_driver.c files. I personally feel that the mac driver is more concise and intuitive than the official xmclib driver in Infineon DAVE. Most importantly, it is more reference-oriented than the simple xmclibdriver with a working protocol stack. There are indeed very few community resources to be found. The network protocol stack above is already one of the few high-quality codes that supports Infineon systems. I really hope that Infineon can strengthen its coverage of the entire market and community investment. The resources provided by Infineon itself are mainly concentrated in the official website documents and the various references, libraries, and example codes included in DAVE. The official documents are very well written, guiding users as complete beginners with no experience. It is very introductory, but it seems a bit overkill to people with some experience. Try it out. Doesn't it test your patience? Of course, there are many user manuals from other device manufacturers that have such a low understanding threshold, and they are equally excellent. The sample code provided by Infineon is of great reference value. It includes a reference for a web server based on the lwip protocol stack and rtx rtos, a reference for the typical working mode of the Internet of Things (IOT), a reference for modbus implementation based on the lwip protocol stack and freemodbus, and a USB virtual FAT file system based on LUFA. The most interesting thing is that it provides a reference implementation for updating firmware online. This function is the popular mbed virtual disk that directly drags and copies to download binary programs. The document is very detailed, and the details are anxious. Compared with the cyclonetcp mentioned above, the lwip protocol stack is obviously a work of personal heroism, while the latter is a work of mass solidarity and cooperation under the company's specifications. From the perspective of design and code quality, there are still many problems to be dealt with if lwip is used in products, and the experience of using it is quite painful. I have no product experience with cyclonetcp. If I have the opportunity, I am very happy to evaluate the quality and stability of cyclonetcp used in products. Compared with online resources, the two materials of modbus and IAP are more valuable for reference. The good thing is that the codes are all in the examples, which are very comprehensive and have detailed code and documentation. Even those who do not use Infineon devices can refer to these two implementations. It should be noted that if you plan to transplant this part of the code in your own project, the relevant part of the RTOS in Dave uses RTX from Keil (which was acquired by ARM a long time ago, and ARM has also been controlled by the Japanese). This operating system is the reference implementation of ARM's CMSIS-RTOS, but I know that there are not many people in China who use and are familiar with this system. There is a poll test tool in the Modbus reference, which is very practical. 343149 In addition to giving you the source code, Infineon is also worried that you don't have the environment to compile, so it also gives you the executable files on Linux, Qnx, Solaris, and Win32 for running tests. The code generated by SDMMC app for protocol operation is very practical, neither complicated nor simple. It includes the most commonly used operations such as read, write, and ioctl, and commands such as obtaining the size and type of the underlying memory. At the same time, it does not fully implement all the operations required by the protocol, simplifying the complexity. The code quality is very high. I did not do any specific operations on the SD card, but just wanted to see how long it would take to make a basic application with the support of these resources. Maybe I have experience and am familiar with it, so it didn't take much time in total, but I feel that if an inexperienced person were to operate it, it wouldn't take much effort. Finally, there is a feeling of being freed from the cumbersome driver and being able to hold my head high and face the application.
From the perspective of resources, Infineon's external resources are pitifully few. I don't know whether it is due to the market strategy of Infineon's products or the problem of the closed industrial ecosystem. In short, it seems that people in the non-traditional automotive and industrial control industries may encounter more or less support and resource problems when they want to use Infineon's xmc4xxx series MCUs in a wider range of scenarios; in the traditional automotive and industrial control industries, although there are other semiconductor manufacturers that have launched processors based on the ARM Cortex core like Infineon, in most cases, this part of the professional market is not very receptive to Cortex. The information I understand is still inclined to use the stable and precipitated product series that have been verified in the past. The resources provided by Infineon are very detailed and valuable, but the content that a factory can provide is far from being comparable to the richness of content that a prosperous ecosystem can provide.
|