GPIO
要求:
-
点亮板卡LED
-
确认空闲引脚使用是否异常
- 点亮LED
1.首先查看电路原理图
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
sensor bring up(SC200AI)
sensor相关知识:
camera理论基础和工作原理 - 刘一卜 - 博客园 (cnblogs.com)
sensor i2c detect
接上sensor之后可以先看i2c是否能够detect到。(显然一般是detect不到的)
显然pinmux线序不对
设置一下
devmem 0x030010f0 32 4
devmem 0x030010f4 32 4
解决
修改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。
所以需要在bga.dtsi中将sd的dts删除,添加一行delete sd的代码。
重新编译烧录之后开机就能够检测到sensor了。