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

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-arrayreset-gpios:type: phandle-arraydescription: |The RESETn pin is asserted to disable the sensor causing a hardreset.  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.mrgr.cn/news/16012.html

相关文章:

  • HarmonyOS---基于Web组件构建网络应用
  • 从跟跑到领跑:AIGC时代国产游戏的崛起与展望
  • C语言 | Leetcode C语言题解之第385题迷你语法分析器
  • Memcached stats sizes 命令
  • C++入门基础知识43——【关于C++循环】
  • Spring Boot集成Spring Cloud Scheduler进行任务调度
  • AI学习指南深度学习篇-长短时记忆网络python实践
  • Visual Studio Code离线汉化
  • Flask蓝图的作用
  • 深入理解Python中的`super()`函数:如何调用父类的方法
  • C++ 中的信号量:一种高效的线程同步机制
  • 读软件开发安全之道:概念、设计与实施14低级编码缺陷
  • 使用Redis如何实现集群会话同步?
  • 【STM32】通用定时器TIM(时钟源选择与更新中断)
  • 代码随想录算法训练营第三十九天| LeetCode62.不同路径、LeetCode63.不同路径II、LeetCode343. 整数拆分
  • Java后端数据一致性保障:分布式事务解决方案
  • laravel8快速开发简单博客系统(二)
  • Android 13.0 framework新增控制以太网开关功能实现
  • 一个最基本的多线程3D渲染器方案
  • Canvas 在 微信小程序-uni-APP 和 H5 中的使用差异