Posted in

安凯 AK3918AV130 首次开发笔记

  • u-boot 参数 mtdparts=spi-nor,在 AK3918AV100 原是 mtdparts=spi0.0,这个如果从 AK3918AV100 项目移植的要注意;
  • ⚠️ AK3918AV130 核电压要提高到 0.9V,区别于 AV100 的 0.8V;
  • 加入 __CHIP_AK3918AV130_SERIES 定义,以区分 KM01 方案;
  • motor 驱动里面用到的 attach_timer 分别是 2,3,其他不能用,其他的定时器应该已经被其他驱动占用了,属于一个设计潜规则;
  • ⚠️ 电源启动顺序 0.9V -> 3.3V -> 1.5V,后两个与 AK3918AV100 有一点差别,这个问题隐藏得很深,我排查调试了很久;
  • 如果驱动 check_id=1 异常,但是在 I2C 上读到数据,通过  cat /proc/i2c0 查看目前能找到的设备是什么;
  • 可以通过查看 /var/platform/VI/param 查看目前编码配置;
  • ak_mci 前驱动依赖 mmc_core,需要在加载 mmc_core 之后加载;
  • ⚠️ ak_mci 加载以后,有一段时间 mmc 还未能工作,因此如果后续需要比较紧密的 SD 卡业务,需要在挂载 ak_mci 之后进行一下延时;
  • ⚠️ NPU 不能使用 AK3918AV100 的模型,要独立更新 AK3918AV130 SDK 内的模型文件;
  • ak_tsensor 这个接口在 PDK1.0 加载会异常,具体表现是硬件中断会奇高,导致其他驱动模块异常,后续的 PDK 有修正,使用注意版本;
  • u-boot 也需要配置独立 dts,在目录 arch/arm/dts/EVB_CBD*,没有 N 后缀的表示 AV130L,生成 u-boot.bin 使用;
  • ⚠️ u-boot.bin 编译出来不能直接烧录,需要使用 USB 烧录工具制作一次离线固件,补充前面一段初始化内存的代码,这个沿用安凯一贯的设计;
  • ⚠️ u-boot.bin 里面的 deconfig 配置需要配置正确的 FLASH 1 线或者 4 线,如果不匹配会造成 u-boot 启动无法读取 env 复位;
  • ⚠️ u-boot.bin 与内核使用两套独立的 dts,u-boot 的 dts 改成 1 线以后,内核的 dts 也需要。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注