La TLIMX6U-EVM de Tronlong® Technology es una placa de evaluación diseñada en torno al NXP i.MX 6ULL, que cuenta con un procesador ARM Cortex-A7 de alto rendimiento y bajo consumo. Compuesta por una placa central y una placa base de evaluación, la TLIMX6U-EVM ha sido sometida a un diseño profesional de PCB y a rigurosas pruebas de temperatura, lo que garantiza su estabilidad y fiabilidad para diversas aplicaciones industriales.
Este artículo presenta principalmente un caso de desarrollo de un módulo IoT basado en la placa de evaluación TLIMX6U-EVM de Tronlong® Technology. Los entornos de desarrollo aplicables son los siguientes:
- Entorno de desarrollo Windows: Windows 7 de 64 bits, Windows 10 de 64 bits
- Máquina virtual: VMware 15.1.0
- Entorno de desarrollo Linux: Ubuntu 18.04.4 de 64 bits
- U-Boot: U-Boot-2020.04
- Kernel: Linux-5.4.70
- SDK de Linux: 5.4.70_2.3.0
A menos que se especifique lo contrario, la configuración predeterminada utiliza USB TO UART1 como puerto serie de depuración, el modo de arranque SD de Linux para iniciar el sistema y la conectividad de red a través de un enrutador a una PC.
Prueba del módulo SDIO WIFI
Este caso utiliza el modelo de módulo RTL8189 SDIO WIFI. Inserte el módulo SDIO WIFI en la interfaz SDIO de la placa de evaluación, tal y como se muestra en el siguiente diagrama.

El módulo SDIO WIFI es compatible con los modos STA y AP:
- Modo STA: en el modo STA, el módulo WIFI puede recibir señales de routers inalámbricos, lo que permite la conectividad a Internet a través del router.
- Modo AP: en el modo AP, el módulo WIFI crea un punto de acceso LAN inalámbrico, lo que permite que dispositivos como teléfonos y ordenadores formen una red local.
El programa de prueba para este caso se encuentra en la documentación del producto en «4-Información del software\Demo\module-demos\sdio_wifi_test». Los detalles específicos son los siguientes:
| Directory | Description |
|---|---|
| bin | Test scripts, program configuration files |
| driver | SDIO WIFI module driver |
| src | SDIO WIFI module driver source code |
Copie todos los archivos del directorio «bin» y el archivo del controlador «8189fs.ko» del directorio «driver» a las mismas rutas en el sistema de archivos de la placa de evaluación. Asegúrese de conectar correctamente el módulo SDIO WIFI a la interfaz SDIO de la placa de evaluación. Debido al uso compartido de pines entre la interfaz SDIO y la interfaz Micro SD, retire la tarjeta de arranque SD de Linux de la ranura para tarjetas Micro SD de la placa de evaluación. Configure el modo de arranque de la placa de evaluación en modo de arranque NAND FLASH cambiando el interruptor DIP a «011000» (posiciones 1 a 6).
Prueba del modo STA
Acceda al sistema de archivos de la placa de evaluación, navegue hasta la ruta donde se encuentra el controlador del módulo SDIO WIFI «8189fs.ko» y ejecute el siguiente comando para cargar el controlador:
Target# insmod 8189fs.ko

Ejecute los siguientes comandos para desactivar otras redes y el proceso «wpa_supplicant», dejando solo la red WIFI:
Target# ifconfig eth0 down
Target# ifconfig eth1 down
Target# killall -9 wpa_supplicant
Target# ifconfig wlan0 up
Target# ifconfig

En el directorio del archivo «wifi_setup.sh», ejecute el siguiente comando para conectar la placa de evaluación al router utilizando el módulo WIFI. Utilice el indicador «-i» para especificar el nombre de la red WIFI y el indicador «-p» para especificar la contraseña de la red WIFI, modificándolos según sea necesario:
Target# ./wifi_setup.sh -i Tronlong-test -p omapl138

Ejecute el siguiente comando para ver la dirección IP obtenida y compruebe la comunicación entre la placa de evaluación y el PC utilizando el comando «ping». Asegúrese de que la placa de evaluación y el PC estén en la misma red local. Aquí, 192.168.1.100 representa la dirección IP real del PC.
Target# ifconfig
Target# ping 192.168.1.100

En el sistema de archivos de la placa de evaluación, ejecute los siguientes comandos para ver la dirección IP de la placa y probar el ancho de banda de comunicación de red con el PC utilizando la herramienta Iperf3:
Target# ifconfig
Target# iperf3 -s

En el sistema Ubuntu, utilice el siguiente comando para comprobar el ancho de banda de la comunicación de red. Sustituya «192.168.1.103» por la dirección IP real de la placa de evaluación. Los resultados de la prueba, que se ven afectados por el entorno de red, son solo orientativos.
Host# iperf3 -c 192.168.1.103 -i 1

Prueba del modo AP
Reinicie el sistema de la placa de evaluación y ejecute el siguiente comando para cargar el controlador del módulo SDIO WIFI «8189fs.ko»:
Target# insmod 8189fs.ko

Desactive otras redes y el proceso «wpa_supplicant», dejando solo la red WIFI, utilizando comandos similares a los de la prueba en modo STA.
Target#ifconfig eth0 down
Target#ifconfig eth1 down
Target#killall -9 wpa_supplicant
Target#ifconfig wlan0 up
Target#ifconfig

En el directorio del archivo «ap_setup.sh», ejecute el siguiente comando para configurar el módulo SDIO WIFI en modo AP:
Target# ./ap_setup.sh

Si encuentra problemas durante el inicio del modo AP debido a una entropía aleatoria insuficiente, debe reiniciar la placa de evaluación. Ejecute los siguientes comandos para cambiar el conjunto de entropía y, a continuación, vuelva a intentar la prueba:
Target# mv /dev/random /dev/random_ori
Target# ln -s /dev/urandom /dev/random

El nombre predeterminado de la red WIFI establecido en el programa es «rtl8188fs» y la contraseña es «88888888». Modifique estos ajustes en el archivo de configuración «rtl_hostapd_2G.conf». Conecte un PC con capacidad WIFI (como un portátil o un PC de sobremesa con un adaptador USB WIFI) a este punto de acceso LAN inalámbrico y desconecte cualquier conexión de red por cable. Una vez conectado, el terminal de depuración serie imprimirá información sobre la dirección IP asignada por Ubuntu. Si utiliza una máquina virtual con Ubuntu, se asignarán dos direcciones IP: una para Windows y otra para Ubuntu.

Ejecute el siguiente comando para comprobar la conexión de red entre los dispositivos LAN inalámbricos. Si se producen tiempos de espera o errores de conexión, considere la posibilidad de desactivar el cortafuegos del PC e intente volver a conectarse:
Target# ping 192.168.0.21 // 192.168.0.21 is the Ubuntu-side IP address

En el sistema de archivos de la placa de evaluación, ejecute los siguientes comandos para ver la dirección IP de la placa y espere a que el PC se conecte:
Target# ifconfig
Target# iperf3 -s
En el sistema Ubuntu, utilice el siguiente comando para comprobar el ancho de banda de la comunicación de red. Sustituya «192.168.0.1» por la dirección IP real de la placa de evaluación. Los resultados de la prueba, que se ven afectados por el entorno de red, son solo orientativos.
Host# iperf3 -c 192.168.0.1 -i 1

Después de la prueba, apague la placa de evaluación, retire el módulo SDIO WIFI e inserte la tarjeta de arranque SD Linux en la ranura para tarjetas Micro SD. Configure el interruptor DIP del modo de arranque en «010100» (posiciones 1 a 6) para el modo de arranque SD.
Compilación del controlador SDIO WIFI
Copie el código fuente del controlador «rtl8189FS.tar.gz» del directorio «src» del ejemplo y colóquelo en su directorio de trabajo de Ubuntu. A continuación, ejecute los siguientes comandos para extraer el código fuente del archivo comprimido:
Host# tar -xf rtl8189FS.tar.gz

A continuación, navega hasta el directorio del código fuente del controlador y modifica el «Makefile» de nivel superior utilizando los siguientes comandos:
Host# cd rtl8189FS/
Host# vim Makefile

Modifique el contenido del archivo «Makefile» tal y como se indica a continuación:
KSRC = /home/tronlong/IMX6/Kernel/Linux-5.4.70 // Specify the actual path to the kernel source code
En el directorio donde se encuentra el código fuente del controlador, ejecute los siguientes comandos para configurar las variables de entorno del SDK y compilar el controlador SDIO WIFI:
Host# source /home/tronlong/SDK/environment-setup-cortexa7t2hf-neon-poky-linux-gnueabi
Host# make

Una vez completada la compilación, la imagen del controlador se generará en el directorio actual.




