找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 20798|回复: 63

K3屏幕工作原理探究

  [复制链接]
本帖最后由 shutup 于 2017-4-13 00:04 编辑

2017/04/12


目前看来,K3的屏幕由单独的PIC控制(PIC32MZ1024ECG100),PIC与K3路由器的处理器是通过UART串口进行交会,官方固件提供了uhmi,uhmiMsg两个程序来和PIC进行通信。
  1. Usage: uhmi [OPTION]...
  2.     -h,     show help
  3.     -d,     Set debug level
  4.             0x00000001 DBG_LEVEL_NONE
  5.             0x00000002 DBG_LEVEL_INFO
  6.             0x00000004 DBG_LEVEL_NORMAL
  7.             0x00000008 DBG_LEVEL_ERROR
  8.             0x00000010 DBG_LEVEL_DEBUG
  9.             0xFFFFFFFF DBG_LEVEL_ALL  
  10.     -D,     Dump packet
  11.             none    not dump packet
  12.             rx      dump rx packet
  13.             tx      dump tx packet
  14.             both    dump both rx and tx packet
复制代码
  1. uhmiMsg [parameter...]
  2.         reboot
  3.         reset
  4.         upgrade
  5.         usbplugged
  6.         usbunplugged
  7.         screenset
  8.         update
  9.         runapp
  10.         ver            Get mcu fw version
  11.         debug <leve> Set debug level
  12.             0x00000001 DBG_LEVEL_NONE
  13.             0x00000002 DBG_LEVEL_INFO
  14.             0x00000004 DBG_LEVEL_NORMAL
  15.             0x00000008 DBG_LEVEL_ERROR
  16.             0x00000010 DBG_LEVEL_DEBUG
  17.             0xFFFFFFFF DBG_LEVEL_ALL
  18.         dump <packet> Dump packet
  19.             none    not dump packet
  20.             rx      dump rx packet
  21.             tx      dump tx packet
  22.             both    dump both rx and tx packet
复制代码
比如:设置屏幕息屏时间:
  1. 大概就是这个样子: uhmiMsg  screenset  screen_time=60
复制代码
在telnet 中输入下面的命令,可以查看串口的收发数据 ,可能对破解有帮助。
  1. uhmi -d 0xffffffff -D both
复制代码


我总结一下:下面都是我的假设,因为我没有刷第三方固件,因此对于屏幕在刷机后,到底是什么情况,目前不了解。如果有大神,可以帮忙继续深入。
我猜测,路由器在刷了第三方的情况下,MCU中应该还是有东西的,如果我们可以移植uhmi到第三方固件,那么应该可以通过命令关掉屏幕。
另一方面,可能路由器和MCU之间还有一些其它交互,由于刷机导致交互不完整,屏幕初始化失败,甚至斐讯可能每次重新加电都需要重新刷写MCU。




原帖:
从智前灰卡到一台K3,卡了整整10分钟。我一直好奇这个K3的屏幕的怎么和路由器交互的。拿到货后。立即开了telnet。然后开始在固件里面翻,之前看网上的拆机图,屏幕是有单独的MCU控制的。然后发现固件的根目录就有pic的hex固件(裸机程序)。我觉得K3启动慢,有可能是再检测需不需要更新单片机程序。同时K3的固件中应当存在一个程序对单片机进行烧写。如果发现了它的烧写机制,那么这个屏幕就可以干很多事情了。希望有嵌入式开发的大神可以继续看看。对了还有一种猜测,屏幕的MCU可能是通过USB连接的,这个还需要确认。希望K3的第三方固件可以越来越多。

评分

参与人数 9恩山币 +9 收起 理由
rout*** + 1 我来恩山就是为了看你!
a9090*** + 1 亲,你这么厉害,我想做你的经纪人!
thesu*** + 1 我来恩山就是为了看你!
cool*** + 1 支付宝已转500w给你!
Wildest*** + 1 我来恩山就是为了看你!
vip*** + 1 支付宝已转500w给你!
天*** + 1 我来恩山就是为了看你!
sav*** + 1 我来恩山就是为了看你!
夜的*** + 1 我来恩山就是为了看你!

查看全部评分

来自手机 | 显示全部楼层
简单,就一个端口写数据过去就行了。这么内容,写起来很快的
回复

使用道具 举报

ccdos 发表于 2017-4-12 20:04
简单,就一个端口写数据过去就行了。这么内容,写起来很快的

能写一个吗?最好还能播放电影。
回复

使用道具 举报

ccdos 发表于 2017-4-12 20:04
简单,就一个端口写数据过去就行了。这么内容,写起来很快的

再能接音箱吧
回复

使用道具 举报

delux1234 发表于 2017-4-12 20:16
能写一个吗?最好还能播放电影。

最好能打lol,电脑都省了。
回复

使用道具 举报

ccdos 发表于 2017-4-12 20:04
简单,就一个端口写数据过去就行了。这么内容,写起来很快的

理论上可行的,屏幕用的芯片是 PIC32MZ1024EFE100
sample code和datasheet都有
http://www.microchip.com/wwwproducts/en/pic32mz1024efe100

评分

参与人数 1恩山币 -1 收起 理由
@*** -1 How ever,this is JB useful

查看全部评分

回复

使用道具 举报

上面全是大神
回复

使用道具 举报

 楼主| 来自手机 | 显示全部楼层
翻车炮 发表于 2017-4-12 20:48
理论上可行的,屏幕用的芯片是 PIC32MZ1024EFE100
sample code和datasheet都有
http://www.microchip.c ...

嗯,目前我是希望可以找出官方进行pic烧写的方式,这样不就可以不用拆机了嘛。
回复

使用道具 举报

屏幕的MCU是通过SPI连接的。

目前测试的成果:pic32内置一个菜单frame,lcd的工作状态并不影响K3使用,

现在最好的情况就是希望PIC32内置bootloader,可以通过K3升级屏幕的固件程序,要不然的话就需要拆机更新屏幕frame。
这就比较难受了。外面的卡扣拆一次就报废。。。。
回复

使用道具 举报

能控制开关就行了 其他不奢望
回复

使用道具 举报

来自手机 | 显示全部楼层
开始以为那么高配置启动很快,太久了
回复

使用道具 举报

 楼主| | 显示全部楼层
Manipleman 发表于 2017-4-12 22:20
屏幕的MCU是通过SPI连接的。

目前测试的成果:pic32内置一个菜单frame,lcd的工作状态并不影响K3使用,
...

我在官方固件里发现了,斐讯是通过uhmi这个程序来进行mcu的烧写的。研究一下这个程序,应该可以移植到第三方固件上。
回复

使用道具 举报

来自手机 | 显示全部楼层
shutup 发表于 2017-4-12 23:06
我在官方固件里发现了,斐讯是通过uhmi这个程序来进行mcu的烧写的。研究一下这个程序,应该可以移植到第 ...

膜拜大神^_^
回复

使用道具 举报

 楼主| | 显示全部楼层
Manipleman 发表于 2017-4-12 22:20
屏幕的MCU是通过SPI连接的。

目前测试的成果:pic32内置一个菜单frame,lcd的工作状态并不影响K3使用,
...

uhmiMsg [parameter...]
        reboot
        reset
        upgrade
        usbplugged
        usbunplugged
        screenset
        update
        runapp
        ver            Get mcu fw version
        debug <leve> Set debug level
            0x00000001 DBG_LEVEL_NONE
            0x00000002 DBG_LEVEL_INFO
            0x00000004 DBG_LEVEL_NORMAL
            0x00000008 DBG_LEVEL_ERROR
            0x00000010 DBG_LEVEL_DEBUG
            0xFFFFFFFF DBG_LEVEL_ALL
        dump <packet> Dump packet
            none    not dump packet
            rx      dump rx packet
            tx      dump tx packet
            both    dump both rx and tx packet


do_screenSet_cgi
screen_time
screen_2G5G_pwd_en
screen_guest_pwd_en
screen_time=%s, screen_2G5G_pwd_en=%s, screen_guest_pwd_en=%s
uhmiMsg screenset
回复

使用道具 举报

来自手机 | 显示全部楼层
我默默给大神加油
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-5-23 17:21

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表