不知道如何可以让电容屏触摸起来, 因为电阻屏直接用tslilb就可以了
离线
你的是什么驱动芯片?gt911?
我这里在内核中配置了FT5X06 我用的是这个系列的
然后我I2C用的是PB8 和Pb9
离线
那现在驱动了吗?启动log有没有成功的信息? /dev/input/ 目录下面eventX设备?
打印的信息 在/dev/input里面有一个event0
但是从这个打印信息来看 好像还是I2C0在起作用啊
最近编辑记录 无情一刀 (2018-11-14 09:32:48)
离线
对,看起来 I2C1 根本没有起作用, 记得 I2C引脚(PB8, PB9)要上拉哦.
再不行只能先接 I2C0了。
I2C0现在没法接了 测试了下是中断没有起来 我现在中断脚用的是PB3 现在就是不知道中断脚不知道是在哪里配置
离线
那进 FT5X06 中断程序, 看 request_irq 中断申请通过了没有, 跟踪一下这几行代码,看看什么情况.
你说的这个request_irq 是指那个文件里面的 I2C-core.c里面没有你说的这个函数
在配置里面我吧那个NS2009的去掉了 选择的是那个FT5X06 发现在/dev/input中没有那个event那个设备
离线
https://github.com/torvalds/linux/blob/master/drivers/input/touchscreen/edt-ft5x06.c
https://github.com/Lichee-Pi/linux/blob/zero-4.13.y/drivers/input/touchscreen/edt-ft5x06.c跟踪一下这个:
error = devm_request_threaded_irq(&client->dev, client->irq,
NULL, edt_ft5x06_ts_isr, irq_flags,
client->name, tsdata);
现在是FT5x06是有一个复位脚我接到PB2管脚 在时序中 要一个10ms时间的拉低 ,就是这个程序在内核里面有写 吗 还是配置这个管脚就可以;
离线
这样写的可以吗
离线
https://whycan.cn/files/members/1116/I2C.png
应该写在 FT5X06 里面, 还得在request reset/irq 那里加调试语句,看看有没有执行。
我这个真不知道怎么去定义了 因为还要有名字 这个我不是很懂
离线
这是在里面添加的reset脚
在Edt-ft5x06.c中这个函数中edt_ft5x06_ts_probe加了打印 根本就没有进来
离线
得找下在那里调用设备树读写函数, 确认是 "resets"?在哪个文件里面写的 "resets" ?
这个驱动我也没有弄过,也只能一步一步跟踪.
我改为reset了
tsdata->reset_gpio = devm_gpiod_get_optional(&client->dev,
"reset", GPIOD_OUT_HIGH);
现在就是配置了这些了 在/dev中都没有看到input;
最近编辑记录 无情一刀 (2018-11-14 17:48:57)
离线
现在就是这个函数edt_ft5x06_ts_probe根本就没有进去 所以还是这里配置的有问题 没有匹配到
离线
现在是进到这个函数edt_ft5x06_ts_probe
但是在这里 这里出现错误了touchscreen probe failed 还要查下edt_ft5x06_ts_identify这个函数里面有什么没有配置
error = edt_ft5x06_ts_identify(client, tsdata, fw_version);
if (error) {
dev_err(&client->dev, "touchscreen probe failed\n");
return error;
}
离线
无情一刀 说:现在是进到这个函数edt_ft5x06_ts_probe
但是在这里 这里出现错误了touchscreen probe failed 还要查下edt_ft5x06_ts_identify这个函数里面有什么没有配置
error = edt_ft5x06_ts_identify(client, tsdata, fw_version);
if (error) {
dev_err(&client->dev, "touchscreen probe failed\n");
return error;
}上面是不是去掉空格, 就可以进入这里?
这里看起来是校验 ft5306 里面的固件版本?
跟进去看看吧
是的 还有那个横岗
离线
一进来去读取触摸信息就报错了 但是我那个触摸的芯片的地址 也是对的额
离线
无情一刀 说:一进来去读取触摸信息就报错了 但是我那个触摸的芯片的地址 也是对的额
逻辑分析仪抓i2c,再跟进那个probe函数
现在交硬件的抓I2C 现在就是连reset有拉低了 这管脚正常 ,至于其他的时序 还抓不到
离线
有上拉 刚上电的时候是高电平的 dts里面那个地址 是对的 0x38
最近编辑记录 无情一刀 (2018-11-15 15:56:59)
离线
https://github.com/ev3dev/i2c-tools/tree/ev3dev-stretch/tools
https://kernel.googlesource.com/pub/scm/utils/i2c-tools/i2c-tools/i2cutils 工具了解一下,
用 i2cdetect 命令可以遍历总线上所有的i2c设备,
把逻辑分析仪挂总线上面可以抓到 i2cdetect 命令发出来的数据.或者把 ns2009 飞线到这组 i2c1 上面, 然后看是否能把 ns2009驱动起来,
用于判断硬件软件环境是否正常.
就是在里面也定义了串口0 定义的也是P8P9和这个I2C重复了 但是我没有接串口0 这样有影响吗
离线
我在uboot和内核将配置串口0 全部屏蔽了 还是一样的结果
离线
现在I2C0 和1 都有 我用工具看1的时候
离线
无情一刀 说:现在I2C0 和1 都有 我用工具看1的时候
https://whycan.cn/files/members/1116/tool.png设备树里面移除 FT5036的驱动,然后再用 i2cdetect 搜索一下,看能否找到 FT5036 在对应的地址里面.
还有把那个内核信息屏蔽一下, 否则数据都看不清了。
他出现这样的打印说明是检测到了I2C1?
离线
不是很明白你说的这里
搜了一下全志的I2C使用的真是Marvell 的IP:
离线
现在一直是在request irq就报报错
离线
离线
这里是一直就有的 没有改
离线
如果我设置的是pb3为中断管脚 我这里要怎么去修改了 下图是GPX1-6为中断脚
离线
36楼那个问题怎么解决的?
因为我他那里是读取数据 我在probe中暂时不要读取数据
所以我我就这句话先屏蔽掉edt_ft5x06_ts_identify
离线
现在就是IRQ一直弄不上去 还是出现失败
离线
这是在内核dtsi中配置的i2c1 这里对那个dts有影响吗
离线
问下这个函数的源码是在哪里哦哦
devm_request_threaded_irq
离线
改配置的也都配置 还是一样的身躯中断不了
离线
为什么这个回调函数一直没有执行过了 路过的大神
离线
edt_ft5x06_ts_isr 要中断才会执行,你手动拉低那个中断引脚看不会执行?
我拉低了还是没有进去
离线
现在就是没有在/dev/下面没有看到input
离线
我现在想先创建input 就是申请中断放在最后 就想着看看能不能出现input 在dev下 也还是没有出现
离线
无情一刀 说:我现在想先创建input 就是申请中断放在最后 就想着看看能不能出现input 在dev下 也还是没有出现
https://whycan.cn/files/members/1116/12.pngi2cdetect能找到设备吗?先确定硬件是不是正常
可以找到设备
最近编辑记录 无情一刀 (2018-11-19 16:58:27)
离线
后面弄好了 主要是因为在dts中配置中断管脚的时候 配置了 一直关联不到代码 相当于在代码中去调用dts中的中断配置时候申请不上 (这点现在还有疑惑 )
后面实在没有问题办法就在代码直接指定中断管脚申请中断,
离线
大神最终咋整的?有详细点的思路不.....
哈哈 我当时主要是ft触摸芯片一直挂不上中断,你配置就按照我上面的配置为文件 ,
然后在代码中直接加入申请中断 后面就这样跑起来了 ,哈哈 一直都纳闷 为什么在配置文件中直接定义了中断管脚不可以, 还有什么不懂的可以加我QQ 1003676315
最近编辑记录 无情一刀 (2019-04-02 11:23:23)
离线
转自: https://whycan.cn/t_2360.html#p17976
https://whycan.cn/files/members/3/QQ20190421194526.jpg
在店主的耐心教导之下, 终于搞定 FT5336 电容触摸屏:
1. 店主建议修改电阻:
R15 --> 1.5K
R16 --> 1.5K
R29 --> 3.3K我实际修改:
R15 --> 1.2K
R16 --> 1.2K
R29 --> 3.7K2. 断开 R23 电阻, R21与R23的交叉点飞线到核心板的 PWM0(PB4), 这样FT5336的中断脚就是 EINT4, 复位脚是 PE23.
3. dts 修改:
&i2c0 {
status = "okay";ft6x06@38 {
compatible = "focaltech,ft6236";
reg = <0x38>;
interrupt-parent = <&pio>;
interrupts = <1 4 IRQ_TYPE_EDGE_FALLING>;
reset-gpios = <&pio 4 23 GPIO_ACTIVE_LOW>;
touchscreen-size-x = <480>;
touchscreen-size-y = <854>;
touchscreen-inverted-x;
touchscreen-swapped-x-y;
};};
4. 驱动添加:
CONFIG_TOUCHSCREEN_EDT_FT5X06=y
5. Linux 启动 log 信息:
[ 1.161482] i2c /dev entries driver
[ 1.494509] input: EP0110M09 as /devices/platform/soc/1c2ac00.i2c/i2c-0/0-0038/input/input1
晕哥 麻烦你把这个你配置的 interrupt-parent = <&pio>;贴出来我对比下 ,
我以前配置和也是和你一样的 ,我以前一直申请不了中断是不是和那几个电阻有关系了
离线
看 发现没有区别了 为什么我以前那样配置就是中断不起来哦哦 ,
离线