Funpack第一期:ODYSSEY – STM32MP157C MPU
Funpack第一期,一起玩转基于MPU的SoM: ODYSSEY – STM32MP157C
标签
MPU
HZSD
更新2021-01-13
1721

ST公司(意法半导体)推出STM32MP1系列Linux MPU,受到广泛关注。对于ST来说占据MCU半壁江山,拥有广大用户,能不能在嵌入式Linux应用领域继续成功;对于广大MCU用户来说能不能降低Linux门槛,无缝衔接低端到高端的产品设计都是值得期待的事情。

 

STM32MP1推出以来,市面上已经有好几种开发板,今天给大家介绍一款由矽递(Seeed)推出的ODYSSEY-STM32MP157C开发板,其最大的特色是类似树莓派的结构设计,兼容树莓派接口。融入树莓派生态系统,不仅增加了各种资源,增加了可玩性,对新用户来说了降低了Linux门槛,上手入门更容易。

FqEFb-F_Iq7tU6kGBophcO0sN-vl

首先来看看硬件平台,ODYSSEY – STM32MP157C以模块上系统(SoM)和载板的形式创建。SoM由MPU,PMIC,RAM组成,并且载板采用Raspberry Pi尺寸。载板上包括所有必需的外围设备,包括千兆以太网、WiFi / BLE、直流电源、USB主机、USB-C、MIPI-DSI、摄像机、音频的DVP等。使用该板,客户可以快速评估SoM,并轻松快捷地将SoM部署在自己的载板上。

 

核心板SoM详细参数

FomydZ9rn-Rarhf9njV--w4-WGOp

  1. STM32MP157C:MPU(双核Arm Cortex-A7 + 单核Cortex-M4 )

  2. MT41K256M16TW-107:512MB RAM

  3. STPMIC1APQR: 电源管理芯片

  4. EMMC04G-M627: 4GB eMMC内存

  5. LED: 成功供电后,PWR将继续工作。当系统正常运行时,USER LED将一直闪烁。

  6. 70针连接器:3路70针板对板连接器

 

核心STM32MP157C处理器是工作在650Mhz的双核Arm Cortex-A7核心处理器。该处理器还与Cortex-M4协处理器集成在一起,使其适合于实时任务。Cortex-A7主要在操作系统级别执行操作,Cortex-M4在MCU级别处理操作。芯片含有丰富的资源,支持各种存储器接口、图形加速/显示接口和丰富的通信接口。可以广泛应用于工业制造、消费电子、医疗、高端可穿戴设备、智能家居设备等领域。

FskFcOfmNQPZTkdyCFgBpZfTveCT

载板详细参数

Fji5mTASdjvk7-WEsR4BOO1OPRr0FoSt7zOQrFJXvbVPjyreXG_i3THa

  1. 载板:安装核心板 SoM-STM32MP157C的区域(载板的结构类似树莓派)。

  2. 直流电源输入端口:12V〜24V / 2A(建议输入12V / 2A电源)。

  3. ETH接口:网络电缆接口可以连接到千兆级网络。

  4. USB端口:两个USB主机端口

  5. USB设备:USB 2.0 TypeC。如果将Type C用作板卡电源输入,则应使用5V / 3A电源适配器。

  6. 数字Grove接口:将Grove接口连接到数字引脚。

  7. IIC Grove接口:将Grove接口连接到IIC引脚。

  8. 音频接口:3.5mm音频接口。

  9. MIPI DSI接口:使用MIPI DSI接口(FPC 20Pin 1.0mm)连接到显示器。

  10. 40 PIN GPIO接口:与Raspberry Pi的40-PIN兼容。

  11. AP6236: 2.4G WiFi&BT 4.2控制芯片

  12. 滑动开关:可用于选择SD卡或eMMC来启动。

  13. 调试UART:系统默认的调试串行端口

  14. JST 1.0mm: 3VRTC电池接口。

  15. RST键:系统复位键

  16. PWR按键:长按约8秒可关闭,短按可启动。

  17. 用户按钮:用户按钮。

  18. PWR LED: 开发板电源指示灯。

  19. User LED: 用户可编程的LED。

  20. ACA-5036-A2-CC-S: 板载2.4G陶瓷天线。

  21. IPEX 1代:外部2.4 G外部天线座(使用外部天线时,需要卸下R49,R51两个0Ω电阻)

  22. lSD卡插槽:将装有系统的SD卡插入该区域

  23. DVP摄像头接口:通过DVP接口(FPC 20Pin 1.0mm)连接到摄像机。

  24. KSZ9031: 1000M网络电缆驱动器网卡。

  25. STMPS2252MTR: 电源开关芯片。

  26. MP9943: 降压DCDC电源芯片。

  27. WM8960: 音频编解码器芯片。

  28. MP2161: 降压DCDC电源芯片。

准备工作

ODYSSEY-STM32MP157C开发板的包装里只有一个开发板的裸板,其他的配件需要DIY。我们先到板卡的wiki页面看看 :https://wiki.seeedstudio.com/cn/ODYSSEY-STM32MP157C/。FgnNM-fapFvtX3J7yM0TysLv9GWI准备第一次启动所需配件:

  • 电源推荐12V2A直流电源(也可以通过Type C USB供电,需要5V3A适配器)

  • 串口连接线

  • 4GB以上SD卡

  • 网线(可选)

 

因为开发板没有HDMI之类显示接口,所以第一次启动Linux系统需要通过串口调试端口设置,还需要一张4GB以上SD卡烧录系统。如果有有线网络可以直接连接,如果只有无线网络可以启动后再激活网络。

 

首先我们要在wiki页面下载烧录Linux镜像,熟悉树莓派的朋友一定不陌生。

FkVvD2YZlJhe41KFFvUFYyny4QZg

 

然后连接硬件平台,串口这样连接,如果有网线也可以插上。

Fus8MA7iw56-aSL411V6GHzEDRHe

 

在板上有开关控制启动模式(SD or eMMC),第一次拨到SD端。

Fh8bNJsfcs5Pun0hdAGFkqr05oFv

第一次启动

打开一个串口监控程序(例如Putty),设置好串口。开发板上电后在SoM上的Power led变亮,系统启动后User led会一直闪烁,这才代表SD卡启动成功。FpTLakHKuRYNH7DvfEGM8hD_oTWs

 

输入默认的用户密码debian  temppwd进入Linux系统,可以看看系统信息,如查看当前操作系统内核信息等。

Ftk4UcrCbLIBGepy4s4ovT2vrtXx

 

这时候Linux系统基本上是一个裸系统,如果已经连上了有线网络(或者激活WiFi),我们可以进行系统更新,因为更新源在国外,所以系统更新速度有些慢,需要耐心等待。

sudo apt-get updatesudo apt-get upgrade

更新完成后需要安装一些基本工具,如ssh、git、wget、make等等。安装ssh后可以通过ssh远程登录系统更方便。

sudo apt install ssh

切换eMMC启动

系统从eMMC启动更方便,这样就不需要再插上SD卡。要如何切换到eMMC启动?首先要更改启动文件/boot/uEnv.txt,

 

sudo sh -c "echo cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3-stm32mp1.sh >> /boot/uEnv.txt"
sudo reboot

 

直接重启,重启完成后会发现这时候SoM上的user led变成常亮。

Fi-Q4__s2XUJSsaxFT6fkNj_dMlP

然后断开电源,取出SD卡,将开关拨到eMMC端。这时重新上电后,系统就从eMMC启动。

激活WiFi

如果已经插上网线的话,可以直接连通网络。想要激活WiFi功能首先要修改/boot/uEnv.exe的内容。

 

dtb = stm32mp1-seeed-npi-base.dtb ---> dtb=stm32mp1-seeed-npi-full.dtb

重启系统,该Linux镜像集成了网络管理工具connmanctl,按照wiki教程设置WiFi激活。

Frk8CSPWUIjf1fcEQtPqZ4gtH8dU

 

连上网络后可以通过ssh登录系统。

FuxjVWJ9x1FL4WEE2gc--d-hlQ2T

 

安装Python工具

这款开发板是一个类树莓派的结构设计,完全兼容树莓派扩展接口,最大的区别是少了HDMI接口,增加了两个Grove接口。FrF-EsPH_aU5xTt01gs0Yec0N586

 

Grove是矽递推出的跨平台工具集,包含了多种外设模块,这些模块采用统一的接口设计,软硬件开源,使用非常方便。通过树莓派接口也可以扩展使用各种Grove接口模块。Grove模块驱动都是通过Python开发,在使用前我们要先在系统安装Python工具。按照wiki的教程先安装Python。

sudo apt install linux-headers-$(uname -r) -y

git clone https://github.com/Seeed-Studio/seeed-linux-dtverlays

cd seeed-linux-dtverlaysmake all_stm32mp1 CUSTOM_MOD_FILTER_OUT="jtsn-wm8960" && sudo make install_stm32mp1 CUSTOM_MOD_FILTER_OUT="jtsn-wm8960"

sudo apt install python3 python3-pip -y

 

安装完成python后,我们先安装grove.py库,这个库类似树莓派的驱动库,安装之后可以很方便控制硬件接口。

sudo pip3 install Seeed-grove.py

cd ~

git clone https://github.com/Seeed-Studio/grove.py

 

例如我们首先做一个最简单实验,点亮LED。因为接口和树莓派接口一样。FucgzqKCBKXS1sU-pTTVMAxkj_I7

import time    
from grove.grove_led import GroveLed
# connect to pin 5(slot D5)    
PIN = 5
led = GroveLed(PIN)
while True:   
led.on()      
time.sleep(1)      
led.off()      
time.sleep(1)

 

编辑一个python文件led.py,执行后会驱动GPIO5引脚的LED闪烁。sudo python3 led.py FpQFXlrwWfLdgN_I7m819MJb-Qmq到这里我们就搭好了ODYSSEY-STM32MP157C开发板的软硬件开发环境,在wiki页面上有一些教程,比如驱动树莓派接口上的一个串口等等。目前wiki页面资料还不是很完善,一直在更新,外设驱动的实例也会越来越多。

 

在这块开发板上没有引出STLink接口,不过PCB还是预留了STLink的调试信号,可以焊接引出STLink接口用于单片机调试。

FpmHbHZNr8NIkt9JHl0GsotkXfPM

 

在Dig-Key的wiki页面有软件资源的汇集(https://www.digikey.com/eewiki/display/linuxonarm/ODYSSEY-STM32MP157C),用户可以制作自己的Linux镜像学习嵌入式Linux的设计。

总结

ODYSSEY-STM32MP157C开发板设计之初就考虑融入树莓派生态系统,不仅增加了可玩性,也降低了使用门槛。对于习惯MCU开发的用户是一个很好地上手工具。这款开发板还有一个优势是核心板和载板分离设计,而且硬件设计完全开源。我们知道有很多设计可以直接基于树莓派开发,但是最大缺点是树莓派的硬件是没法定制的。而这款开发板不仅可以做原型设计和软件验证,也很方便将核心板集成到自己的设计,降低产品的设计和时间成本。

团队介绍
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号