找回密码
 立即注册
查看: 1866|回复: 18

笑死,STC8G的I2C问题折腾三天,绝望的发帖前30秒解决……

[复制链接]
  • TA的每日心情
    慵懒
    2024-3-7 23:08
  • 签到天数: 2 天

    [LV.1]初来乍到

    1

    主题

    1

    回帖

    15

    积分

    新手上路

    积分
    15
    发表于 2023-2-19 03:10:45 | 显示全部楼层 |阅读模式
    本帖最后由 hyperma 于 2023-2-19 03:14 编辑

    我真的快疯了,买的2.23寸12832 OLED显示屏(不是模组),自己做的板子,打算把规划中的某机全部外部触发条件和显示屏内容,都用STC8G的大ROM装进去,但没想到在这个12832面前踢了铁板。

    由于我是从STM8叛变过来的,对I2C一向自认很有信心,10K上拉电阻,10p退耦降噪电容,Open Drain驱动,用官方库函数,已经玩得不能再熟练了。但这回无论怎么写程序,就是没有显示啊!

    示波器加逻辑分析仪一量,出现了奇怪的事情,连续发射多个字符后会出问题!I2C发射从机地址、寄存器地址,都OK,偏偏从第三组8bit数据开始出问题,缺一位!

    怎么缺呢?比如我连续发射0x78,0x40,0x05这一组固定数据,从第三次开始,05开始变成04!就是说00000101变成了00000100!怎么折腾都这样,于是我折腾了三天。足足三天啊!换驱动、换成模拟I2C模式、降速,都不成……。


    实在不行了,凌晨想上来发帖子求救,刚注册需要等两分钟……。唉,揉揉已经通红的眼睛看会儿帖子吧,偶然看到了版主的帖子里讲了输出的PP推挽模式,由于STM8内部上拉电阻非常弱,大概33-62k之间的样子,我一向基本不用,虽然知道STC有4k的上拉电阻,可以驱动晶体管拉动继电器了,但习惯上基本从未把芯片设置成PP模式,闲着也是闲着,初始化函数里改两个字母看看吧……。

    OLED出图像了!我……

    然后用逻辑分析仪抓了一下数据,正常了……。这是为什么啊!为什么啊!真心向版主求教,是否说STC8的准双向口可以省却外部上拉电阻了?还是说Open Drain模式的输出是有问题的?

    回复 送花

    使用道具 举报

    该用户从未签到

    551

    主题

    9261

    回帖

    1万

    积分

    管理员

    积分
    14005
    发表于 2023-2-19 07:17:15 | 显示全部楼层
    I2C,  MCU/外设如都工作在同一个电压,
    I/O应设置在开漏或准双向口模式,不应设置在强推挽
    估计  投诚的新兄弟看错了设置
    1.png

  • TA的每日心情
    慵懒
    2024-3-7 23:08
  • 签到天数: 2 天

    [LV.1]初来乍到

    1

    主题

    1

    回帖

    15

    积分

    新手上路

    积分
    15
     楼主| 发表于 2023-2-19 09:56:22 来自手机 | 显示全部楼层
    回长官,应该不会,我没有用寄存器配置,而是通用驱动里的GPIO配置函数。有通用驱动我是不会用寄存器的,毕竟跑过来就图个花天酒地……。

    该用户从未签到

    46

    主题

    2930

    回帖

    6593

    积分

    超级版主

    积分
    6593
    发表于 2023-2-19 10:54:11 | 显示全部楼层
    同电压的推荐准双向口或开漏,允许内部4K上拉或外挂5.1K上拉电阻。Open Drain模式的输入输出都没有任何问题。

    楼主这种情况,示波器一看便知。看这种信号有时候用逻辑分析仪反而不好(特别是那种山寨的便宜货),看不了精细的信息。
  • TA的每日心情
    擦汗
    昨天 08:53
  • 签到天数: 149 天

    [LV.7]常住居民III

    137

    主题

    188

    回帖

    1615

    积分

    金牌会员

    积分
    1615
    发表于 2023-2-19 14:03:40 | 显示全部楼层
    所以说嘛,玩st的都玩糊涂了

    该用户从未签到

    551

    主题

    9261

    回帖

    1万

    积分

    管理员

    积分
    14005
    发表于 2023-2-19 17:05:49 | 显示全部楼层
    回国参加革命不分早晚,能回来支援祖国建设都是好同志!
    我改行搞思想建设已 N 年,各种新式武器已不亲自操作,估计还是害人弱智的库函数的通病

    库函数不求甚解,设错了,多试几个组合能通过,就往下继续走了

    明我请陈工在本贴讲下 库函数 I/O工作模式的设置

    该用户从未签到

    551

    主题

    9261

    回帖

    1万

    积分

    管理员

    积分
    14005
    发表于 2023-2-19 17:13:26 | 显示全部楼层
    1.png
    1.png

    1.png
    2.png
    3.png

    STC32库函数使用说明-20230217.pdf

    7.59 MB, 下载次数: 50

    该用户从未签到

    551

    主题

    9261

    回帖

    1万

    积分

    管理员

    积分
    14005
    发表于 2023-2-19 17:22:02 | 显示全部楼层
    Open Drain模式的输出是有问题的?====要外部加上拉,或打开内部4K独立上拉电阻

    准双向口/弱上拉====往往拉的速度不够快, 不够强

    该用户从未签到

    6

    主题

    17

    回帖

    114

    积分

    注册会员

    积分
    114
    发表于 2023-11-21 17:44:03 | 显示全部楼层
    梁工 发表于 2023-2-19 10:54
    同电压的推荐准双向口或开漏,允许内部4K上拉或外挂5.1K上拉电阻。Open Drain模式的输入输出都没有任何问题 ...

    你好在这种状态下, 我是不需要外接电阻上拉是吧? 我这两天也遇到了这个问题, 调整了好几遍io口状态, 偶尔成功, 偶尔有不行了

    点评

    同系统电压的,准双向口+内部上拉4K。  详情 回复 发表于 2023-11-21 18:40
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 08:47
  • 签到天数: 142 天

    [LV.7]常住居民III

    29

    主题

    559

    回帖

    2114

    积分

    荣誉版主

    积分
    2114
    发表于 2023-11-21 18:16:30 | 显示全部楼层
    我的I2C都是   开漏(OD)+上拉

    不用强推挽(PP)
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-2 06:04 , Processed in 0.069702 second(s), 68 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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