小奶板点灯 & sensor bring up

392 阅读1分钟

GPIO

要求:

  1. 点亮板卡LED 

  2. 确认空闲引脚使用是否异常

  • 点亮LED

1.首先查看电路原理图

image.png

led对应的gpio为xgpioc24

1.在/home/myname/workspace/milkV/cvi_mmf_sdk/middleware/v2/sample/common/sample_common_peripheral.c的CVI_GPIO_NUM_E找到gpio组号

gpioc24的组号为440

2.配置pinmux

在/home/myname/workspace/milkV/cvi_mmf_sdk/build/boards/cv180x/cv1800b_sophpi_duo_sd/u-boot/cvi_board_init.c中添加

PINMUX_CONFIG(PAD_AUD_AOUTR, XGPIOC_24);

3.clean_all && build_all

4.到板端点亮LED

echo 440 > /sys/class/gpio/export

echo out > /sys/class/gpio/gpio440/direction

echo 1 > /sys/class/gpio/gpio440/value

echo 0 > /sys/class/gpio/gpio440/value

echo 440 > /sys/class/gpio/unexport

image.png

sensor bring up(SC200AI)

sensor相关知识:

camera理论基础和工作原理 - 刘一卜 - 博客园 (cnblogs.com)

sensor i2c detect

接上sensor之后可以先看i2c是否能够detect到。(显然一般是detect不到的)

image.png image.png

显然pinmux线序不对

image.png

设置一下

devmem 0x030010f0 32 4

devmem 0x030010f4 32 4

解决

image.png

修改sensor_cfg.ini文件

[sensor]   
; sensor name   
name = SMS_SC200AI_MIPI_2M_30FPS_10BIT  
bus_id = 1   

配置pinmux

上面只是在命令行进行了pinmux的配置,但是每次重启都会重置pinmux的配置。

为了让它自己将pinmux切到想要的功能,需要进行以下操作。

在cvi_board_init.c中根据原理图配置对应pin脚的pinmux_config。

问题:

然而配置好了pinmux之后开机仍然没有切到想要的pinmux功能。开机之后cvi_pinmux检查相应pin脚依然是默认的功能。

解决:

在dts中有一个sd卡的驱动,这段代码会在kernel中将pinmux再切回gpio。

image.png

所以需要在bga.dtsi中将sd的dts删除,添加一行delete sd的代码。

image.png

重新编译烧录之后开机就能够检测到sensor了。

抓.yuv图

image.png

image.png