作者| veahow
芯片:SSD21X/22X/SSC9211
模块:环境搭建
本期主要讲解Linux进入STR后如何配置UART唤醒?SSD22X/SSD21X/SSC9211 Linux适用。
1. 场景描述
客户应用在STR后需要按键、串口、USB唤醒,在USB作为通信接口时串口关闭,在串口作为通信接口时,USB关闭,需要有支持STR UART唤醒的功能。
2. 环境搭建
2.1 版本说明
SDK版本:IKAYAKI_ULS00V010
硬件平台:SSD222X_QFN128_2L_DDR2_DEMO公板
由于公板的JP4排针有引出相关的引脚,本次测试使用公板的PAD_KEY8、PAD_KEY9脚(分别对应JP4排针的Pin 9和Pin 10),详细信息如下表所示:
Pin | GPIO Number | Padmux |
PAD_KEY8 | GPIO47 | UART2_TX |
PAD_KEY9 | GPIO48 | UART2_RX |
本次内核使用的pioneer3_ssc020a_s01a_spinand_demo_qfn128_usbcamera_defconfig这个配置,需要修改kernel/arch/arm/boot/dts/pioneer3-ssc020a-s01a-qfn128-demo-usbcam-dualSensor-padmux.dtsi
并在kernel/arch/arm/boot/dts/pioneer3.dtsi处修改:
2.2 实现方法
实现方法可分为两种,一种是通过UART中断唤醒,一种是将UART_RX脚注册为GPIO中断进行唤醒,两种方法均可正常唤醒,区别在于功耗。
2.2.1 UART中断唤醒
使用UART中断唤醒,进入STR需要开启某些模块,会导致功耗有较大的提升。修改kernel/arch/arm/mach-sstar/pioneer3/sram.S:
以及修改kernel/drivers/sstar/serial/ms_uart.c的ms_uart_startup函数:
2.2.2 UART_RX GPIO中断唤醒
由于支持UART中断唤醒导致功耗有增加,想要保持原有低功耗情况只能支持UART_RX GPIO唤醒。该实现比较简单,直接修改kernel/arch/arm/boot/dts/pioneer3.dtsi的wakeup中的wakeup_source即可:
如果同时有其他的GPIO中断,比如PAD_KEY12这个脚,只需要再修改source_num就可以:
》》原文地址
End.
推荐阅读
SigmaStar智能门锁方案介绍
SSD222Q在工业HMI中的新应用
SigmaStar智能网关方案介绍
SigmaStar智能家居全家桶
扫码进入论坛
原厂答疑|产品选型|官方资源
扫码咨询客服
SDK下载|芯片、开发板购买