历史上的今天
返回首页

历史上的今天

今天是:2025年04月15日(星期二)

正在发生

2018年04月15日 | STM32-IIC模拟从模式

2018-04-15 来源:eefocus

这里是讲的模拟IIC,不是采用硬件IIC。为啥用软件模拟IIC而不用硬件IIC? 除了ST的IIC模块本身问题,还因为硬件IIC移植不方便,在不同的MCU中无法通用;而且有的项目需要在IIC主从模式切换。

网上的资料大部分都是模拟IIC主模式的,很少有资料告诉我怎么实现模拟IIC从模式。

因为特殊要求,我们在做汽车电容屏升级的时候,要扔掉原车屏的一个部件,即IIC从机部分,只保留IIC主芯片,并采用STM32替代被扔掉的IIC从机功能,而且在不同应用内容下,需要切换IIC的主从工作模式。

要实现IIC从机功能,最核心的部分就是如何精确的抓住IIC_SCL,也就是IIC主机发出来的时钟信号。只有抓住精确的时钟SCL,才能正确的读取到SDA的数据,才能真正模拟出IIC时序。

但是要抓住SCL信号可不容易,IIC最高速度有400K,最小有效脉宽达到1.4us(数字0/1),最小脉冲是0.8us(应答和STOP信号产生的尖刺),采用中断来识别SCL是不可能的做到的,因为即使在最高主频72MHZ情况下,STM32最小指令周期是1/72(us),从SCL中断发生到STM32进入中断响应,至少要要40个指令周期,也就是40/72(us),加上堆栈操作及变量,很可能已经错过了SCL信号。


图1.高速模式下IIC波形


图2 应答和STOP信号产生的尖刺

所以只能采用查询方式来识别SCL,而到目前为止,我还没有看到哪篇文章是采用查询SCL的方式来模拟IIC从模式。

所以很多文章说模拟IIC从模式的内容都是假的,要么骗人要么就是从来没有实践过。

写这篇文章,就是想提醒很多跟我一样的人,不要老是拷贝别人的程序,以为改改就行了的,这样的想法肯定是会吃苦头的;

越是简单的事情,越是要多花时间来理顺,因为这是大厦的基石;

这是花了好多时间走了很多弯路,很愤怒差点被带沟里的博主,写于20160711。


推荐阅读

史海拾趣

EiKO Global LLC公司的发展小趣事

随着LED技术的不断成熟,EiKO敏锐地意识到这将为照明行业带来革命性的变革。于是,公司投入大量研发资源,开始研发LED照明产品。经过数年的努力,EiKO成功推出了一系列高效、节能、环保的LED照明产品,如LED灯具、LED改装和替换灯等。

这些LED照明产品不仅具有出色的性能和品质,还满足了不同用户的需求。例如,EiKO的LED灯具适用于室内和室外各种场所,包括高棚、超薄面板、暗灯槽等;而LED改装和替换灯则为用户提供了多种瓦数、形状和色温的选择,满足不同场景下的照明需求。

客益(Guestgood)公司的发展小趣事

随着智能家居和物联网技术的兴起,EiKO开始积极探索智能照明系统的研发与应用。公司投入大量研发资源,将传统照明产品与智能控制技术相结合,推出了具有远程控制、定时开关、色温调节等功能的智能照明系统。

这些智能照明系统不仅提高了用户的使用体验,还为用户带来了更加便捷和智能的生活方式。例如,用户可以通过手机APP远程控制家中的照明设备,实现定时开关和色温调节等功能;同时,智能照明系统还可以与智能家居系统相连接,实现与其他智能设备的联动控制。

Fagor Electrónica公司的发展小趣事

进入1960年代,Fagor Electrónica迎来了其发展的第一个重大里程碑。1964年,公司成功启动了第一批硅整流器的制造。这一创新不仅提高了产品的性能,还为公司带来了更大的市场份额。硅整流器的推出标志着Fagor Electrónica在电子制造技术上的领先地位,也为其后续的发展奠定了坚实的基础。

Holy Stone公司的发展小趣事

近年来,Holy Stone不断加大在技术研发和产品创新方面的投入。公司致力于研发适用于节能产品应用所需的被动元件,帮助客户提升产品能源转换效率。在全球汽车电子化发展的背景下,Holy Stone正式跨入车用电子供应链,以提供优质元件的能力协助汽车电子达到最佳数位化。这些技术创新不仅推动了公司产品的升级换代,还为公司开拓了新的市场领域和增长点。

以上五个故事展示了Holy Stone公司在电子行业中的发展历程和成就,每个故事都体现了公司在不同方面的努力和成果。

GD Rectifiers Ltd公司的发展小趣事

面对数字化时代的到来,GD Rectifiers Ltd主动拥抱变革,积极推进数字化转型。公司投入巨资建设了先进的数字化生产管理系统和客户关系管理系统,实现了生产过程的智能化和透明化。通过数据分析和挖掘技术,公司能够更准确地把握市场需求和客户需求的变化趋势,为产品研发和市场营销提供有力支持。同时,公司还加强了与供应商和客户的数字化连接和协作,提高了供应链的协同效率和响应速度。数字化转型的成功实施为GD Rectifiers Ltd注入了新的活力,进一步提升了公司的市场竞争力和行业地位。

DALLAS公司的发展小趣事

在1980年代,Dallas公司凭借其创新的DS1820温度传感器产品,成功打开了新市场的大门。这款温度传感器以其高精度、低功耗和易于集成的特性,赢得了众多客户的青睐。它的推出不仅为Dallas公司带来了显著的收入增长,也为公司后续的产品研发和市场拓展奠定了坚实的基础。

问答坊 | AI 解惑

征集一条气死老板的离职理由

过完春节准备离职了 现在的工作就是消磨意志 工资也特低 民工中的民工 每天浑浑噩噩浑浑噩噩浑浑噩噩的过 满怀激情的来 经历过很多次“洗脑” 还是没有被同化 还是有一股子傲气和不安分 失望的离开 憧憬新的开始…

查看全部问答>

2.4G天线信号传输损耗

损耗是指在传输过程中因传输介质等因素引起的能力损失。…

查看全部问答>

pdu usc-2 中文编码

我在linux下开发短信,使用开源的smstools来开发。 使用pdu模式时,发现对英语与数字可以很简单地实现。 但使用中文信息时,发现移动发过来的pdu报文解不正确。 如报文:测试 =“6D4B8BD5” 将两位一组转换为16进制数值,再转换为无符号字符。 ...…

查看全部问答>

寻求指引:不知如何问起的问题,关于和PC通讯方面(软硬驱动都需要)

(我一直做软件,虽然对Windows核心也有所了解,但却从未真正写过驱动,也未写过单片机软件,提的问题可能很不专业,请多包涵,多给点指引) 简单的说,可能这样:公司安排我项任务,改进一些旧的仪器。以前所有的仪器都是用RS232跟电脑连接的,我 ...…

查看全部问答>

各位大哥,你们好,我的朋友想学习plc但不知道用什么开发工具,希望你们能提供一些信息!谢谢

各位大哥,你们好,我的朋友想学习plc但不知道用什么开发工具,希望你们能提供一些信息!谢谢…

查看全部问答>

想应聘嵌入式软件开发工程师,不知道看些什么书好

对嵌入式系统几乎知道很少知识     但是想应聘嵌入式软件开发工程师,不知道临时补充些什么知识,并且希望大家能推荐出书目来,谢谢 …

查看全部问答>

LM3S9997 J-LINK KEIL

LM3S9997 J-LINK KEIL 这几天做了个LM3S9997的最小系统。。。。 JTAG已经连接上了。。。读到的IDCODE是 0X4BA00477。。。然后用打开LM3S8662的一个LED例程。。。   有个错误。无法下载程序:error :flash DOWNLOAD FAILED - CORTEX-M3 好 ...…

查看全部问答>

STM8S常见问题大杂烩

最近再使用STM8S207RB进行开发,以下是自己使用cosmic时遇到的一些常见问题: 1.printf/sprintf入口参数必须是u16类型,否则打印结果不正确,很奇怪 2.u32位类型的判断if ((val%0x1000) == 0)此判断前必须强制转换,即     if ((u ...…

查看全部问答>

变压器制作知识

本帖最后由 paulhyde 于 2014-9-15 04:02 编辑 变压器制作大家一起学  …

查看全部问答>

ZigBee CC2531,3块 智能家居开发板----演示绑定与控制 LED

ZigBee 开发板 3块;视频:http://v.youku.com/v_show/id_XMzA1ODU1MzQ0.html$(\'swf_p4Q\').innerHTML=AC_FL_RunContent(\'width\', \'550\', \'height\', \'400\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src\ ...…

查看全部问答>