找回密码
 立即注册
查看: 323|回复: 8

AI8H8K64U 读取PCF8563失败

[复制链接]
已绑定手机

4

主题

4

回帖

32

积分

新手上路

积分
32
发表于 2025-1-4 15:52:58 | 显示全部楼层 |阅读模式
事情是酱色儿的:

用Arduino Nano读取PCF8563默认情况下一切正常,
用TSSOP20的AI8H8K64U就不行,用的默认的P1.4, P1.5, 读到是乱码,且需要等待才会返回
然后用AI8G1K8 DIP16做了一个I2C SLAVE,8H是能够读到8G的正确数据,速度响应很快!
想到PCF8563最大速度是400KHz,所以按DataSheet把AI8H8K64U的I2CCFG也设置为匹配400Khz,甚至更低,但都不行,
这时没辙了,再把8G拿来试试做reader,结果竟然就可以了,400K的速度响应很快,一点问题没有。
8G和8H代码都是一样的,只是切换端口的部分不同,8H是用的默认,8G切了一下。
不知道还有什么B门。


对了,I2C使能的内部上拉4.2K电阻,难道跟这个有关?


回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2025-1-4 16:05:12 | 显示全部楼层

码放上来瞅瞅?

参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:417
  • 最近打卡:2025-04-30 21:39:09
已绑定手机

34

主题

2096

回帖

2206

积分

荣誉版主

积分
2206
发表于 2025-1-4 19:00:26 | 显示全部楼层
I2C使能的内部上拉4.2K电阻要配合准双向或者开漏输出模式,实测没有问题,另外I2C有多重端口映射,需要搞清楚在哪一组IO上,实在不行就把代码和原理图贴上来,大家分析下
睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:513
  • 最近打卡:2025-05-02 07:32:37

21

主题

564

回帖

2678

积分

金牌会员

积分
2678
发表于 2025-1-4 22:51:51 | 显示全部楼层
如果SDA、SCL两根线外面没有接4.7k上拉电阻到VCC的话,片子里面要使能上拉电阻,我用STC8H8K64U 读取AHT20温湿度模块的时候就是这样,电路上没接上拉电阻,死活通讯不上,内部使能上拉电阻后,顺利读取出来温度、湿度
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:424
  • 最近打卡:2025-05-03 00:02:01
已绑定手机

19

主题

3191

回帖

4876

积分

论坛元老

积分
4876
发表于 2025-1-4 23:41:58 | 显示全部楼层
wangxi*** 发表于 2025-1-4 22:51
如果SDA、SCL两根线外面没有接4.7k上拉电阻到VCC的话,片子里面要使能上拉电阻,我用STC8H8K64U 读取AHT20 ...

没上拉还读不出来,还会这样啊,看了模块电路图都是没上拉的,难道都要开内部上拉。

点评

要开的,不然上升沿速度不够  详情 回复 发表于 2025-1-5 10:17
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:425
  • 最近打卡:2025-05-03 00:09:43
已绑定手机

77

主题

4850

回帖

8388

积分

超级版主

DebugLab

积分
8388
发表于 2025-1-5 10:17:08 | 显示全部楼层
so*** 发表于 2025-1-4 23:41
没上拉还读不出来,还会这样啊,看了模块电路图都是没上拉的,难道都要开内部上拉。 ...

要开的,不然上升沿速度不够
DebugLab
回复 支持 反对

使用道具 举报 送花

已绑定手机

4

主题

4

回帖

32

积分

新手上路

积分
32
发表于 2025-1-5 18:27:37 | 显示全部楼层
花了两天终于知道原因了,猜测还是上拉的问题,检查DataSheet定义都没错,打开STCHX.h,发现一行注释:
//如下特殊功能寄存器位于扩展RAM区域
//访问这些寄存器,需先将P_SW2的BIT7设置为1,才可正常读写
检查代码,原来初始化上拉刚好放到P_SW2设置之前了
8G可以是因为切换管脚,在库函数hardiic_init()之后进行了覆盖配置,也可以解释为啥8H读8G是正常,因为靠的8G的上拉。



又想到两个问题:
假如主从机都开启上拉,那岂不是相当于并联,电阻小了一半,有没啥影响呢?
这个P_SW2经常搞出问题,为何设计这么一个开关呢?(位于扩展RAM的原因?哪为啥要放到扩展RAM?)很多时候看示例代码都是直接打开也不关,有没有专家讲讲。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:123
  • 最近打卡:2025-04-19 16:12:35
已绑定手机

60

主题

777

回帖

4001

积分

论坛元老

自定义头衔

积分
4001
发表于 2025-1-5 18:41:08 | 显示全部楼层
bvio*** 发表于 2025-1-5 18:27
花了两天终于知道原因了,猜测还是上拉的问题,检查DataSheet定义都没错,打开STCHX.h,发现一行注释:
// ...

哈哈哈哈,原来是这样啊

等于寄存器没配
联系我请点击左下角的【回复】按钮,否则我收不到消息提
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:424
  • 最近打卡:2025-05-03 00:02:01
已绑定手机

19

主题

3191

回帖

4876

积分

论坛元老

积分
4876
发表于 2025-1-5 19:48:29 | 显示全部楼层
bvio*** 发表于 2025-1-5 18:27
花了两天终于知道原因了,猜测还是上拉的问题,检查DataSheet定义都没错,打开STCHX.h,发现一行注释:
// ...

估计寄存器太多了,只能部分放扩展RAM了。
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-3 00:54 , Processed in 0.177466 second(s), 117 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表