TLIMX6U-EVM-Kernplatine Entwicklung von IoT-Modulen

Inhaltsverzeichnis

Tronlong-TLIMX6U-EVM-evaluation-board-based-on-NXP-i.MX-6ULL

Das TLIMX6U-EVM von Tronlong® Technology ist ein Evaluierungsboard, das auf dem NXP i.MX 6ULL basiert und über einen leistungsstarken ARM Cortex-A7-Prozessor mit geringem Stromverbrauch verfügt. Das TLIMX6U-EVM besteht aus einem Core-Board und einem Evaluierungs-Baseboard und wurde einem professionellen PCB-Layout und strengen Temperaturtests unterzogen, um Stabilität und Zuverlässigkeit für verschiedene industrielle Anwendungen zu gewährleisten.

Dieser Artikel stellt in erster Linie einen Fall zur Entwicklung eines IoT-Moduls vor, der auf dem Evaluierungsboard TLIMX6U-EVM von Tronlong® Technology basiert. Die folgenden Entwicklungsumgebungen sind geeignet:

  • Windows-Entwicklungsumgebung: Windows 7 64-Bit, Windows 10 64-Bit
  • Virtuelle Maschine: VMware 15.1.0
  • Linux-Entwicklungsumgebung: Ubuntu 18.04.4 64-Bit
  • U-Boot: U-Boot-2020.04
  • Kernel: Linux-5.4.70
  • Linux SDK: 5.4.70_2.3.0

Sofern nicht anders angegeben, verwendet die Standardkonfiguration USB TO UART1 als seriellen Debugging-Port, den Linux SD-Bootmodus zum Starten des Systems und eine Netzwerkverbindung über einen Router zu einem PC.

SDIO-WLAN-Modul-Test

In diesem Fall wird das SDIO-WLAN-Modulmodell RTL8189 verwendet. Stecken Sie das SDIO-WLAN-Modul wie in der folgenden Abbildung gezeigt in die SDIO-Schnittstelle der Evaluierungskarte.

SDIO WIFI module RTL8189 for Tronlong TLIMX6U-EVM board
SDIO WIFI module RTL8189 for Tronlong TLIMX6U-EVM board

Das SDIO-WLAN-Modul unterstützt sowohl den STA- als auch den AP-Modus:

  1. STA-Modus: Im STA-Modus kann das WIFI-Modul Signale von WLAN-Routern empfangen und ermöglicht so die Internetverbindung über den Router.
  2. AP-Modus: Im AP-Modus erstellt das WIFI-Modul einen WLAN-Hotspot, über den Geräte wie Telefone und Computer ein lokales Netzwerk bilden können.

Das Testprogramm für diesen Fall befindet sich in der Produktdokumentation unter „4-Software Information\Demo\module-demos\sdio_wifi_test”. Die spezifischen Details lauten wie folgt:

DirectoryDescription
binTest scripts, program configuration files
driverSDIO WIFI module driver
srcSDIO WIFI module driver source code

Kopieren Sie alle Dateien aus dem Verzeichnis „bin“ und die Treiberdatei „8189fs.ko“ aus dem Verzeichnis „driver“ in die entsprechenden Pfade im Dateisystem des Evaluierungsboards. Stellen Sie sicher, dass das SDIO-WLAN-Modul korrekt an die SDIO-Schnittstelle des Evaluierungsboards angeschlossen ist. Aufgrund der gemeinsamen Nutzung von Pins zwischen der SDIO-Schnittstelle und der Micro-SD-Schnittstelle entfernen Sie die Linux-SD-Bootkarte aus dem Micro-SD-Kartensteckplatz des Evaluierungsboards. Stellen Sie den Bootmodus des Evaluierungsboards auf den NAND-FLASH-Bootmodus ein, indem Sie den DIP-Schalter auf „011000“ (Positionen 1 bis 6) stellen.

STA-Modus-Test

Greifen Sie auf das Dateisystem des Evaluierungsboards zu, navigieren Sie zu dem Pfad, in dem sich der SDIO-WIFI-Modultreiber „8189fs.ko“ befindet, und führen Sie den folgenden Befehl aus, um den Treiber zu laden:

				
					Target# insmod 8189fs.ko
				
			
Load the driver by executing the Target# insmod 8189fs.ko
Load the driver by executing the Target# insmod 8189fs.ko

Führen Sie die folgenden Befehle aus, um andere Netzwerke und den Prozess „wpa_supplicant” zu deaktivieren, sodass nur das WLAN-Netzwerk übrig bleibt:

				
					Target# ifconfig eth0 down
Target# ifconfig eth1 down
Target# killall -9 wpa_supplicant
Target# ifconfig wlan0 up
Target# ifconfig

				
			
Close the wpa_supplicant process by executing the Target#ifconfig series
Close the wpa_supplicant process by executing the Target#ifconfig series

Führen Sie im Verzeichnis der Datei „wifi_setup.sh“ den folgenden Befehl aus, um das Evaluierungsboard über das WLAN-Modul mit dem Router zu verbinden. Verwenden Sie das Flag „-i“, um den WLAN-Namen anzugeben, und das Flag „-p“, um das WLAN-Passwort anzugeben. Passen Sie diese Angaben nach Bedarf an:

				
					Target# ./wifi_setup.sh -i Tronlong-test -p omapl138

				
			
Connect the evaluation board to the router through the WIFI module by executing Target#.wifi_setup.sh -i Tronlong-test -p omapl138
Connect the evaluation board to the router through the WIFI module by executing Target#.wifi_setup.sh -i Tronlong-test -p omapl138

Führen Sie den folgenden Befehl aus, um die erhaltene IP-Adresse anzuzeigen und die Kommunikation zwischen dem Evaluierungsboard und dem PC mit dem Befehl „ping“ zu testen. Stellen Sie sicher, dass sich das Evaluierungsboard und der PC im selben lokalen Netzwerk befinden. Hier steht 192.168.1.100 für die tatsächliche IP-Adresse des PCs.

				
					Target# ifconfig
Target# ping 192.168.1.100
				
			
Test the communication between evaluation board and PC by ping command
Test the communication between evaluation board and PC by ping command

Führen Sie im Dateisystem der Evaluierungskarte die folgenden Befehle aus, um die IP-Adresse der Karte anzuzeigen und die Netzwerkkommunikationsbandbreite mit dem PC mithilfe des Tools Iperf3 zu testen:

				
					Target# ifconfig
Target# iperf3 -s

				
			
Check the IP address with Targetifconfig and test communication with Targetiperf3 s

Verwenden Sie im Ubuntu-System den folgenden Befehl, um die Bandbreite der Netzwerkkommunikation zu testen. Ersetzen Sie „192.168.1.103“ durch die tatsächliche IP-Adresse des Evaluierungsboards. Die Testergebnisse, die von der Netzwerkumgebung beeinflusst werden, dienen nur als Referenz.

				
					Host# iperf3 -c 192.168.1.103 -i 1

				
			
Test the network communication bandwidth by executing the command Host#iperf3 -c 192.168.1.103 -i 1 in the Ubuntu system
Test the network communication bandwidth by executing the command Host#iperf3 -c 192.168.1.103 -i 1 in the Ubuntu system

AP-Modus-Test

Starten Sie das System des Evaluierungsboards neu und führen Sie den folgenden Befehl aus, um den SDIO-WIFI-Modultreiber „8189fs.ko“ zu laden:

				
					Target# insmod 8189fs.ko

				
			
Reload the driver via Target# insmod 8189fs.ko
Reload the driver via Target# insmod 8189fs.ko

Deaktivieren Sie andere Netzwerke und den Prozess „wpa_supplicant“ und lassen Sie nur das WLAN-Netzwerk aktiviert. Verwenden Sie dazu ähnliche Befehle wie beim Testen im STA-Modus.

				
					Target#ifconfig eth0 down
Target#ifconfig eth1 down
Target#killall -9 wpa_supplicant
Target#ifconfig wlan0 up
Target#ifconfig
				
			
Close other networks and wpa_supplicant processes again by executing Target#ifconfig
Close other networks and wpa_supplicant processes again by executing Target#ifconfig

Führen Sie im Verzeichnis der Datei „ap_setup.sh” den folgenden Befehl aus, um das SDIO-WLAN-Modul in den AP-Modus zu versetzen:

				
					Target# ./ap_setup.sh

				
			
Set the SDIO WIFI module to AP mode through Target#ap_setup.sh
Set the SDIO WIFI module to AP mode through Target#ap_setup.sh

Wenn beim Start des AP-Modus aufgrund unzureichender Zufallsentropie Probleme auftreten, müssen Sie das Evaluierungsboard neu starten. Führen Sie die folgenden Befehle aus, um den Entropiepool zu ändern, und wiederholen Sie dann den Test:

				
					Target# mv /dev/random /dev/random_ori
Target# ln -s /dev/urandom /dev/random
				
			
Restart the evaluation board and replace the entropy pool
Restart the evaluation board and replace the entropy pool

Der im Programm voreingestellte WLAN-Name lautet „rtl8188fs“ und das Passwort „88888888“. Ändern Sie diese Einstellungen in der Konfigurationsdatei „rtl_hostapd_2G.conf“. Verbinden Sie einen PC mit WLAN-Funktion (z. B. einen Laptop oder einen Desktop-PC mit einem USB-WLAN-Adapter) mit diesem WLAN-Hotspot und trennen Sie alle kabelgebundenen Netzwerkverbindungen. Sobald die Verbindung hergestellt ist, gibt das serielle Debugging-Terminal Informationen über die von Ubuntu zugewiesene IP-Adresse aus. Bei Verwendung einer virtuellen Maschine mit Ubuntu werden zwei IP-Adressen zugewiesen – eine für Windows und eine für Ubuntu.

Get the IP address of Ubuntu
Get the IP address of Ubuntu

Führen Sie den folgenden Befehl aus, um die Netzwerkverbindung zwischen WLAN-Geräten zu testen. Wenn Verbindungszeitüberschreitungen oder -fehler auftreten, deaktivieren Sie die Firewall des PCs und versuchen Sie, die Verbindung erneut herzustellen:

				
					Target# ping 192.168.0.21 // 192.168.0.21 is the Ubuntu-side IP address
				
			
Test the network between wireless LAN devices through Target#ping
Test the network between wireless LAN devices through Target#ping

Führen Sie im Dateisystem des Evaluierungsboards die folgenden Befehle aus, um die IP-Adresse des Boards anzuzeigen und auf die Verbindung mit dem PC zu warten:

				
					Target# ifconfig
Target# iperf3 -s
				
			

Verwenden Sie im Ubuntu-System den folgenden Befehl, um die Bandbreite der Netzwerkkommunikation zu testen. Ersetzen Sie „192.168.0.1“ durch die tatsächliche IP-Adresse des Evaluierungsboards. Die Testergebnisse, die von der Netzwerkumgebung beeinflusst werden, dienen nur als Referenz.

				
					Host# iperf3 -c 192.168.0.1 -i 1
				
			
Test network communication bandwidth by executing Host#iperf3 in Ubuntu system
Test network communication bandwidth by executing Host#iperf3 in Ubuntu system

Schalten Sie nach dem Testen das Evaluierungsboard aus, entfernen Sie das SDIO-WIFI-Modul und stecken Sie die Linux-SD-Bootkarte in den Micro-SD-Kartensteckplatz. Stellen Sie den DIP-Schalter für den Bootmodus auf „010100“ (Positionen 1 bis 6) für den SD-Bootmodus.

Kompilieren des SDIO-WLAN-Treibers

Bitte kopieren Sie den Treiber-Quellcode „rtl8189FS.tar.gz” aus dem Verzeichnis „src” des Beispiels und legen Sie ihn in Ihrem Ubuntu-Arbeitsverzeichnis ab. Führen Sie anschließend die folgenden Befehle aus, um den Quellcode aus dem komprimierten Archiv zu extrahieren:

				
					Host# tar -xf rtl8189FS.tar.gz
				
			
Unzip the source code package rtl8189FS.tar.gz to the Ubuntu directory
Unzip the source code package rtl8189FS.tar.gz to the Ubuntu directory

Navigieren Sie anschließend zum Verzeichnis mit dem Treiberquellcode und ändern Sie die oberste Ebene „Makefile” mit den folgenden Befehlen:

				
					Host# cd rtl8189FS/
Host# vim Makefile
				
			
Modify the top-level Makefile
Modify the top-level Makefile

Bitte ändern Sie den Inhalt der Datei „Makefile“ wie unten beschrieben:

				
					KSRC = /home/tronlong/IMX6/Kernel/Linux-5.4.70 // Specify the actual path to the kernel source code
				
			

Führen Sie im Verzeichnis, in dem sich der Treiberquellcode befindet, die folgenden Befehle aus, um die SDK-Umgebungsvariablen einzurichten und den SDIO-WIFI-Treiber zu kompilieren:

				
					Host# source /home/tronlong/SDK/environment-setup-cortexa7t2hf-neon-poky-linux-gnueabi
Host# make
				
			
Set up the SDK environment and compile the SDIO WIFI driver
Set up the SDK environment and compile the SDIO WIFI driver

Nach Abschluss der Kompilierung wird das Treiber-Image im aktuellen Verzeichnis erstellt.

Abonnieren

Tragen Sie sich in unsere Abonnentenliste ein, um monatliche Blog-Updates, Technologie-News und Fallstudien zu erhalten. Wir versenden niemals Spam, und Sie können sich jederzeit wieder abmelden.

Nach oben scrollen

Instant Quote