Linux进入STR后如何配置UART唤醒?

Comake Online


作者| 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.dtsiwakeup中的wakeup_source即可:



如果同时有其他的GPIO中断,比如PAD_KEY12这个脚,只需要再修改source_num就可以:



》》原文地址


End.



推荐阅读


SigmaStar智能门锁方案介绍


SSD222Q在工业HMI中的新应用


SigmaStar智能网关方案介绍


SigmaStar智能家居全家桶





扫码进入论坛

原厂答疑|产品选型|官方资源



扫码咨询客服

SDK下载|芯片、开发板购买


X 提交 下一题

查看更多