找回密码
 立即注册
查看: 694|回复: 16

STC8A8K64D4软件模拟IIC失败

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2024-07-16 16:50:24

2

主题

16

回帖

90

积分

注册会员

积分
90
发表于 2024-7-15 22:49:17 | 显示全部楼层 |阅读模式
        家人们,我最近准备用STC8A8K64D4芯片开发一款桌面摆件,其中用到了0.96寸的0LED屏幕显示。但是IIC软件模拟死活用不了,但有个很奇怪的现象:我偶尔开启摆件之后,OLED屏幕能显示,但是大部分情况都不能,很不稳定。现在我的疑惑是软件模拟需要用开漏输出还是推挽输出?
        我现在用的方案如下:
        1. 开始时 SDA 和 SCL 都是推挽输出,并且我把外部上拉电阻焊掉了,没保留
      

        2.当到应答模式时,SDA 改为 标准输入输出

       但是就是死活不行,求求各位大佬指点一手,非常感谢


      附上原理图、pcb图和实物代码图


   
      

原理图

原理图

pcb图

pcb图

头文件定义

头文件定义

时序代码

时序代码
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2024-07-16 16:50:24

2

主题

16

回帖

90

积分

注册会员

积分
90
发表于 2024-7-15 22:53:12 | 显示全部楼层
各位大佬,是不是和我的频率有关系呢,现在用的是12mhz的主频,我用stm32F103使用72mhz成功移植了oled屏幕,这个是不是频率太低无法驱动oled呢
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:365
  • 最近打卡:2025-05-02 00:20:03

6

主题

319

回帖

2206

积分

金牌会员

积分
2206
发表于 2024-7-15 23:31:37 | 显示全部楼层
I2C用推挽,不怕烧芯片吗?

回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:365
  • 最近打卡:2025-05-02 00:20:03

6

主题

319

回帖

2206

积分

金牌会员

积分
2206
发表于 2024-7-15 23:33:23 | 显示全部楼层
OLED点屏不难,I2C更容易,随便找个例程翻翻看就会了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-7-16 00:18:23 | 显示全部楼层
用硬件I2C啊,硬件的太好用了
IO模式设置为双向或开漏(感觉双向由低变高时有2个时钟强上拉,发送时能加速电平翻转,好一些),开内部4K上拉,可以不要外部电阻

频率低没有问题,高不行,示波器或逻辑分析仪测一下I2C时钟频率
时钟占空比50%时频率最高,可以超频到900多k(额定400k),不要大于1M(SOLOMON SYSTECH 的 COG IC

DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:456
  • 最近打卡:2025-05-02 08:26:53
已绑定手机

27

主题

341

回帖

1691

积分

金牌会员

机长

积分
1691
发表于 2024-7-16 10:38:53 | 显示全部楼层
都用上STC8A8K64D4,为啥还要软件模拟IIC啊?直接用硬件IIC多好呀……
业余撸代码,专业开飞机
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2024-07-16 16:50:24

2

主题

16

回帖

90

积分

注册会员

积分
90
发表于 2024-7-16 16:47:35 | 显示全部楼层
网*** 发表于 2024-7-15 23:31
I2C用推挽,不怕烧芯片吗?

我这个只是3v的电池供电而已,应该不至于吧
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2024-07-16 16:50:24

2

主题

16

回帖

90

积分

注册会员

积分
90
发表于 2024-7-16 16:47:51 | 显示全部楼层
hsr*** 发表于 2024-7-16 10:38
都用上STC8A8K64D4,为啥还要软件模拟IIC啊?直接用硬件IIC多好呀……

硬件给另一个温湿度用了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2024-07-16 16:50:24

2

主题

16

回帖

90

积分

注册会员

积分
90
发表于 2024-7-16 16:48:26 | 显示全部楼层
wnag*** 发表于 2024-7-16 07:21
I2C还是用开漏模式吧,你都加了上拉电阻了,怎么想不开使用推挽模式呢?

好的,我试试
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2024-07-16 16:50:24

2

主题

16

回帖

90

积分

注册会员

积分
90
发表于 2024-7-16 16:49:14 | 显示全部楼层
Debu*** 发表于 2024-7-16 00:18
用硬件I2C啊,硬件的太好用了
IO模式设置为双向或开漏(感觉双向由低变高时有2个时钟强上拉,发送时能加速 ...

现在pcb都搞好了,换不过去了,之前是听别人说硬件可能有问题,就用了软件模拟,说多了都是泪啊~

点评

那也要先搞到硬件I2C的IO,用不用再说 我这用的好好的 https://www.stcaimcu.com/forum.php?mod=viewthread&tid=4612 https://www.stcaimcu.com/forum.php?mod=viewthread&tid=4613 https://www.stcaimcu.com/for  详情 回复 发表于 2024-7-16 16:56
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 08:41 , Processed in 0.121231 second(s), 113 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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