好记星2014年的主打产品。
我主要负责硬件驱动的维护,Framework 部分的定制。
新平板产品量产过程中,工厂反映有1%的触摸屏出现无法正常工作。拿到不良的触摸屏后,通过分析系统启动的 log,发现触摸屏驱动已经加载,但是 probe 函数中打印无法找到 0x38 设备。0x38 设备就是 ft5x06 的设备从地址,证明 I2C 通讯没有成功。但是奇怪的是,这些不良的触摸屏在上一款硬件雷同的平板上可以正常工作。
I2C 通信不成功的原因无非以下几点:
因为我们上一款平板的触摸屏驱动是由 RK 直接提供的,而且我们也量产1年时间,没有发现类似的问题。出问题的这款平板硬件跟上一版本的雷同,软件驱动也是一样的,所以认为软件驱动应该没什么问题,电气性的问题概率会大一点。
尽管如此,我还是重新检查了一遍触摸屏驱动,调整 I2C 速率,重新烧录后发现还是老样子。
决定去硬件组看看。硬件的同事用示波器观察了 I2C 的通信波形,发现出现了中间电平。数字电路不是只有高电平,低电平,1和0吗?怎么出来了一个中间电平了。什么是中间电平?例如芯片规格规定高电平是高于2.4V,电平低于0.4V,如果出现了1.4V的话,那就是中间电平了。
出现中间电平,可能是因为触摸屏内阻比较大,分压过大,造成低电平下不来。
可以通过修改上拉电阻,提高上拉电阻的分压比例,降低触摸屏内阻的分压比例,达到低电平降下来的效果。换10K上拉电阻,老样子,再换…直到换了一个50K的电阻之后,低电平果然就下来了,I2C 通信波形也很正常,触摸屏工作正常!但是50K上拉电阻的情况下,其它本来正常的触摸屏的波形就不是很好。这个方案不完美。
然后就考虑通过调整 CPU I2C 端口驱动电流来实现上拉电阻提高分压比例的方法,RK3188的 I2C 端口默认是 2 ma, 通过软件配置寄存器,将驱动电流调整为 4ma 后,波形正常了,不良的触摸屏也可以正常使用了。而且对其他正常的触摸屏也没有影响。
问题解决!
最近的暑假项目接近尾声,稍微清闲,又开始折腾博客了。突然想换个域名,自己的独立博客就是随意折腾,反正也没什么朋友知道我的网站,折腾这个博客纯粹是想记录一些东西,然后就是更了解网络,仅此而已。
kevinems.com 这个是我的新域名,kevinems 和我在网络的 ID 一致,也方便我自己输入。useesee.com 这个域名8月份到期后将弃用。
WordPress 域名迁移很方便,网上大把教程。我没有做数据备份的情况下也轻松完成了迁移工作,当然这种不备份的习惯不太好。
同时安装了 WP-PostViews 插件,统计文章点击次数,我之前一直想去实现的功能。记得以前修改过一个 Z-BLOG 的首页文章幻灯片插件,吸引了大量 IP,那时看着文章点击次数上千,上万,挺爽的。
同时今天家里网络开通了,没想到我也能坚持了差不多9个月的时间家里没有网络,希望以后也不会太依赖网络,而影响工作和生活。
手写控件相关文章:http://kevinems.com/tag/%E6%89%8B%E5%86%99
本人在好记星平板电脑 N818S 上开发的原笔迹手写控件,压感,笔锋都实现了,笔迹保存,还原,删除,放大,缩小,旋转,移动功能也实现了,控件的API简单易用,可以说是一个比较完善的控件了,并集成到 Framework,小有成就感啊。
当初需求统计,分析是就认定是一个相对复杂的控件,所以前期做了不少工作,后期编码实现的时候相对还算比较顺利。
这是第一次真正意义上遵循了标准的软件开发流程,开发效率果然提高不少。科学的开发方法,事半功倍。
流程大概:
平台:好记星 N818S,Android 4.2,汉王电磁屏,电磁笔
笔触效果:钢笔,铅笔,马克笔,毛笔
效果图:
一个终端培训师的作品~~~
尽管几周前才推出 Android 4.4.3 KitKat,但是今天 Google 又推送了最新的 Android 系统, Android 4.4.4 KitKat。
但是这次更新并没有带来新的功能,而是仅仅修复了安全性问题。
当然,安全性问题也很重要,谁也不希望自己的手机成为别人的肉鸡。这次更新的安全性问题主要针对之前引起恐慌的 OpenSSL 漏洞。同时 Chrome 浏览器和 WebView 也有小改动。
如果你不想等待 OTA 更新,可以自己下载最新的 KTU84P 固件,直接 fastboot 刷机。反正我是第一时间刷机了。也有人反映这个版本号不太吉利,准备等等,直接上 5.0 。
AlarmManager 的使用是 Android 初学者比学掌握的,网上教程一箩筐,这里就不罗嗦了。
这里有一个比较好的教程 Android – Creating an Alarm with AlarmManager
本文的重点是如何把休眠的机器唤醒,点亮屏幕并显示相关的界面。
但是值得注意的就是,AlarmManager 唤醒系统后,跑完相关程序后,又会继续休眠下去。
如果你需要像我一样,唤醒屏幕去显示闹钟界面,那就要加上 WakeLock。
WakeLock 相关源码:
private PowerManager.WakeLock wl; ... public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Tag"); wl.acquire(); ... ... //The rest of the onCreate() is still the same (for now) } protected void onStop() { super.onStop(); wl.release(); }
// 值得注意的是,WakeLock 必须 release, 具体位置可以自己安排
// 别忘了加上权限 uses-permission android:name="android.permission.WAKE_LOCK";
更多可以参考这里: Starting Activity from Sleeping Device
享受了半年的免费电信宽带之后,电信终于把我的网络给停了。免费的享受惯了,突然要收费,甚是不爽,不如试一下没有网络的日子,加上老婆也不反对,没有网络的日子就一直持续到现在。差不多三个月的时间,生活似乎得到不少惊喜。
当然没有网络,有些依靠网络的事项相对有所限制。
因为上班的时候还是能上网的,所以对于网络有迫切需求的事项,还是能解决的。深圳很多政府、民生信息都已经网络公开化,赞一个。
总而言之,网络就是双刃剑。就目前的我来说,适当的断网,对我的生活起到很大的积极作用,所以,继续坚持下去。
第一次熬夜看球,有中国球队的世俱杯~~~
感谢恒大,感谢里皮。让我重拾足球的乐趣。
P.S. 这场秦升很有存在感。。。65岁的里皮看似漠不关心地向27岁的秦升一瞥,眼前全是马特拉齐的影子……深藏功与名。
北京时间11月9日20时,2013赛季亚冠联赛决赛第二回合在广州天河体育场打响。代表中国出战的广州恒大迎战韩国豪门首尔FC。58分钟,埃尔克森接穆里奇妙传单刀赴会首开纪录。62分钟,首尔外援德扬门前一脚低射将比分追为为1-1。最终恒大1-1战平首尔,两回合总比分3-3,依靠客场进球多的优势夺得亚冠联赛冠军。这也是中国足球职业化之后夺得的首个亚冠联赛冠军。