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

迅龙3号基于兆讯MH22D3适配CST328多点触摸驱动开发笔记

MH22D3芯片是兆讯公司新推出的基于cortex-M3内核的新一代芯片,专注于显示应用,其主频高达216Mhz,64KB SRAM,512KB Flash,开发UI应用游刃有余。详细介绍请看:MH22D3新一代显控应用性价比之王
新龙微基于MH22D3推出了“迅龙3号”开发板,方便快速评估和测试验证芯片性能,板载丰富资源,提供扩展接口:
在这里插入图片描述

开发板配套显示屏和电容TP,分辨率支持320x240,触摸屏支持5点触摸,报点率达100Hz。
触摸屏使用了海栎创比较高端的芯片CST328,网络上资料相对较少,驱动开发容易踩坑。
迅龙3号完整适配了这一款触摸芯片,提供完整的驱动源代码,代码下载地址:
迅龙3号开发板资料下载链接:
链接: https://pan.baidu.com/s/1vVlPRQDwgi_Ffdx5TAPTYw?pwd=ugjx 提取码: ugjx
在这里插入图片描述
下面记录了CST328开发过程中的一些问题:

  1. 初始化问题
    I2C接口和TP IO(复位和INT)初始化后读器件信息,会有不规律的中断信号。
    针对这种情况,要在完成读取信息后再打开中断信息,等待上报TP触摸信息
    在这里插入图片描述
  2. 寄存序号问题
    海栎创规格书《CST328数据手册V2.2.pdf》里面的数据有误:
    在这里插入图片描述
    正确的寄存器序号应该如下,特别是读芯片类型来判断芯片的时候很重要:
    在这里插入图片描述
    3.TP数据读取
    TP采用中断方式上报数据,读取程序一般是采用阻塞方式的,也就是说在读取寄存器数据期间,几乎是全部占用MCU的,所以速度一定要快,尽量降低对MCU的占用时间,下面是一个参考,可以根据自身板子的情况做微调和验证,确认最高通讯速率:
    I2C时钟:373Khz
    TP上报数据间隔:7.57ms
    读取7个寄存器时间:335us
    MCU占用率:0.335/7.57=4.3%
    在这里插入图片描述
  3. CST328和CST826系列的差异
    CST826的寄存器是1个字节,CST328的寄存器是2个字节,写的时候要分两次写入寄存器序号,读回来的数据byte0在前面,然后依次是byte1,byte2,byte3,和数据标准相对应。
static bool tp_reg_write(uint16_t reg_addr, uint8_t *reg_data, uint8_t cnt)
{I2C_ACK_STATUS ack;I2c_Start();I2c_WriteByte(TP_IIC_SLAVE_ADDR);I2c_WriteByte(reg_addr >> 8);  //registerI2c_WriteByte(reg_addr & 0xFF); //nackif((reg_data != NULL) && cnt){for ( uint16_t i = 0; i < cnt; i++ ){I2c_WriteByte(reg_data[i]);}}I2c_Stop();return true;
}

文章为原创,转载需注明出处,未经书面允许,请勿用于商业用途

http://www.lryc.cn/news/2378282.html

相关文章:

  • 【001】.so文件分析之 ELF格式符号
  • QT之LayOut布局
  • 无需配置光猫,使用网管交换机配合路由器的IPTV功能实现单线复用
  • C++类与对象--1 特性一:封装
  • Linux:计算机的层状结构
  • 【SpringBoot】关于MP使用中配置了数据库表前缀的问题
  • AI 赋能防艾宣传:从创意到实践,我的 IP 形象设计之旅
  • Redis 事务与管道:原理、区别与应用实践
  • 每日算法刷题Day9 5.17:leetcode定长滑动窗口3道题,用时1h
  • 手机打电话时如何将通话对方的声音在手机上识别成文字
  • 重排序模型解读:gte-multilingual-reranker-base 首个GTE系列重排模型诞生
  • C++学习:六个月从基础到就业——C++11/14:列表初始化
  • SQL语句执行问题
  • 2025系统架构师---选择题知识点(押题)
  • flutter flutter run 运行项目卡在Running Gradle task ‘assembleDebug‘...
  • P5682 [CSP-J2019 江西] 次大值
  • Elasticsearch 性能优化面试宝典
  • 【论文阅读】人脸修复(face restoration ) 不同先验代表算法整理2
  • 无监督学习在医疗AI领域的前沿:多模态整合、疾病亚型发现与异常检测
  • 计算机操作系统概要
  • C语言进阶-数组和函数
  • 图片通过滑块小图切换大图放大镜效果显示(Vue3)
  • [SSL]1Panel添加阿里云DNS账户
  • C语言编程中的时间处理
  • 计算机网络 : 网络基础
  • C++跨平台开发:突破不同平台的技术密码
  • 实现 STM32 PWM 输出:原理、配置与应用详解
  • Web 架构之负载均衡会话保持
  • 第一次做逆向
  • 【Linux网络】传输层协议TCP