嵌入式Linux(十六)多点电容触摸屏/PWM背光实验

1. ATK-7016

  电容触摸屏一般内部有驱动IC,主控通过I2C接口读取驱动IC里的触摸坐标数据。ATK-7016使用的是FT5426,该驱动IC为15*28的数据结构,有15个感应通道,28个驱动通道,最多支持5点电容触摸。ATK-7016有4个IO连接主控,粉笔为SCL,SDA,RST和INT。可以由INT中断服务函数读取触摸数据。
  FT5426的I2C设备地址为0X38。其寄存器主要包括0x00模式寄存器,0x02触摸状态寄存器,0x03-0x1E为事件标志和五个触摸点的XY坐标高低位数据(1个触摸点需要6个寄存器),0xA1/2为版本寄存器(固件版本号),0xA4为中断模式寄存器。
在这里插入图片描述

1.1 AFT5426初始化代码

在这里插入图片描述
  正点原子的代码好像有问题,直接用他提供的驱动也不能实现主函数功能。

2. LCD背光调节

  基本原理是利用PWM快速交替点亮熄灭背光,实现PWM调光。I.MX6U有8路PWM信号。每个PWM包含一个16位计数器和4x16的数据FIFO。
在这里插入图片描述
上图PWM各序号部分功能如下:
①时钟源选择器:ipg_clk,ipg_clk_highfreq,ipg_clk_32k。
②12位分频器。
③16位计数器寄存器,保存PWM的计数值。向上计数,从0x0000到PWMx_PWMPR(x=1-8)+1。
④16位周期寄存器,控制PWM的频率。
⑤16位采样寄存器,控制PWM的占空比。
  PWM开始计数的时候先输出高(低)电平,然后当采样FIFO采样值和计数值比较相等的时候PWM电平反转输出,计数器继续计数,到PWMx_PWMPR+1为止,一个周期完成。采样FIFO的采样值来源于PWMx_PWMSAR
⑥PWM中断信号。
⑦输出IO,输出PWM信号。I.MX6U的GPIO1_IO8可以复用为PWM1_OUT

重要寄存器
1)PWMx_SR
  PWMx_PWMSAR写入采样值必须在FIFO没满的时候写入,否则会导致PWMSR的FWE(bit6)位置1,表示错误。FIFO任何时候都可以写入,但是只有在PWM使能时可以读取。PWMx_SR寄存器的FIFOAV(bit2:0)记录了当前FIFO中有多少数据。
  每当从PWMSAR读取一次数据或者产生一个周期的PWM信号就会使FIFO里的数据减一。当FIFO为空时触发PWM的
FIFO空中断
,中断中可以进行FIFO数据写入。这样才能产生源源不断的PWM波。

2)PWMx_PWMCR
①FWM(bit27:26):FIFO水位线,设置FIFO空余位置为多少时算作为空。
  0表示FIFO空余位置≥1的时候为空;1表示空余位置≥2的时候为空;类似的,还可以设置为2和3。
②POUTC(bit19:18):PWM输出控制位,用于设置PWM输出模式。
  为0时PWM首先输出高电平,当采样值和计数值相等时转为低电平。为1时相反。为2为3时不输出PWM信号。这里设置为0,这样采样值越大高电平时间越长,占空比越大。
③CLKSRC(bit17:16):PWM时钟源选择。
  为0关闭,为1选择ipg_clk,为2选择ipg_clk_highfreq,为3选择ipg_clk_32k。本次设置为1,因此PWM时钟频率为66MHz
④PRESCALER(bit15:4):设置分频。0-4095对应1-4096分频。
⑤SWR(bit3):软件复位。写1复位,自动清零。
⑥REPEAT(bit2:1):重复采样设置。
  用于设置FIFO中的每个数据可以使用几次。可以设为0-3表示可用1-4次。本次设为0
⑦EN(bit0):PWM使能位。1使能0关闭。

3)PWMx_PWMIR:中断控制寄存器
①CIE(bit2):比较中断使能位。为1的时候使能,0关闭。
②RIE(bit1):翻转中断使能位。
  计数值等于采样值并回滚到0x0000的时候产生的中断,1使能0关闭。
③FIE(bit0):FIFO空中断,为1使能,0关闭。

4)PWMx_PWMSR
①FWE(bit6):FIFO写错误事件。为1表示出错。
②CMP(bit5):FIFO比较事件发生标志位。为1表示发生。
③ROV(bit4):翻转事件标志位,为1表示发生。
④FE(bit3):FIFO空标志位,为1表示FIFO为空。
⑤FIFOAV(bit2:1):记录FIFO中有效数据的个数,为0-4。

5)PWMx_PWMPR:周期寄存器
  只有低十六位有效。PWM频率计算公式为:PWMO(Hz)=PCLK(Hz)/(PERIOD+2)。PCLK是最终进入PWM的时钟频率,再经过PERIOD分频后得到PWMO为PWM的输出频率。
  假如PCLK 的频率为1MHz,要产生一个频率为1KHz的PWM信号,可以设置PERIOD = 1000000 / 1000 – 2 = 998。

6)PWMx_PWMSAR:采样寄存器
  只有低十六位有效,为采样值。计数值小于采样值输出高,大于等于输出低,小于PWMPR的PERIOD的时候也输出低。(按照我们的设置)
  假如要设置50%的占空比。SAMPLE=(PERIOD+2)/2=1000/2=500。(这里PERIOD参考上个寄存器设置为998)

配置步骤
1.配置GPIO1_IO08
2.初始化PWM1
3.设置中断
4.使能PWM1

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 嵌入式Linux多点触屏测试是一种对设备进行功能和性能验证的过程。在这个过程中,我们使用各种测试方法和工具来确保设备在使用多点触屏功能时的可靠性和稳定性。 首先,我们可以使用硬件工具来进行外部触摸屏的测试。这包括检查触摸屏是否能够准确地检测到多个触摸点,并且能够正确地识别和跟踪这些触摸点的移动和操作。我们还测试触摸屏的响应时间和灵敏度,确保设备对于用户的触摸输入可以进行迅速而准确的反应。 其次,我们还可以进行软件测试。这包括验证设备驱动程序是否正确地支持多点触摸,并且可以正确地与系统进行通信。我们还可以编写测试用例来模拟各种使用情况,例如多点触摸屏的平移、缩放和旋转等操作,以确保设备在各种使用情况下的正常工作。 此外,我们还可以进行性能测试。这包括测试设备在处理多点触摸输入时的性能表现,例如设备的处理速度、内存使用和电池寿命。我们可以使用各种性能测试工具和基准测试来评估设备的性能表现,并确定是否需要进行优化和改进。 总的来说,嵌入式Linux多点触屏测试是一个多方面的过程,涵盖了硬件和软件的测试以及性能评估。通过对设备进行全面的测试,我们可以确保其在使用多点触摸功能时的可靠性、稳定性和良好的性能表现。 ### 回答2: 嵌入式Linux多点触屏测试是指对嵌入式Linux系统中的多点触屏硬件进行功能和性能的验证。在测试过程中,需要考虑以下几个方面: 首先,需要测试触摸屏幕的基本功能是否正常,包括触摸的准确性、灵敏度和反应速度等。可通过手指点击、滑动、缩放等操作来检测触摸屏幕的响应情况。 其次,需要测试多点触控功能是否可用。多点触控可以实现多指操作,如双指旋转、双指缩放等。在测试中,可通过多指操作的组合来验证多点触控的支持情况。 此外,还需要测试触摸屏幕的精确度。通过测量触摸位置的偏差,可以评估触摸屏幕的精确度,并能确保其在应用中的准确性。 在测试过程中,需要使用专业的测试工具和软件来辅助测试。常用的测试工具有触摸屏幕校准工具、触摸屏滑动测试工具等。通过这些工具可以对触摸屏幕的各个参数进行调整和测试,以确保其正常工作。 最后,在测试前需要对测试环境进行准备,确保环境和设置的正常。测试前需要检查硬件连接是否正确,确认驱动程序是否安装和配置正确,避免因为环境问题导致的测试结果不准确。 总结起来,嵌入式Linux多点触屏测试需要验证触摸屏幕的基本功能、多点触控功能和精确度等方面的表现。通过使用专业的测试工具和软件,确保测试的准确性和可靠性。测试前需要进行环境准备和设置确认,以保证测试的顺利进行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值