硬件IIC 和软件IIC
求大神指教下,硬件IIC和软件IIC的优缺点?硬件IIC有何资源可以参考?目前想用PIC的芯片。 PIC的片子,建议用软IIC,灵活一些。 如果使用PIC的单片机好像官网上应该会有例程的,楼主可以找找 软I2C是用CODE拖拉IO模拟的,需要占用CPU。硬件的就是配置寄存器,硬件产生I2C读写时序。 mon51 发表于 2014-8-1 21:12PIC的片子,建议用软IIC,灵活一些。
PIC 的硬件IIC看论坛上好像评价不是很好!{:sad:} 想用软件IIC,但是怕精准度不高! uindex 发表于 2014-8-5 16:31
软I2C是用CODE拖拉IO模拟的,需要占用CPU。硬件的就是配置寄存器,硬件产生I2C读写时序。 ...
{:lol:} 理解!! Lu.Shi 发表于 2014-8-5 16:26
如果使用PIC的单片机好像官网上应该会有例程的,楼主可以找找
恩恩 好的谢谢! az8898l 发表于 2014-8-6 07:17
PIC 的硬件IIC看论坛上好像评价不是很好! 想用软件IIC,但是怕精准度不高! ...
软件模拟没问题的,就是耗点cpu
zgxcom123 发表于 2014-8-6 07:20
软件模拟没问题的,就是耗点cpu
我试试效果!!谢谢! az8898l 发表于 2014-8-6 07:17
PIC 的硬件IIC看论坛上好像评价不是很好! 想用软件IIC,但是怕精准度不高! ...
IIC 没有什么精度问题,只是占用一点MCU的时间。 软件模拟IIC移植起来比硬件IIC更方便 看速率,看芯片,芯片定时器精确度差的 就用硬件的iic 或者低速率通信,保守一点9K6一下。 我的习惯是能有硬件的就用硬件. SPI .IIC 等都是用内部硬件模块. wangjiati 发表于 2014-8-6 19:44
我的习惯是能有硬件的就用硬件. SPI .IIC 等都是用内部硬件模块.
支持。!! 如要高速I2C 主/从, 用硬I2C。。
如是低速, 软或硬I2C都可以。。 硬件可能有点复杂,比Spiuart啥的麻烦一些,一个小问题搞好久搞不明白。如果时间不多,先用软件搞出来。硬件有时间慢慢研究。 I2C不太建议硬件I2C 设计的时候把口预留中硬件的口上,到时硬件还是软件就可以自由切换和选择了 24H系列的硬件IIC驱动能力不够强,改用软件IIC了 一直用软件IIC,都懒的弄硬件的了 其实有硬件I2C的话,尽量用硬件的,用中断,可降低单片机处理时间占用。 如果有可能,还在写一个硬件IIC策略吧,在不同的平台移植也不会很难。软件IIC太浪费资源了。 有很多工程师有懒惰的嫌疑。
用硬件IIC。 i2c 软件很难做得很完善吧? IIC单独用硬件肯定是不占用CPU资源 会好点 硬件I2C在驱动完美的前提下推荐使用。软件I2C消耗CPU资源,速度也上不去,在复杂应用中极大降低系统效率。 我也一般是接在硬件IIC上,软硬件到时候自由选。程序不复杂一般我都是移植软件,硬件麻烦 速度没有特别要求,一般都用软 LZ好人丫丫丫丫丫丫 灵活性来讲,用软IIC 楼主,这个要看应用场合。
要求高的话,建议用硬件的I2C。 看需求, 能用硬件还是用硬件吧 如果是开机读一次的,软IIC方便,可以使用现成的代码,略做移植。如果是运行中高频使用IIC,就用硬件IIC,让CPU运行快点。 曾经PIC4F的I2C折腾了一个多月都没搞定,后来再也不用PIC的I2C了 硬件IIC吧,我建议
这个东东,硬件技术已经很成熟了 能用硬件还是硬件的吧,软件的就是移植起来方便,练功,还是硬件比较好,不占系统资源 同意楼上的,硬件不占资源 软件IIC 会占用点CUP,有时误差也会累积起来,到时还要处理的 其实不光是I2C,其它总线用软件和硬件实现的区别都差不多,
软件模拟总线的优点:网上示例程序多,只涉及IO相关寄存器,移植简单;
缺点:占用CPU
硬件总线的优点:不占用CPU,配置完寄存器后,写数据缓存,然后置位发送位,总线就自动开工,CPU就可以干别的了;
缺点:需要配置相关寄存器,可移植性差,除了一些用户量大的MCU,小众MCU基本上找不到示例程序,得自己参照PDF写驱动。 穷折腾 发表于 2014-9-13 09:23
其实不光是I2C,其它总线用软件和硬件实现的区别都差不多,
软件模拟总线的优点:网上示例程序多,只涉及IO ...
总结的好! 建议用软件IIC方便以后移植 有硬件用硬件,没有的就用模拟的。 配寄存器控制的开发方便快捷,自己刻波形的能兼容一些奇奇怪怪的外设 软硬都用吧 穷折腾 发表于 2014-9-13 09:23
其实不光是I2C,其它总线用软件和硬件实现的区别都差不多,
软件模拟总线的优点:网上示例程序多,只涉及IO ...
其实,IIC和其他总线(比如UART、SPI、IIS等)真的区别好大的,不能混为一谈。
作为从机,IIC软件模拟真的不是只涉及IO相关寄存器,移植也不简单哦。要模拟IIC从机,估计难度不亚于USB从机,主要是时序跟不上。事实上,软USB的方案都满天飞了,IIC从机的实现少之又少。
IIC主机的仲裁机制(多主模式),有几个软件模拟实现过?
IIC软件实现的只不过是阉割版的阉割版,还真想跟硬件的一较短长,真是贻笑大方。 基本上用软件,硬件的太容易出问题了 takashiki 发表于 2014-9-14 11:54
其实,IIC和其他总线(比如UART、SPI、IIS等)真的区别好大的,不能混为一谈。
作为从机,IIC软件模拟真 ...
yes,受教了,你说得很详细。
空放着能用的硬件I2C控制器不用,自己用IO口浪费CPU处理能力去模拟I2C是为哪般呢?
模拟I2C移植容易是借口吗?为什么不提模拟I2C占用了太多的系统资源?模拟I2C用的延时都是硬延时吧?用for循环在空转,啥也不做,多浪费啊。 wangjiati 发表于 2014-8-6 19:44
我的习惯是能有硬件的就用硬件. SPI .IIC 等都是用内部硬件模块.
同意。 硬件IIC用不好会把整条总线占用挂掉。但是比较节省CPU时间。如果传输量不大,可以用软件的。 有硬件部分当然比完全软件模拟好了。 软件I2c通用啊,不管什么mcu都一样,就gpio模拟。硬件的就不一样了,比如stm的,真难用 通用不过有时序的问题,然后就是效率比较低。 有硬件尽量用硬件 wgxold 发表于 2014-9-12 08:53
硬件I2C在驱动完美的前提下推荐使用。软件I2C消耗CPU资源,速度也上不去,在复杂应用中极大降低系统效率。 ...
有道理 ! 个人觉得软的用起来舒服 good,学习了~~~ 硬件确实没有软件模拟来的顺手~ 一般都是用的软的比较多吧
页:
[1]