ODYSSEY – STM32MP157C
El ODYSSEY – STM32MP157C es una computadora de placa única basada en STM32MP157C, un procesador de núcleo dual Arm-Cortex-A7 que opera a 650Mhz. El procesador también integra un coprocesador Arm Cortex-M4, lo que lo hace adecuado para tareas en tiempo real. El ODYSSEY – STM32MP157C está creado en forma de SoM (sistema en módulo) más una placa portadora. El SoM consta del MPU, PMIC, RAM y la placa portadora tiene el factor de forma de Raspberry Pi. La placa portadora incluye todos los periféricos necesarios incluyendo Ethernet Gigabit, WiFi/BLE, alimentación DC, hosts USB, USB-C, MIPI-DSI, DVP para cámara, audio, etc. Con esta placa, los clientes pueden evaluar rápidamente el SoM e implementar el SoM en su propia placa portadora de manera fácil y rápida.
Características
- Procesador de núcleo dual Arm-Cortex-A7 con Cortex-M4 integrado
- SoM (sistema en módulo) incluye MPU, PMIC, RAM.
- Placa portadora compatible con 40 pines de Raspberry Pi.
- Tamaño compacto y potente
- hardware/SDK/API/BSP/OS de código abierto
Especificaciones
Elemento | Valores |
---|---|
Interfaz de periféricos | 2 x host USB 1 x interfaz Ethernet gigabit 1 x interfaz de audio de 3.5mm 1 x interfaz de pantalla MIPI DSI 1 x interfaz de cámara DVP 2 x Grove (GPIO & I2C) 1 x interfaz de tarjeta SD (en la parte posterior de la placa) |
WiFi/Bluetooth | WiFi 802.11 b/g/n 2.4GHz Bluetooth 4.1 |
LED integrado | 1 x LED de reinicio 3 x LED definidos por el usuario 1 x LED de alimentación |
Alimentación | 1 x interfaz DC (se recomienda entrada de alimentación de 12V/2A) 1 x USB Tipo - C |
Botón | 1 x botón de reinicio 1 x botón de usuario 1 x tecla de código de marcación |
dimensión | 56mm x 85mm |
Temperatura de funcionamiento | 0 ~ 75 ℃ |
Aplicación
- Industrial (gateways CAN-Ethernet, etc.)
- Electrodomésticos (refrigeradores, microondas, etc.)
- Médico (registradores de datos, etc.)
- Wearables de alta gama (dispositivos VR, etc.)
- Dispositivos de Hogar Inteligente
Descripción General del Hardware
ODYSSEY – STM32MP157C consta de dos partes: Placa portadora y Seeed SoM - STM32MP157C.
Los detalles del hardware de la placa portadora son los siguientes:
-
1.Placa portadora: Área de instalación del Seeed SoM-STM32MP157C, si el usuario desea remover la placa principal, incline lentamente la placa principal hacia arriba y luego remuévala, nunca la remueva con las manos.
-
2.Puerto de Entrada de Alimentación DC: 12V~24V/2A (se recomienda entrada de alimentación de 12V/2A)(barril de 5.5x2.1mm centro-positivo).
-
3.Interfaz ETH: La interfaz de cable de red puede conectarse a una red de nivel gigabit.
-
4.USB Host: Dos puertos USB Host.
-
5.USB Device: USB 2.0 Tipo C. Si el Tipo C se usa como entrada de alimentación de la placa, se debe usar un adaptador de alimentación de 5V/3A.
-
6.Interfaz Grove Digital: Conecte la interfaz Grove al pin digital.
-
7.Interfaz Grove IIC: Conecte la interfaz Grove al pin IIC.
-
8.Estándar Americano 3.5mm: Interfaz de audio.
-
9.Interfaz MIPI DSI: Conecte a una pantalla con interfaz MIPI DSI(FPC 20Pin 1.0mm).
-
10.Interfaz GPIO de 40 PINES: Compatible con el 40-PIN de Raspberry Pi.
-
11.AP6236: Chip de control 2.4G WiFi & BT 4.2.
-
12.Interruptor Deslizante: Se puede usar para seleccionar tarjeta SD o eMMC para iniciar.
-
13.UART de Depuración: El puerto serie de depuración predeterminado del sistema puede ingresar a este puerto serie para acceder al sistema, hablaremos más sobre cómo hacer eso más adelante.
-
14.JST 1.0mm: Interfaz de batería 3VRTC.
-
15.Tecla RST: Tecla de reinicio del sistema.
-
16.Botón PWR: Presión larga de aproximadamente 8S para apagar, presión corta para arrancar.
-
17.Botón de Usuario: Botones programables por el usuario.
-
18.LED PWR: LED de alimentación de la placa de desarrollo.
-
19.LED de Usuario: LED programable por el usuario.
-
20.ACA-5036-A2-CC-S: Antena cerámica 2.4G integrada.
-
21.IPEX 1ra generación: Conector de antena externa 2.4G externa(Al usar una antena externa, necesita remover R49, R51 soldadura de 0Ω)
-
22. Ranura para tarjeta SD: Es el área donde se inserta una tarjeta micro-sd con el sistema.
-
23.Interfaz de cámara DVP: Conecte a cámara con interfaz DVP (FPC 20Pin 1.0mm).
-
24.KSZ9031: Tarjeta de red de controlador de cable de red 1000M.
-
25.STMPS2252MTR: Chip de interruptor de alimentación.
-
26.MP9943: Chip de alimentación Buck DCDC.
-
27.WM8960: Chip codec de audio.
-
28.MP2161: Chip de alimentación Buck DCDC.
Función de Pines
El conector de 40 pines de ODYSSEY - STM32MP157C es totalmente compatible con el 40PIN de Raspberry Pi, incluyendo pines GPIO, IIC, UART, SPI, IIS y PWM.
Introducción al Software
Trabajo Preparatorio
Materiales Requeridos
- ODYSSEY – STM32MP157C
- Red Wi-Fi
- Tarjeta SD de 4GB (o más memoria) y lector de tarjetas SD
- PC o Mac
- Adaptador USB a Uart (opcional)
- Adaptador de interfaz DC de 12V/2A para suministro de energía (opcional)
- Un cable USB tipo-c
Precaución
Por favor conecte el cable USB suavemente, de lo contrario puede dañar la interfaz. Por favor use el cable USB con 4 cables en el interior, el cable de 2 cables no puede transferir datos. Si no está seguro sobre el cable que tiene, puede hacer clic aquí para comprarInstalación de Imagen
Como Raspberry Pi, necesita instalar la imagen de ODYSSEY – STM32MP157C desde su tarjeta SD para ponerla en funcionamiento. Ofrecemos dos formas de iniciar ODYSSEY – STM32MP157C. Puede arrancar desde una tarjeta SD o desde eMMC.
A. Arrancar desde tarjeta SD
-
Paso 1. Seleccione el firmware que desea descargar:
-
Paso 2. Conecte una tarjeta SD a una PC o MAC con un lector de tarjetas SD, se requiere una tarjeta SD con más de 4G de memoria.
-
Paso 3. Haga clic aquí para descargar Etcher, luego use Etcher para escribir el archivo
*.img.xz
directamente a la tarjeta SD. O extraiga el archivo*.img.xz
en un archivo*.img
, y luego grábelo en una tarjeta SD usando otra herramienta de escritura de imagen.
Haga clic en el ícono más para agregar el archivo de imagen recién descargado y el software seleccionará automáticamente la tarjeta SD que insertó. Luego haga clic en Flash! para escribir. Toma aproximadamente 10 minutos terminar.
- Paso 4. Después de escribir la imagen en la tarjeta SD, inserte la tarjeta SD en ODYSSEY – STM32MP157C. Use el puerto USB tipo-c para alimentar la placa portadora. No saque la tarjeta SD durante la escritura. ODYSSEY – STM32MP157C arrancará desde la tarjeta SD, puede ver los LED PWR y USER encendiéndose en el SOM. Ahora, vaya a la siguiente sección: la consola serie.
Nota
significa que el arranque falló si el LED USER no parpadea. Por favor verifique si el interruptor de arranque está en SD_CARD.- Paso 5. Después de escribir la imagen en la tarjeta SD, inserte la tarjeta SD en ODYSSEY – STM32MP157C. Use el puerto USB tipo-c para alimentar la placa portadora. No saque la tarjeta SD durante la escritura. ODYSSEY – STM32MP157C arrancará desde la tarjeta SD, puede ver los LED PWR y USER encendiéndose en el SOM. Ahora, vaya a la siguiente sección: la consola serie.
B. Arrancar desde eMMC
Nota
Si desea arrancar desde eMMC, debe acceder primero a la siguiente sección: la consola serie.-
Paso 1. el proceso es el mismo que A. Arrancar desde tarjeta SD si inicia por primera vez el ODYSSEY – STM32MP157C.
-
Paso 2. Edita /boot/uEnv.txt para iniciar el arranque eMMC y luego reinicia.
sudo sh -c "echo cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3-stm32mp1.sh >> /boot/uEnv.txt"
sudo reboot
-
Paso 3. Espera a que el LED USER se encienda de forma continua. Esto indica que el arranque eMMC fue exitoso si el LED USER se enciende de forma continua.
-
Paso 4. Apaga y desconecta la tarjeta SD.
-
Paso 5. Configura el interruptor deslizante en EMMC y reinicia.
Consola Serial
Ahora que tu ODYSSEY – STM32MP157C está funcionando, es posible que quieras acceder a tu sistema Linux a través de la consola, luego configurar la Red, y así sucesivamente. Se proporciona un método de acceso por puerto serial para el acceso a Linux:
- Puerto UART - Usado para depurar problemas de bajo nivel.(recomendado)
Conectar vía puerto UART
En esta sección, te guiaremos a través del uso del adaptador USB a TTL, que se conecta al puerto Uart del ODYSSEY – STM32MP157C (ubicado en la parte superior derecha del ODYSSEY – STM32MP157C), para establecer una conexión entre tu computadora y ODYSSEY -STM32MP157C.
-
Paso 1. Conecta el puerto Uart a PC/Mac usando el Adaptador USB a TTL. Si no tienes un Adaptador USB a TTL, haz clic AQUÍ para comprar.(RX->TX,TX->RX)
-
Paso 2. Usando las siguientes herramientas de depuración serial, la velocidad de baudios es 115200:
- Windows : Usa PUTTY, selecciona el protocolo
Serial
, completa el puerto COM correspondiente al ODYSSEY -STM32MP157C, velocidad de baudios115200
, 8 bits, sin bits de paridad, 1 bit de parada, sin control de flujo. - Linux : Dependiendo del Adaptador USB a TTL, debería ser
screen /dev/ttyACM0(,1, y así sucesivamente) 115200
oscreen /dev/ttyUSB0(,1, y así sucesivamente) 115200
. - Mac : Dependiendo del Adaptador USB a TTL, debería ser
screen /dev/cu.usbserial1412(,1422, y así sucesivamente) 115200
oscreen /dev/cu.usbmodem1412(,1422, y así sucesivamente) 115200
.
- Windows : Usa PUTTY, selecciona el protocolo
-
Paso 3. El nombre de usuario predeterminado es
debian
, la contraseña estemppwd
-
Paso 4. Si no tienes un Adaptador USB a TTL, también puedes usar Arduino. Si usas Arduino, conecta un extremo del jumper al pin RESET del Arduino y el otro extremo al pin GND del Arduino. Esto omitirá el MCU ATMEGA de tu Arduino y convertirá tu Arduino en un adaptador USB a TTL. Por favor consulta AQUÍ el tutorial en video. Ahora conecta el pin GND del Arduino al pin GND del puerto Uart del ODYSSEY -STM32MP157C. Conecta los pines Rx del Arduino a los pines Rx del puerto Uart del ODYSSEY -STM32MP157C. Conecta el pin Tx del Arduino al pin Tx del puerto Uart del ODYSSEY -STM32MP157C. Finalmente, conecta el Arduino a la PC/Mac a través del cable USB del Arduino. Ahora verifica si tu PC/Mac ha encontrado tu Arduino escribiendo el siguiente comando:
ls /dev/cu.usb* (Mac)
ls /dev/ttyACM* (Linux)
Deberías recibir comentarios como este:
/dev/cu.usbmodem14XX where XX will vary depending on which USB port you used (on Mac)
/dev/ttyACMX where X will vary depending on which USB port you used (on Linux)
Ahora sigue los pasos anteriores para conectarte a ODYSSEY – STM32MP157C a través de una conexión serie. Esto es usualmente lo que necesitamos hacer cuando arrancamos por primera vez, ya que luego configurarás ODYSSEY – STM32MP157C para la conexión Wi-Fi y después la conexión SSH.
Configuración de Red
A. Conexión Ethernet
Puedes conectarte a la red usando un cable Ethernet. Solo conecta el cable Ethernet a Internet. Ahora, ve a la siguiente sección: la instalación de herramientas básicas.
B. Configuración Wi-Fi
Nota
Si quieres usar Wi-Fi, tienes que acceder primero a la siguiente sección: instalación de herramientas básicas.- Paso 1. Verifica la versión del kernel de Linux en el entorno actual e instala el archivo de cabecera de la versión del kernel.
sudo apt install linux-headers-$(uname -r) -y
- Paso 2. Crear e instalar el controlador de stm32p1 desde
seeed-linux-dtverlays
en GitHub.
git clone https://github.com/Seeed-Studio/seeed-linux-dtverlays
cd seeed-linux-dtverlays
make all_stm32mp1 CUSTOM_MOD_FILTER_OUT="jtsn-wm8960" && sudo make install_stm32mp1 CUSTOM_MOD_FILTER_OUT="jtsn-wm8960"
- Paso 3. añadir el paquete dtbo en
/boot/uEnv.txt
para que se haga efectivo después del reinicio.
sudo sh -c "echo uboot_overlay_addr0=/lib/firmware/stm32mp1-seeed-ap6236.dtbo >> /boot/uEnv.txt"
sudo reboot
- Paso 4. Conectar el wifi
Configure la red del ODYSSEY – STM32MP157C a través de la herramienta de gestión de red connmanctl
, que ha sido instalada en la imagen del ODYSSEY -STM32MP157C. Siga estas instrucciones para completar fácilmente la configuración.
robot@ev3dev:~$ sudo connmanctl
Error getting VPN connections: The name net.connman.vpn was not provided by any
connmanctl> enable wifi
Enabled wifi
connmanctl> scan wifi
Scan completed for wifi
connmanctl> services
*AO Wired ethernet_b827ebbde13c_cable
wifi_e8de27077de3_hidden_managed_none
AH04044914 wifi_e8de27077de3_41483034303434393134_managed_psk
Frissie wifi_e8de27077de3_46726973736965_managed_psk
ruijgt gast wifi_e8de27077de3_7275696a67742067617374_managed_psk
schuur wifi_e8de27077de3_736368757572_managed_psk
connmanctl> agent on
Agent registered
connmanctl> connect wifi_e8de27077de3_41 # You can use the TAB key at this point to autocomplete the name
connmanctl> connect wifi_e8de27077de3_41483034303434393134_managed_psk
Agent RequestInput wifi_e8de27077de3_41483034303434393134_managed_psk
Passphrase = [ Type=psk, Requirement=mandatory ]
Passphrase? *************
Connected wifi_e8de27077de3_41483034303434393134_managed_psk
connmanctl> quit
Ahora usa el siguiente comando para encontrar la dirección IP de ODYSSEY – STM32MP157C.
ifconfig
Instalación de herramientas básicas
1.SSH
SSH, abreviatura de Secure Shell, está formulado por el Network Working Group de IETF. SSH es un protocolo de seguridad basado en la capa de aplicación. SSH es un protocolo más confiable que proporciona seguridad para sesiones de inicio de sesión remoto y otros servicios de red. No hay protocolo SSH en la imagen proporcionada por nosotros, por lo que necesitamos configurarlo a través del puerto serie, para así realizar la comunicación entre el dispositivo y la computadora a través del protocolo SSH. Ingrese el siguiente comando para instalar el servicio SSH en ODYSSEY -STM32MP157C.
sudo apt install ssh -y
A continuación, usaremos SSH para acceder a ODYSSEY – STM32MP157C. Los usuarios de Windows pueden usar clientes SSH de terceros. Para usuarios de Linux/Mac, el cliente SSH está integrado.
-
Usuarios de Windows : Usa PUTTY, selecciona el protocolo SSH, completa la dirección IP correcta y haz clic en abrir. El nombre de usuario es debian y la contraseña es temppwd.
-
Usuarios de Linux/Mac :
ssh debian@IP
// password: temppwd
Nota
Si la experiencia de rendimiento se degrada mientras usas SSH, por favor cambia a una red WiFi más accesible.2.GIT
Git es un sistema de control de versiones distribuido gratuito y de código abierto diseñado para manejar todo, desde proyectos pequeños hasta muy grandes, con velocidad y eficiencia.
sudo apt install git -y
3.MAKE
sudo apt install make device-tree-compiler gcc -y
4.WGET
sudo apt install wget -y
Configuración de Bluetooth
- Paso 1. Verificar la versión del kernel de Linux en el entorno actual e instalar el archivo de cabecera de la versión del kernel.
sudo apt install linux-headers-$(uname -r) -y
- Paso 2. Crear e instalar el controlador de stm32p1 desde
seeed-linux-dtverlays
en GitHub.
git clone https://github.com/Seeed-Studio/seeed-linux-dtverlays
cd seeed-linux-dtverlays
make all_stm32mp1 CUSTOM_MOD_FILTER_OUT="jtsn-wm8960" && sudo make install_stm32mp1 CUSTOM_MOD_FILTER_OUT="jtsn-wm8960"
- Paso 3. añadir el paquete dtbo en
/boot/uEnv.txt
para que se haga efectivo después del reinicio.
sudo sh -c "echo uboot_overlay_addr0=/lib/firmware/stm32mp1-seeed-ap6236.dtbo >> /boot/uEnv.txt"
sudo reboot
Activar el bluetooth
Luego activa el bluetooth con el comando:
sudo apt -y install bluetooth bluez bluez-tools rfkill
systemctl is-enabled bluetooth.service
Conectar el bluetooth
- Paso 1. Escanear el bluetooth usando bluetoothctl
bluetoothctl es una herramienta que controla el Bluetooth para conectar con otros dispositivos Bluetooth.
debian@npi:~$ bluetoothctl
[NEW] Controller 43:43:A0:12:1F:AC ReSpeaker-1FAC [default]
Agent registered
[bluetooth]# scan on
Discovery started
[CHG] Controller 43:43:A0:12:1F:AC Discovering: yes
[NEW] Device C8:69:CD:BB:9B:B3 C8-69-CD-BB-9B-B3
[NEW] Device E1:D9:68:0E:51:C0 MTKBTDEVICE
[NEW] Device 62:15:9C:3F:40:AA 62-15-9C-3F-40-AA
[NEW] Device 56:AF:DE:C0:34:25 56-AF-DE-C0-34-25
[NEW] Device B8:86:87:99:FB:10 SOLARRAIN
[CHG] Device B8:86:87:99:FB:10 Trusted: yes
[NEW] Device 04:5D:4B:81:35:84 MDR-1000X
[CHG] Device 04:5D:4B:81:35:84 Trusted: yes
[CHG] Device 4C:04:59:38:D3:25 ManufacturerData Key: 0x004c
[CHG] Device 4C:04:59:38:D3:25 ManufacturerData Value:
10 05 0b 10 99 18 0a .......
[bluetooth]# scan off
[CHG] Device 04:5D:4B:81:35:84 RSSI is nil
[CHG] Device B8:86:87:99:FB:10 TxPower is nil
[CHG] Device B8:86:87:99:FB:10 RSSI is nil
[CHG] Device 4C:04:59:38:D3:25 RSSI is nil
[CHG] Device 58:44:98:93:35:24 RSSI is nil
Discovery stopped
[bluetooth]#
-
Paso 2. Ahora usa el comando
pair + ID del dispositivo
para emparejar el dispositivo bluetooth con el ODYSSEY – STM32MP157C. -
Paso 3. Cuando veas el mensaje
Pairing successful
, tocaconnect + ID del dispositivo
.
[bluetooth]# pair 04:5D:4B:81:35:84
Attempting to pair with 04:5D:4B:81:35:84
[CHG] Device 04:5D:4B:81:35:84 Connected: yes
[CHG] Device 04:5D:4B:81:35:84 UUIDs: 00001108-0000-1000-8000-00805f9b34fb
[CHG] Device 04:5D:4B:81:35:84 UUIDs: 0000110b-0000-1000-8000-00805f9b34fb
[CHG] Device 04:5D:4B:81:35:84 UUIDs: 0000110c-0000-1000-8000-00805f9b34fb
[CHG] Device 04:5D:4B:81:35:84 UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
[CHG] Device 04:5D:4B:81:35:84 UUIDs: 0000111e-0000-1000-8000-00805f9b34fb
[CHG] Device 04:5D:4B:81:35:84 ServicesResolved: yes
[CHG] Device 04:5D:4B:81:35:84 Paired: yes
Pairing successful
[CHG] Controller 43:43:A0:12:1F:AC Discoverable: no
[CHG] Device 04:5D:4B:81:35:84 ServicesResolved: no
[CHG] Device 04:5D:4B:81:35:84 Connected: no
[CHG] Controller 43:43:A0:12:1F:AC Discoverable: yes
[bluetooth]# connect 04:5D:4B:81:35:84
Attempting to connect to 04:5D:4B:81:35:84
[CHG] Device 04:5D:4B:81:35:84 Connected: yes
Connection successful
[CHG] Device 04:5D:4B:81:35:84 ServicesResolved: yes
[CHG] Controller 43:43:A0:12:1F:AC Discoverable: no
[MDR-1000X]#
Si aparece Connection successful
, ¡configuración exitosa!
Comunicación CANBUS
El siguiente es el proceso de comunicación CANBUS usando 2 Channel CAN BUS FD Shield for Raspberry Pi basado en ODYSSEY -- STM32MP157C, primero usa Seeeduino V4.2 para recopilar la temperatura y humedad del ambiente, y luego a través del Seeeduino V4.2 CAN - BUS shields V2 arriba y el ODYSSEY – STM32MP157C Channel 2 CAN BUS FD shields arriba para comunicación Raspberry Pi.
Trabajo de Preparación
Materiales Requeridos
- ODYSSEY - STM32MP157C
- Red Wi-Fi
- Tarjeta SD de 4GB (o más de 4GB) y lector de tarjeta SD
- PC o Mac
- USB To Uart Adapter(opcional)
- Adaptador de interfaz DC 12V/2A para suministro de energía (opcional)
- Un cable USB tipo-c
- Dos líneas dupont doble-macho
- CAN-BUS Shield V2
- Seeeduino V4.2
- 2 Channel CAN BUS FD Shield for Raspberry Pi
- Grove - Light Sensor v1.2
- Grove - I2C High Accuracy Temp&Humi Sensor (SHT35)
Conexión de Hardware
- Paso 1. Según la guía de instalación inserta 2 Channel CAN BUS FD Shield for Raspberry Pi en ODYSSEY - STM32MP157C.
- Paso 2. Inserta CAN BUS Shield V2 en Seeeduino V4.2.
- Paso 3. Conecta Channel CAN BUS FD Shield for Raspberry Pi a can-bus Shield V2 usando cable puente.
2 Channel CAN BUS FD Shield for Raspberry Pi | CAN-BUS Shield V2 |
---|---|
CAN_0_L | CANL |
CAN_0_H | CANH |
- Paso 4. Alimentar ODYSSEY STM32MP157C y Seeeduino V4.2
Instalación de dependencias
- Paso 1. Instalar el entorno para
python
.
sudo apt update
sudo apt install python3 python3-distutils python3-pyqt5 python3-pip python3-numpy -y
sudo pip3 install python-can pyqtgraph
- Paso 2. Instalar
git
.
sudo apt install git -y
- Paso 3. Instala el entorno relacionado con
make
.
sudo apt install make device-tree-compiler gcc -y
instalación de software
Instalar controladores de CAN-HAT y LCD
- Paso 1. Verificar la versión del kernel de Linux en el entorno actual e instalar el archivo de cabecera de la versión del kernel.
sudo apt install linux-headers-$(uname -r) -y
- Paso 2. Crear e instalar el controlador de stm32p1 desde
seeed-linux-dtverlays
en GitHub.
git clone https://github.com/Seeed-Studio/seeed-linux-dtverlays
cd seeed-linux-dtverlays
make all_stm32mp1 CUSTOM_MOD_FILTER_OUT="jtsn-wm8960" && sudo make install_stm32mp1 CUSTOM_MOD_FILTER_OUT="jtsn-wm8960"
- Paso 3. añadir el paquete dtbo en
/boot/uEnv.txt
para que se haga efectivo después del reinicio.
sudo sh -c "echo uboot_overlay_addr7=/lib/firmware/stm32mp1-seeed-lcd-01.dtbo >> /boot/uEnv.txt"
sudo sh -c "echo uboot_overlay_addr8=/lib/firmware/stm32mp1-MCP2517FD-can0.dtbo >> /boot/uEnv.txt"
sudo reboot
- Paso 4. Verifica si el controlador se instaló correctamente usando
dmesg
, verás la siguiente información si fue exitoso.
debian@npi:~$ sudo insmod /lib/modules/$(uname -r)/extra/seeed/mcp25xxfd-can.ko
debian@npi:~$ dmesg | grep spi
[ 1.057609] spi_stm32 44009000.spi: driver initialized
[ 9.852726] mcp25xxfd spi0.0: Linked as a consumer to regulator.6
[ 9.966510] mcp25xxfd spi0.0: MCP2517 successfully initialized.
debian@npi:~$ ifconfig -a
can0: flags=128<NOARP> mtu 16
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Configurar CAN-HAT y LCD
- Paso 1. Configurar
can-bus
sudo ip link set can0 up type can bitrate 500000 dbitrate 8000000 restart-ms 1000 berr-reporting on fd on
sudo ifconfig can0 txqueuelen 65536
debian@npi:~$ ip -details link show can0
3: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 10
link/can promiscuity 0 minmtu 0 maxmtu 0
can state ERROR-ACTIVE (berr-counter tx 0 rx 0) restart-ms 0
bitrate 500000 sample-point 0.875
tq 25 prop-seg 34 phase-seg1 35 phase-seg2 10 sjw 1
mcp25xxfd: tseg1 2..256 tseg2 1..128 sjw 1..128 brp 1..256 brp-inc 1
mcp25xxfd: dtseg1 1..32 dtseg2 1..16 dsjw 1..16 dbrp 1..256 dbrp-inc 1
clock 40000000numtxqueues 1 numrxqueues 1 gso_max_size 65536 /gso_max_segs 65535
- Paso 2. Configurar el entorno
lcd
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0
Ejecutar la Demostración
Ejecuta el siguiente código en 'ODYSSEY - STM32MP157C'
cd ~
git clone https://github.com/SeeedDocument/ODYSSEY-STM32MP157C.git
cd ~/ODYSSEY-STM32MP157C/examples
python3 QtViewerForStm32p1.py
Ejecuta CanBus_SendForArduino.ino en Seeeduino V4.2
.
Jugar con GPIO
Esta parte introducirá cómo usar grove.py para controlar GPIO y el Socket Grove en ODYSSEY STM32MP157C. Existen dos formas de conectar con el Socket Grove en esta placa. Por un lado está usando la Interfaz Grove Digital y la Interfaz Grove IIC, por el otro está usando los 40 pines de ODYSSEY - STM32MP157C. La descripción de las definiciones de PIN para los 40 pines de ODYSSEY - STM32MP157C por favor consulta [Función de Pin](#Pin Function). Es conveniente para ti usar estos 40 pines de ODYSSEY - STM32MP157C. Así que, vamos.
Configurar al modo gpio
- Paso 1. Verifica la versión del kernel de Linux en el entorno actual e instala el archivo de cabecera de la versión del kernel.
sudo apt install linux-headers-$(uname -r) -y
- Paso 2. Crear e instalar el controlador de stm32p1 desde
seeed-linux-dtverlays
en GitHub.
git clone https://github.com/Seeed-Studio/seeed-linux-dtverlays
cd seeed-linux-dtverlays
make all_stm32mp1 CUSTOM_MOD_FILTER_OUT="jtsn-wm8960" && sudo make install_stm32mp1 CUSTOM_MOD_FILTER_OUT="jtsn-wm8960"
- Paso 3. añadir el paquete dtbo en
/boot/uEnv.txt
para que se haga efectivo después del reinicio.
sudo sh -c "echo uboot_overlay_addr1=/lib/firmware/stm32mp1-seeed-spi5.dtbo >> /boot/uEnv.txt"
sudo sh -c "echo uboot_overlay_addr2=/lib/firmware/stm32mp1-seeed-usart2.dtbo >> /boot/uEnv.txt"
sudo sh -c "echo uboot_overlay_addr3=/lib/firmware/stm32mp1-seeed-i2c4.dtbo >> /boot/uEnv.txt"
sudo reboot
- Paso 4. Instala el entorno para
python3
.
sudo apt install python3 python3-pip -y
Salida digital en Basehat usando Grove.py
Hardware
- Paso 1. Elementos utilizados en este proyecto:
ODYSSEY – STM32MP157C | Grove - Buzzer | Grove Base Hat para Raspberry Pi |
---|---|---|
![]() | ![]() | ![]() |
Consigue UNO Ahora | Consigue UNO Ahora | Consigue UNO Ahora |
-
Paso 2. Conecta el Grove Base Hat al ODYSSEY - STM32MP157C.
-
Paso 3. Conecta el Grove Buzzer al puerto D5 del Base Hat.
-
Paso 4. Conecta el ODYSSEY - STM32MP157C a la PC a través del cable USB.
Software
- Paso 1. Instala el Grove.py
sudo pip3 install Seeed-grove.py
- Paso 2. Descarga el archivo fuente clonando la biblioteca grove.py.
cd ~
git clone https://github.com/Seeed-Studio/grove.py
- Paso 3. Ejecuta el siguiente comando para ejecutar el código.
cd grove.py/grove
sudo python3 grove_gpio.py 5
Nota
escucharemos sonido del zumbador si todo ha funcionado bien.Entrada Digital en Basehat usando Grove.py
Hardware
- Paso 1. Elementos utilizados en este proyecto:
ODYSSEY – STM32MP157C | Grove - Button | Grove Base Hat for Raspberry Pi |
---|---|---|
![]() | ![]() | ![]() |
Obtener UNO Ahora | Obtener UNO Ahora | Obtener UNO Ahora |
-
Paso 2. Conecta el Grove Base Hat al ODYSSEY - STM32MP157C.
-
Paso 3. Conecta el Grove Button al puerto D5 del Base Hat.
-
Paso 4. Conecta el ODYSSEY - STM32MP157C a la PC a través del cable USB.
Software
- Paso 1. Instala el Grove.py
sudo pip3 install Seeed-grove.py
- Paso 2. Descarga el archivo fuente clonando la biblioteca grove.py.
cd ~
git clone https://github.com/Seeed-Studio/grove.py
- Paso 3. Ejecuta el siguiente comando para ejecutar el código.
cd grove.py/grove
sudo python3 grove_button.py 5
Nota
veremos alguna información en la terminal si se ha presionado el botón.ADC en Basehat usando Grove.py
Hardware
- Paso 1. Elementos utilizados en este proyecto:
ODYSSEY – STM32MP157C | Grove - Sensor de Temperatura | Grove Base Hat para RasPi |
---|---|---|
![]() | ![]() | ![]() |
Consigue UNO Ahora | Consigue UNO Ahora | Consigue UNO Ahora |
-
Paso 2. Conecta el Grove Base Hat al ODYSSEY - STM32MP157C.
-
Paso 3. Conecta el sensor de temperatura al puerto A0 del Base Hat.
-
Paso 4. Conecta el ODYSSEY - STM32MP157C a la PC a través del cable USB.
Software
- Paso 1. Instala el Grove.py
sudo pip3 install Seeed-grove.py
- Paso 2. Descarga el archivo fuente clonando la biblioteca grove.py.
cd ~
git clone https://github.com/Seeed-Studio/grove.py
- Paso 3. Ejecuta el siguiente comando para ejecutar el código.
cd grove.py/grove
sudo python3 grove_temperature_sensor.py 0
Nota
veremos los datos de temperatura en el terminal si todo ha ido bien.UART en Basehat usando Grove.py
Hardware
- Paso 1. Elementos utilizados en este proyecto:
ODYSSEY – STM32MP157C | Grove Base Hat para RasPi |
---|---|
![]() | ![]() |
Consigue UNO Ahora | Consigue UNO Ahora |
-
Paso 2. Conecta el Grove Base Hat al ODYSSEY - STM32MP157C.
-
Paso 3. Conecta RX a TX en el Basehat usando un puente
-
Paso 4. Conecta el ODYSSEY - STM32MP157C a la PC a través del cable USB.
Software
- Paso 1. Instala el Grove.py
sudo pip3 install Seeed-grove.py
- Paso 2. Descarga el archivo fuente clonando la biblioteca grove.py.
cd ~
git clone https://github.com/Seeed-Studio/grove.py
- Paso 3. Ejecuta el siguiente comando para ejecutar el código.
cd grove.py/grove
python uart.py
si conectamos el TX al RX obtendremos hello seeder
en el terminal. y la ubicación del TX y RX podemos verla en Función de Pines.
I2S en ODYSSEY-STM32MP157C
En esta sección, explicaremos el principio de control de la programación I2S de Linux. Ahora usaremos I2S y ReSpeaker 2-Mics Pi HAT para mostrarte cómo usarlo.
Hardware
- Paso 1. Elementos utilizados en este proyecto:
ODYSSEY – STM32MP157C | ReSpeaker 2-Mics Pi HAT |
---|---|
![]() | ![]() |
Consigue UNO Ahora | Consigue UNO Ahora |
- Paso 2. Según la guía de instalación de hardware inserta ReSpeaker 2-Mics Pi HAT en ODYSSEY – STM32MP157C.
Software
- Paso 1. Instala alsa-utils usando
apt
sudo apt install alsa-utils -y
- Paso 2. Ve a la ubicación del archivo dtbs y descarga el archivo dtb stm32mp1.
debian@npi:~$ cd /boot/dtbs/4.19.9-stm32-r1/
debian@npi:/boot/dtbs/4.19.9-stm32-r1$ sudo wget https://files.seeedstudio.com/wiki/ODYSSEY-STM32MP157C/res/stm32mp1-seeed-npi-full-rpi-exp.dtb
Nota: También puedes descargar el archivo .dtb
de stm32mp1 aquí
- Paso 3. Configura el
uEnv.txt
como sigue:
debian@npi:~$ sudo vi /boot/uEnv.txt
Cambia la configuración dtb a
dtb=stm32mp1-seeed-npi-full-rpi-exp.dtb
- Paso 4. reiniciar
sudo reboot
- Paso 5. Ingresa a la carpeta
seeed-linux-dtverleys
y configura soundstate como sigue:
debian@npi:~$ cd ~/seeed-linux-dtverlays/
debian@npi:~/seeed-linux-dtverlays$ sudo cp extras/wm8960_asound-stm32mp1 /var/lib/alsa/asound.state
debian@npi:~/seeed-linux-dtverlays$ sudo alsactl restore
- Paso 6. Verifica si el controlador se instaló correctamente usando
aplay
yarecord
, verás la información a continuación si fue exitoso.
debian@npi:~/seeed-linux-dtverlays$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: seeed2micvoicec [seeed-2mic-voicecard], device 0: 4000b000.audio-controller-wm8960-hifi wm8960-hifi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: STM32MP1SEEEDNP [STM32MP1-SEEEDNPi], device 0: 4400b004.audio-controller-wm8960-hifi0 wm8960-hifi0-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
debian@npi:~/seeed-linux-dtverlays$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: seeed2micvoicec [seeed-2mic-voicecard], device 0: 4000b000.audio-controller-wm8960-hifi wm8960-hifi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: STM32MP1SEEEDNP [STM32MP1-SEEEDNPi], device 1: 4400b024.audio-controller-wm8960-hifi1 wm8960-hifi1-1 []
Subdevices: 1/1
Subdevice #0: subdevice #0
- Paso 7. ¡Ahora puedes empezar a jugar con ReSpeaker 2-Mics Pi Hat! Para pruebas simples de grabación y reproducción, ejecuta el siguiente comando:
- Para grabar un audio a
test.wav
:
arecord -f cd -r 48000 -Dhw:0 test.wav
- Para reproducir el audio
test.wav
. Recuerda conectar unos auriculares o un altavoz para emitir el audio.
aplay -Dhw:0 -r 48000 test.wav
Nota
si no puedes obtener ningún sonido, tal vez puedas reiniciar de nuevo.Para más información sobre el ReSpeaker 2-Mics Pi HAT puedes visitar wiki
Recursos
- [PDF] Hoja de datos STM32MP157C
- [SCH] Seeed SoM - STM32MP157C
- [SCH] ODYSSEY-STM32MP157C
- [Archivo3D] ODYSSEY-STM32MP157C
- [OrCAD] ODYSSEY-STM32MP157C
- [OrCAD] Seeed SoM - STM32MP157C
- [PDF] Archivo 2d ODYSSEY-STM32MP157C
- [PDF] Guía de referencia STM32
- [URL] Desarrollo avanzado de sistemas
ODYSSEY-STM32MP157C Desarrollo avanzado de sistemas
- Disponibilidad
- Documentación del proveedor
- Requisitos básicos
- Compilador cruzado ARM: GCC
- Cargador de arranque: U-Boot
- Kernel de Linux
- Sistema de archivos raíz
- Configurar tarjeta microSD
- Instalar kernel y sistema de archivos raíz
- Copiar sistema de archivos raíz
- Establecer uname_r en /boot/uEnv.txt
- Binario del árbol de dispositivos
- Copiar imagen del kernel
- Copiar binarios del árbol de dispositivos del kernel
- Copiar módulos del kernel
- Tabla de sistemas de archivos (/etc/fstab)
- Retirar tarjeta microSD/SD
- Comentarios
Soporte Técnico y Discusión de Productos
¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes tipos de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.