当前位置: 首页 > article >正文

AI-Talk开发板硬件适配

一、说明

        使用duomotai_ap sdk对AI-Talk开发板进行开发,sdk中的板级配置文件是适配CSK6-MIX开发板的,但是AI-Talk开发与CSK6-MIX开发板部分外设的信号连接不一样,所以要根据AI-Talk开发板的信号连接修改板级配置文件。

二、配置文件

1、DTS文件
duomotai_ap/.sdk/csk/boards/arm/csk6_duomotai_devkit/csk6_duomotai_devkit.dts
2、config文件
duomotai_ap/.sdk/csk/boards/arm/csk6_duomotai_devkit/csk6_duomotai_devkit_defconfig

三、修改DTS文件

1、LCD

        AI-Talk开发板与CSK6-MIX开发板只有LCD_RST管脚不一样,其余管脚是一样的。CSK6-MIX开发板没有将LCD_RST连接到GPIO上,所以csk6_duomotai_devkit.dts文件中将st7789v的reset-gpios的定义屏蔽了,AI-Talk开发板将LCD_RST连接到CH32的PD4,所以去掉reset-gpios的注释,并改为:

reset-gpios = <&exgpiod 4 GPIO_ACTIVE_LOW>;

exmcu的PD4,有效电平为低,驱动中没有使用有效电平这个参数,所以设置为高、低电平都行。

2、CAMERA

        当前所用GC0328摄像头只有PWDN信号,没有RESET信号,AI-Talk开发板与CSK6-MIX开发板只有CAM_PWDN管脚不一样,CSK6-MIX开发板没有将CAM_PWDN连接到GPIO上,所以csk6_duomotai_devkit.dts文件中没有定义gc0328的pwdn-gpios,AI-Talk开发板将CAM_PWDN连接到CH32的PC7,所以增加pwdn-gpios的定义,并且AI-Talk开发板连接了CAM_RESET到GPIO上,所以也增加reset-gpios的定义:

&i2c1 {
        status = "okay";
        pinctrl-0 = <&pinctrl_i2c1_scl_default &pinctrl_i2c1_sda_default>;
        pinctrl-names = "default";

	gc0328: gc0328@21 {
		compatible = "galaxyc,gc0328";
		status = "okay";
		reg = <0x21>;
		reset-gpios = <&gpioa 1 0>;
        pwdn-gpios = <&exgpioc 7 1>;
	};

PWDN为exmcu的PC7,有效电平为高,驱动中没有使用有效电平这个参数,所以设置为高、低电平都行。

RESET为exmcu的PA1,低电平为高,驱动中没有使用有效电平这个参数,所以设置为高、低电平都行。

3、TOUCH

        AI-Talk开发板与CSK6-MIX开发板只有TP_RST管脚不一样,其余管脚是一样的。CSK6-MIX开发板没有将TP_RST连接到GPIO上,所以csk6_duomotai_devkit.dts文件中没有定义ft5336的reset-gpios,AI-Talk开发板将TP_RST连接到CH32的PD3,所以增加reset-gpios的定义:

reset-gpios = <&exgpiod 3 1>;

exmcu的PD4,有效电平为低,驱动中没有使用有效电平这个参数,所以设置为高、低电平都行。

duomotai_ap/.sdk/zephyr/dts/bindings/input/focaltech,ft5336.yaml文件properties部分声明reset-gpios,修改文件之后如下:

properties:
  int-gpios:
    type: phandle-array
    
  reset-gpios:
    type: phandle-array
    description: |
      The RESETn pin is asserted to disable the sensor causing a hard
      reset.  The sensor receives this as an active-low signal.
 4、LED_RGB

AI-Talk开发板上没有LED_RGB,所以应该取消led-rgb-red、led-rgb-green、led-rgb-blue的定义,但AI-Talk开发板上有个用户指示LED,连接到exmcu的PA2,增加user_led的定义。修改leds节点:

leds {
        compatible = "gpio-leds";
        user_led: user_led {
                gpios = <&exgpioa 2 GPIO_ACTIVE_LOW>;
        };
        lcd_pwm_ctl: lcd_pwm_ctl {
                gpios = <&exgpiod 2 GPIO_ACTIVE_LOW>;
        };
        camera_ir_led: camera_ir_led {
                gpios = <&exgpioc 0 GPIO_ACTIVE_LOW>;
        };
};

修改aliases:

aliases {
        sw0 = &user_button_0;
        csk6-exmcu = &csk6_ch32v003;
        lcd-pwm-ctl = &lcd_pwm_ctl;
        camera-ir-led = &camera_ir_led;
        led0 = &user_led;
};
5、USER_BUTTON

AI-Talk开发板与CSK6-MIX开发板的user_button都连接在PB0上。

6、ADC_KEY

CSK6-MIX开发板使用exmcu的ADC Channel2(PC4)检测K1和K2是否按下,AI-Talk开发板没有这个两个按键,并且PC4也用于其它功能,所以删除adckey节点的定义。

7、camera_ir_led

CSK6-MIX开发板使用exmcu PC0控制摄像头红外LED亮灭,AI-Talk开发板没有这个功能,但是AI-Talk开发板的exmcu PC0为悬空状态,所以dts中保留camera_ir_led节点。


http://www.kler.cn/news/283876.html

相关文章:

  • 改造小蚁摄像头支持免费无限容量云储存(Samba挂载篇)
  • 零基础入门转录组数据分析——基因Wilcoxon秩和检验
  • python进阶篇-day02-面向对象高级
  • DIFFUSION 系列笔记| Latent Diffusion Model、Stable Diffusion基础概念、数学原理、代码分析、案例展示
  • 【node.js】基础之修改文件
  • APP渠道来源方案探索
  • 第22周:调用Gensim库训练Word2Vec模型
  • 使用对象池优化 C++ 程序性能的实用指南
  • 传输层协议-UDP数据报
  • 6 自研rgbd相机基于rk3566之深度计算库程序详解
  • 第一次用macos快速上手教程
  • 算法进阶篇 之 实用数据结构
  • 【图论简介】
  • 深入理解Python中的`super()`函数:如何调用父类的方法
  • 【数字IC】——逻辑综合,物理数据的读入
  • Vxe UI vue vxe-table 如何在表格中使用上传附件、上传图片
  • Linux下编译安装SuperLU
  • 应对Java虚拟机(JVM)负载突然增大的全面指南
  • Sentinel-1 Level 1数据处理的详细算法定义(七)
  • ARM/Linux嵌入式面经(三二):百度
  • 【区块链 + 司法存证】智慧审判留痕系统 | FISCO BCOS应用案例
  • 掀起社交娱乐新浪潮!AI如何应用到短视频APP?
  • Windows 局域网文件共享
  • js 如何获取文件名
  • 哈希(C语言)
  • 华为设备ENSP-AAA认证配置
  • Python | Leetcode Python题解之第386题字典序排数
  • FPGA 学习之路:挑战与策略
  • 磁盘I/O性能优化示例
  • Go 语言中的接口详解