Firefly开源社区
标题:
[Core-1126-JD4] os04a10 reset pin 无法配置为高电平有效,是否是 bug 还是预期的...
[打印本页]
作者:
ubuntu
时间:
2021-9-10 11:11
标题:
[Core-1126-JD4] os04a10 reset pin 无法配置为高电平有效,是否是 bug 还是预期的...
如题, 我做了 10 次对比实验, 发现 pwd pin 可以配置为高电平/低电平有效, 但 reset pin 不可以.
请教firefly 的兄台, 是否是 bug 呢?
具体实验:
rst pwn pin gpio分析
# case1 当如下配置后,pwn电压为0
pwdn-gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_LOW>;
/*
usleep_range(500, 1000);
if (!IS_ERR(os04a10->pwdn_gpio))
gpiod_direction_output(os04a10->pwdn_gpio, 1);
*/
# cases2 当如下配置后, pwn 电压还是 0
pwdn-gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_LOW>;
reset-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_LOW>;
usleep_range(500, 1000);
if (!IS_ERR(os04a10->pwdn_gpio))
gpiod_direction_output(os04a10->pwdn_gpio, 1);
# case3 当如下配置, pwn 电压正常为 1.8v,sensor 可以正常用.
pwdn-gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_LOW>;
reset-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_LOW>;
if (!IS_ERR(os04a10->reset_gpio))
gpiod_direction_output(os04a10->reset_gpio, 0);
usleep_range(500, 1000);
if (!IS_ERR(os04a10->pwdn_gpio))
gpiod_direction_output(os04a10->pwdn_gpio, 0);
# case4. 异常 . 异常. pwn=1.8v, rst=0v.
if (!IS_ERR(os04a10->reset_gpio))
gpiod_direction_output(os04a10->reset_gpio, 0);
if (!IS_ERR(os04a10->reset_gpio))
gpiod_direction_output(os04a10->reset_gpio, 1);
usleep_range(500, 1000);
if (!IS_ERR(os04a10->pwdn_gpio))
gpiod_direction_output(os04a10->pwdn_gpio, 0);
pwdn-gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_LOW>;
reset-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_HIGH>;
# case5. 异常 . 异常. pwn=1.8v, rst=0v.
/* if (!IS_ERR(os04a10->reset_gpio))
gpiod_direction_output(os04a10->reset_gpio, 0); */
if (!IS_ERR(os04a10->reset_gpio))
gpiod_direction_output(os04a10->reset_gpio, 1);
usleep_range(500, 1000);
if (!IS_ERR(os04a10->pwdn_gpio))
gpiod_direction_output(os04a10->pwdn_gpio, 0);
pwdn-gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_LOW>;
reset-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_HIGH>;
# case6. 异常. pwn=0 rst=0
/* if (!IS_ERR(os04a10->reset_gpio))
gpiod_direction_output(os04a10->reset_gpio, 1); */
if (!IS_ERR(os04a10->reset_gpio))
gpiod_direction_output(os04a10->reset_gpio, 1);
usleep_range(500, 1000);
if (!IS_ERR(os04a10->pwdn_gpio))
gpiod_direction_output(os04a10->pwdn_gpio, 1);
pwdn-gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_LOW>;
reset-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_LOW>;
# case7. 正常. 其实就是重复 case3 的实验.
/* if (!IS_ERR(os04a10->reset_gpio))
gpiod_direction_output(os04a10->reset_gpio, 0); */
if (!IS_ERR(os04a10->reset_gpio))
gpiod_direction_output(os04a10->reset_gpio, 0);
usleep_range(500, 1000);
if (!IS_ERR(os04a10->pwdn_gpio))
gpiod_direction_output(os04a10->pwdn_gpio, 0);
pwdn-gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_LOW>;
reset-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_LOW>;
# case8. 异常. pwn=1.8v, rst=0v.
pwdn-gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_HIGH>;
/* if (!IS_ERR(os04a10->reset_gpio))
gpiod_direction_output(os04a10->reset_gpio, 0); */
if (!IS_ERR(os04a10->reset_gpio))
gpiod_direction_output(os04a10->reset_gpio, 1);
usleep_range(500, 1000);
if (!IS_ERR(os04a10->pwdn_gpio))
gpiod_direction_output(os04a10->pwdn_gpio, 1);
# case9. 异常. pwn=1.8v, rst=0v.
if (!IS_ERR(os04a10->reset_gpio))
gpiod_direction_output(os04a10->reset_gpio, 0);
if (!IS_ERR(os04a10->reset_gpio))
gpiod_direction_output(os04a10->reset_gpio, 1);
usleep_range(500, 1000);
if (!IS_ERR(os04a10->pwdn_gpio))
gpiod_direction_output(os04a10->pwdn_gpio, 1);
pwdn-gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_HIGH>;
# case10. 正常.
if (!IS_ERR(os04a10->reset_gpio))
gpiod_direction_output(os04a10->reset_gpio, 0);
usleep_range(500, 1000);
if (!IS_ERR(os04a10->pwdn_gpio))
gpiod_direction_output(os04a10->pwdn_gpio, 1);
pwdn-gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_LOW>;
复制代码
作者:
板蓝根
时间:
2021-9-10 15:16
不知道你是用示波器测量还是万用表,如果你要怀疑这两个脚可不可控应该用 gpio 子系统去测试一下。如果你用 sensor 去测试,sensor 驱动很多地方会控制这两个引脚,例如摄像头初始化失败了,就会把掉源关掉。所以用示波器测试应该会准确一点
作者:
ubuntu
时间:
2021-9-13 16:45
板蓝根 发表于 2021-9-10 15:16
不知道你是用示波器测量还是万用表,如果你要怀疑这两个脚可不可控应该用 gpio 子系统去测试一下。如果你用 ...
您说的对.
虽然我把 camera driver 下电函数直接 return , 然后用万能表测试, 但 camera sensor 内部电路未知.
我应该不挂载 camera sensor 直接测试主板试试.
欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/)
Powered by Discuz! X3.1