Seeed设计、ODYSSEY-STM32MP157C开发板
ODYSSEY – STM32MP157C是一款基于STM32MP1系列通用处理器的单板计算机,核心STM32MP157C是工作在650MHz的双核Arm Cortex-A7核心处理器。
标签
硬件设计
Funpack活动
MPU
STM32MP1
Funpack第二期
Lucia
更新2023-12-29
1497

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

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

FmFA1RsbvsudInKqLGO4dwNjNySd

 

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

 

核心板SoM详细参数

FrNtZgGr_j6Vlzzoba5r7ZfGRZG4

  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级别处理操作。芯片含有丰富的资源,支持各种存储器接口、图形加速/显示接口和丰富的通信接口。可以广泛应用于工业制造、消费电子、医疗、高端可穿戴设备、智能家居设备等领域。

FrKoqcBCI5pz72sST9QuZe8HF8jP

 

载板详细参数

FhgbFNKs_wvJw2lsDIGjMGzDuSDsFqFPPexmtOJO6WP4owvH4ve6C6Q3

  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页面看看 。

FmIi0zMb5wOHKryYXzhuLNNitv7t

准备第一次启动所需配件:

  • 电源推荐12V2A直流电源(也可以通过Type C USB供电,需要5V3A适配器)
  • 串口连接线
  • 4GB以上SD卡
  • 网线(可选)

 

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

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

FuriiNh7V0J9iI149o_67shVaQgB

 

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

FutZ7PLzREkeiPCqrCuGo479L5VR

 

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

Fjt2ul8JPo_5BHbwYe0RoWzccb-V

 

第一次启动

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

Fo75wFK-B8InRulENuPMe0BLiW79

 

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

FpjxmO4yJLGXS3gufRfDGgE2_Qwk

 

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

sudo apt-get update
sudo 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变成常亮。

Ft-CkXXF-MhuVUjZcLh6ffIXgvlt

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

 

激活WiFi

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

 

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

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

FiYrVhimCGvUs4cnpWDstwZoWjF7

 

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

FqrmUys1F2vgn_q_oszFNSyOa-yF

 

安装Python工具

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

Fpep-wRg4j0b4tM3IXzoaw1fjIqc

 

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-dtverlays
make 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。因为接口和树莓派接口一样。FhebaZ0Ezd1rJ1t82crw3D1ltqPN

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 

FguCeeSyQgrxL83Cjm5ipmV5mYev

 

到这里我们就搭好了ODYSSEY-STM32MP157C开发板的软硬件开发环境,在wiki页面上有一些教程,比如驱动树莓派接口上的一个串口等等。目前wiki页面资料还不是很完善,一直在更新,外设驱动的实例也会越来越多。

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

Fg31iDg2r0FF6pybWjeTBT4Xm0HM

 

在Digi-Key的wiki页面有软件资源的汇集,用户可以制作自己的Linux镜像学习嵌入式Linux的设计。

 

总结

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

 

END

 

团队介绍
【硬禾工程师团队专注于基于FPGA和嵌入式系统学习平台的开发和生态系统的建设,在过去5年里成功推出的小脚丫FPGA学习平台被全国上百所高校采用于数字电路教学实践中,并一直积极推动开源、免费PCB设计工具KiCad在高校学生及硬件工程师中的应用。】 【得捷电子是一家全球性的电子元器件综合服务授权分销商,总部设在美国明尼苏达州锡夫里弗福尔斯市,经销着来自 1100 多家优质品牌制造商的 990 多万种产品,其中 210 多万种现货供应,立即发货。Digi-Key 还提供各种各样的在线资源,如 EDA 和设计工具、规格书、参考设计、教学文章和视频、多媒体资料库等。】 【自2008年以来,Seeed一直通过提供开放技术和敏捷制造服务为全球开发人员社区提供服务,其使命是使硬件更易于访问,并降低硬件创新的门槛。Seeed凭借深圳庞大的资源以及全球可信赖的技术和分销合作伙伴,致力于成为为物联网,边缘AI应用程序创建硬件解决方案的最集成的平台。】
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号