//=====================================================================
//TITLE:
// 在TCC89x使用AK4183触摸屏驱动
//AUTHOR:
// norains
//DATE:
// Monday 18October-2010
//Environment:
// TCC8900
// Windows CE 6.0
//=====================================================================
Telechips从TCC79x进化到TCC89x后,触摸屏驱动有了很大的改变,最明显的是可以直接使用GPIO来检测触摸屏触摸了。不过,可能是为了向后兼容,之前的TSC2003和AK4183也是可以用,不过却要进行一些设置。
DRIVERS文件夹有两个触摸屏的驱动,分别是Touch1和Touch2,后者是新的GPIO方式,而前者则是老旧的,适用于TSC2003和AK4183。现在就跟我一起来,让AK4183也能在TCC89x平台上重焕光彩吧!
1../Src/DRIVERS/dirs
该文件定义的是编译的驱动的文件夹。这里我们需要将Touch2改为Touch1。
2../Src/DRIVERS/Touch1/sources
该文件定义了需要进行编译的源文件,不知道为什么,默认没有将tca_ak4183tchctl.c给包含进去,所以我们必须手动添加,如:
SOURCES= /
tchmain.cpp /
tchbasic.cpp /
TouchPanel.cpp /
tcc_touch.c /
tca_tchcontrol.c /
tca_tchhwctl.c /
tca_tsc2003tchctl.c /
tca_ak4183tchctl.c /
3../Src/DRIVERS/Touch1/tca_tchhwctl.h
该文件主要是用来定义宏,以此来确定是使用TSC2003还是AK4183。因为我们这里使用的是AK4183,所以为了简单起见,我们直接在开头定义一个CONFIG_TOUCHSCREEN_TCC_AK4183宏,如:
4../Src/DRIVERS/Touch1/tcc_touch.c
这个文件主要是控制触摸屏的行为,不过原代码却有个bug。在tea_tch_readi2c函数中,居然调用tca_tsc2003_setreadcmd来获取AK4183的命令。这样的直接结果是,因为命令不匹配,所以AK4183的中断会一直没有恢复到HIGH,以致TCC89x一直在读取触摸屏数据。为了修正这个BUG,我们根据宏来做相应的处理,如:
其实只是在原来的代码tca_tsc2003_setreadcmd前面增加宏判断以确认是调用哪个函数而已。
5../Src/DRIVERS/Touch1/TouchPanel.cpp
因为AK4183默认是接在I2C0上的,而代码中的通道是通过注册表获取的,但注册表指示的却是通道1,这个通道只能和TSC2003相匹配,却无法用到AK4183中,所以我们强制将通道设为0,如:
当一切设置完毕,重新编译触摸屏驱动,则它会生成一个touch.dll文件,而这个无论是用GPIO方式,还是芯片模式,都是一样的。编译完毕,就可以下载到开发板去试试了。
分享到:
相关推荐
TC-TCC89x-WinCE-AM-1000-2.80-Quick_Start_Guide,telchips的wince开发文档。
有完整的Magellan TCC 89XX 开发资料,全部为PDF档,还有BSP。
TCC89XX TCC8900_CHIP_SPEC_V0.01_B_Preliminary.pdf
TCC89xx LINUX_BSP_100205-R0170B2750_part4--ramdisk
这时我在业余时间用贴图完成的TCC890x WinCE下的高清播放器。所有按钮,进度显示等都是通过贴图实现。
TCC89XX_CHIP_SPEC By Telechips
Telechips Windows® CE BSP Telechips BSP (Board Support Package) for TCC79x
TELECHIPS TCC8900 Datasheet
韩国telechips公司TCC7901的BSP,做相关平台可以学习一下哦~
TCC8925x_35_M805S_D3_08X4_V11A_130219-9526 原理图 里面含有TCC8925x 的芯片资料含有芯片有关的原理图
TCC8900原厂底板原理图_TCC89_91_92XX_DEMO_V1.2_RELEASE.pdf telechips TCC8900 demo board 原版原理图
关于修改屏幕分辨率的步骤 第一, 修改:\WINCE600\PLATFORM\Magellan\Magellan...改成你想要的分辨率,使用16进制 (320)10=(140)16,(240)10=(F0)16 第二, 修改:\WINCE600\PLATFORM\Magellan\Src\BOOT\lcd.h里面的 ....
TCC89xx LINUX_BSP_100205-R0170B2750_part6--util
非常详尽的telechips tcc89xx 91xx 92xx芯片wince开发文档
车载多媒体导航用,汽车级SOC。 Android支持:4.4~6.0 特性:10秒快速启动,快速倒车视频显示,集成噪声与回音消除算法
TCC89/92XX 3D Driver.pdf TCC89/92XX 3D Driver.pdf
TCC8900 TCC8901 TCC8902 平台下的 Camera 驱动用于CE6.0,可以支持如下Camera方案:MT9D112 TVP5150A TVP5150A_PAL TW9900 TW9900_PAL
TCC89xx LINUX_BSP_100205-R0170B2750_part1--bootloader
tcc组件使用1.0.0版本