很多年前买过一个荣耀盒子,型号是MediaQ M321。这个盒子很精致,是我看到过的安卓机顶盒里面最小巧、紧凑的。主芯片型号是Hi3798Mv100,支持4K,虽然有点过时,但依然能用。这个机器最大的缺点是虽然可以安装app,但启动后第1屏是节目推荐,而应用列表在第7屏,开机后要按好几次遥控器按钮才能打开app。系统禁止第三方app自启动,因此第三方桌面没有用武之地。root非常困难,尝试了很多方法都失败了。串口的发送方向可以打印日志,但接收方向被屏蔽。也没有第三方电视机顶盒固件可以刷。它家的(包括它的老东家的)产品历来可玩性很差。
想到一个办法,就是在机器启动完毕后给它发几个遥控按键指令跳到第7屏,这得做个电路板,用单片机分析串口的启动日志,检测到启动完毕后发送红外遥控指令。在研究荣耀盒子PCB的过程中顺带发现还有一路USB留了1.27mm间距的4针接口,正好可以扩展一路USB接口(原来只有一路USB和一路Micro SD)。测量完尺寸后开始着手设计原理图和PCB。手上有很多STM32L433RCT3料板,就用它做主控了,正好可以做低功耗,完成使命后休眠。原理图很简单,控制方面是串口接收数据,然后出一个漏极开路的GPIO和红外接收头集电极开路的输出脚进行“线与”;USB扩展则是1.27mm 4P转USB TypeC。PCB做1mm板厚,可以完全塞进外壳内。软件方面用到了DMA模式的LPUART、STOP2模式休眠和LPUART唤醒。软件流程为上电后单片机内核80MHz全速运行,检测到机顶盒启动完毕的串口日志后输出几个红外遥控指令,然后进入休眠模式。机顶盒的任何串口输出都会唤醒单片机,当单片机检测到机顶盒待机的串口日志时再次休眠,检测到机顶盒重启的串口日志又会在发送前述的红外遥控指令后进行休眠。
调试时实测单片机全速运行电流为10mA,休眠电流小于1mA(按手册是几μA)。实物如下:
测试自动发指令和扩展USB功能如下:
扩展USB TypeC特写:
背面开窗(还没想好怎样兼顾散热、遮挡灰尘又不影响WiFi):
附件(含原理图、源代码)
使用闲鱼扫描此二维码可进店购买空白PCB
标签:USB,休眠,单片机,MediaQ,串口,机顶盒,日志,M321 From: https://www.cnblogs.com/elysium/p/18487535