南京沁恒微电子的CH45x系列为数码管、按键驱动芯片。

CH42x系列为IO扩展芯片。CH422和CH423除了支持的OC数量有一些区别,在单片机的驱动上,并没有任何区别,驱动CH423的代码是可以套用在CH422上面的。

CH42x IO扩展芯片

1. CH42xIO扩展芯片有一个很重要的特点需要说一下,扩展的OC是上电默认高电平 ,所以如果直接继电器或者连接OC的设备需要默认低电平的,需要加一个反相器。

2. CH42x的接口为两线串口,虽然手册里面写的引脚名称是I2C的SDA和SCL,并且驱动代码也是使用的模拟的I2C,但是CH42x并不是标准的I2C接口,CH42x是没有地址的概念的,所以CH42x系列的芯片是不支持级联的。标准I2C时序的地址,被CH42x改为了一个命令。

3. CH423的8个GPIO,是统一设置输入输出方向的,默认为输入方向。

4. 如果是使用CH42x系列芯片每个IO单独驱动LED灯,电路设计建议为LED接高电平,即LED在CH42x输出低电平时点亮。如果为CH42x为高电平点亮的话,芯片在上下电时,在电压到复位电压时,会把寄存器复位,二寄存器默认时IO输出高电平,这样会出现上下电时所有IO控制的LED被突然点亮一下 的现象。解决方法就是电路改为低电平点亮即可。

CH45x 数码管显示驱动芯片

1. CH45x芯片的接口为两线串口(有部分支持4线的除外),虽然手册里面写的引脚名称是I2C的SDA和SCL,并且驱动代码也是使用的模拟的I2C,但是CH45x并不是标准的I2C接口,CH45x是没有地址的概念的,所以CH45x系列的芯片是不支持级联的。标准I2C时序的地址,被CH45x改为了一个命令。

2. 支持串行4线的(CH451和CH452)通讯就是SPI接口。

3. CH451和CH452支持4线方式多片级联:并行级联,串行级联。

4. CH45x系列的芯片是可以同时支持数码管动态显示和按键扫描的。

5. 如果只是使用CH45x的动态扫描按键,并且对功耗有一定要求的。以下为部分测试的数据。

  (1)CH450在只开了按键扫描的情况下,450在上电后,0.0013A。无显示驱动。MCU设置好后电流大约为0.0009----0.0010A。

  (2)CH455的电流大约为0.0025A。

6. 如果使用CH455芯片带驱动LED或者数码管的时候发现动态显示会出现肉眼可见的闪烁,那么需要去换芯片,芯片是由一定要求的,一定要选择沁恒官方丝印为20941xxxx批次的芯片。只有这个批次或者往后的芯片是支持关闭键盘扫描的。即KOFF位。具体可以看官方数据手册。

这个问题特地加粗一下,因为目前市面上是有20940批次的芯片。

统一问题:

在WCH的官方手册中,CH45x和CH42x的系统设置参数0x48后面字节是这样的:sleep位最高位,IO_OE为最低位,组成的8bit(1Byte)数据。

示例代码

目前官方的EVT包里面,给的是C文件和头文件,并不是一个完整的工程。如果想要参考一个完整MCU驱动工程的,可以去个人Gitee上git clone。是会持续更新的。

链接:个人Gitee

 Final

有关选型,电路设计以及一些常见问题的解决测试方式,可以下载这个,看压缩里面的Word文档,里面写的很详细。

CH45X系列选型、应用、常见问题汇总

http://www.wch.cn/public/uploads/file/20150403/1428051285117476.rar

有关WCH的CH42x以及CH45x选型,常见问题处理方法的更多相关文章

  1. ionic一些常见问题及方法

    1.打包的app无法访问互联网及网络资源(比如网页调试可以请求数据,安装到手机上无法请求数据) 添加白名单插件 ionic plugin add https://github.com/apache/c ...

  2. ionic一些常见问题及方法(网页链接式)

    ionic 进入二级目录以后隐藏底部导航栏(tabs) http://blog.csdn.net/shenshucong520/article/details/48287811ionic三级目录乃至多 ...

  3. C#.NET常见问题(FAQ)-方法参数带ref是什么意思

    写两个相同的方法,但是参数一个带ref,一个不带,从测试结果可以发现,a变量在ModifyValueByref之后发生了改变,而ModifyValueByvalue没效果     更多教学视频和资料下 ...

  4. DB常见问题排查方法

    一般情况下,系统多多少少都会遇到点问题,那么遇到问题之后我们怎么定位原因呢?在这里我只说如何定位DB的问题. 看这篇文章有个前提:监控数据要完整!监控数据要完整!!监控数据要完整!!!比如下面这个乍一 ...

  5. ffmpeg编码常见问题排查方法

    播放问题排查: 一旦我们遇到视频播放不了,第一件事,就是要找几个别的播放器也播放看看,做一下对比测试,或者对码流做一些基础分析,以便更好的定位问题的源头,而各个平台比较常见的播放/分析工具有如下几个: ...

  6. mongodb 常见问题处理方法收集

    问题1:非正常关闭服务或关机后 mongod服务无法正常启动 在使用中发现mongodb 的服务可能因为非正常关闭而启动不了,这时我们通过 删除data目录下的 *.lock文件,再运行下/mongo ...

  7. NodeJs操作MongoDB之分页功能与常见问题

    NodeJs操作MongoDB之分页功能与常见问题 一,方法介绍 1,聚合操作之count count()方法可以查询统计符合条件的集合的总数 db.User.count(<query>) ...

  8. NodeJs操作MongoDB之多表查询($lookup)与常见问题

    NodeJs操作MongoDB之多表查询($lookup)与常见问题 一,方法介绍 aggregate()方法来对数据进行聚合操作.aggregate()方法的语法如下 1 aggregate(ope ...

  9. Swift 可选型

    1.可选型 Swift 语言为我们提供了一种全新的.更加安全的类型 "可选型".可选型是使用范型枚举的形式来组织的,也就是说此特性可以运用于所有的类型.结构体.类或者其他复杂数据类 ...

  10. MES选型很困惑?避开这三个禁忌!

    MES系统的选型除了要充分剖析自己企业,掌握自己企业的需要.信息化的目标.自身的特点外,还要完全了解MES系统供应商,对其实力.软件性能.服务.用户.软件实施速度.价格进行了解与分析,这也是MES系统 ...

随机推荐

  1. Linux文本相关命令

    Linux文本相关命令 目录 Linux文本相关命令 文本排序命令 文本去重命令 基础命令cut 文本三剑客 sed awk grep 文本排序命令 sort 常用参数: -n:以数值大小进行排序 - ...

  2. C++函数模板和类模板的使用

    一.函数模板 #include<iostream>using namespace std;template<class T1,class T2>T1 add(T1 x,T2 y ...

  3. Js实现一键复制小功能

    function copyToClipboard(textToCopy) { // navigator clipboard 需要https等安全上下文 if (navigator.clipboard ...

  4. Atcoder CODE FESTIVAL 2016 Grand Final E - Water Distribution

    Atcoder CODE FESTIVAL 2016 Grand Final E - Water Distribution 题目链接:https://atcoder.jp/contests/cf16- ...

  5. 【翻译】Raft 共识算法:集群成员变更

    转载请注明出处:https://www.cnblogs.com/morningli/p/16770129.html 之前都在集群配置是固定的(参与共识算法的server集合)假设下讨论raft.在实践 ...

  6. 一个电器工厂可以生产多种类型的电器,如海尔工厂可以生产海尔电视机、海尔空调等,TCL工厂可以生产TCL电视机,TCL空调等,相同品牌的电器构成一个产品族,而相同类型的电器构成了一个产品等级结构,现使用

    一个电器工厂可以生产多种类型的电器,如海尔工厂可以生产海尔电视机.海尔空调等,TCL工厂可以生产TCL电视机,TCL空调等,相同品牌的电器构成一个产品族,而相同类型的电器构成了一个产品等级结构,现使用 ...

  7. 经典排序算法之-----选择排序(Java实现)

    其他的经典排序算法链接地址:https://blog.csdn.net/weixin_43304253/article/details/121209905 选择排序思想: 思路: 1.从整个数据中挑选 ...

  8. "一键重装系统软件"操作流程

    博主之前重装系统都是直接用win10系统更新里的重置系统(版本不会变化),和U盘重装电脑出厂映像(有各种品牌自带的软件,而且由于是出场版本,版本很低) 所以这次用"小白一键重装系统" ...

  9. Spring源码知识

    bean的生命周期: 实例化:在堆空间中申请内存,使用反射来实现:(createBeanInstance) 自定义属性赋值(setter).容器对象属性赋值(invokeAwareMethods) 前 ...

  10. 快读《ASP.NET Core技术内幕与项目实战》EFCore2.5:集合查询原理揭秘(IQueryable和IEnumerable)

    本节内容,涉及4.6(P116-P130).主要NuGet包:如前述章节 一.LINQ和EFCore的集合查询扩展方法的区别 1.LINQ和EFCore中的集合查询扩展方法,虽然命名和使用完全一样,都 ...