az8898l 发表于 2014-7-31 23:45:32

硬件IIC 和软件IIC

求大神指教下,硬件IIC和软件IIC的优缺点?硬件IIC有何资源可以参考?目前想用PIC的芯片。

mon51 发表于 2014-8-1 21:12:07

PIC的片子,建议用软IIC,灵活一些。

Lu.Shi 发表于 2014-8-5 16:26:10

如果使用PIC的单片机好像官网上应该会有例程的,楼主可以找找

uindex 发表于 2014-8-5 16:31:10

软I2C是用CODE拖拉IO模拟的,需要占用CPU。硬件的就是配置寄存器,硬件产生I2C读写时序。

az8898l 发表于 2014-8-6 07:17:41

mon51 发表于 2014-8-1 21:12
PIC的片子,建议用软IIC,灵活一些。

PIC 的硬件IIC看论坛上好像评价不是很好!{:sad:} 想用软件IIC,但是怕精准度不高!

az8898l 发表于 2014-8-6 07:18:16

uindex 发表于 2014-8-5 16:31
软I2C是用CODE拖拉IO模拟的,需要占用CPU。硬件的就是配置寄存器,硬件产生I2C读写时序。 ...

{:lol:} 理解!!

az8898l 发表于 2014-8-6 07:19:38

Lu.Shi 发表于 2014-8-5 16:26
如果使用PIC的单片机好像官网上应该会有例程的,楼主可以找找

恩恩 好的谢谢!

zgxcom123 发表于 2014-8-6 07:20:19

az8898l 发表于 2014-8-6 07:17
PIC 的硬件IIC看论坛上好像评价不是很好! 想用软件IIC,但是怕精准度不高! ...

软件模拟没问题的,就是耗点cpu

az8898l 发表于 2014-8-6 07:21:43

zgxcom123 发表于 2014-8-6 07:20
软件模拟没问题的,就是耗点cpu

我试试效果!!谢谢!

mon51 发表于 2014-8-6 08:25:04

az8898l 发表于 2014-8-6 07:17
PIC 的硬件IIC看论坛上好像评价不是很好! 想用软件IIC,但是怕精准度不高! ...

IIC 没有什么精度问题,只是占用一点MCU的时间。

机器人天空 发表于 2014-8-6 08:30:48

软件模拟IIC移植起来比硬件IIC更方便

J8688 发表于 2014-8-6 13:43:17

看速率,看芯片,芯片定时器精确度差的 就用硬件的iic 或者低速率通信,保守一点9K6一下。

wangjiati 发表于 2014-8-6 19:44:15

我的习惯是能有硬件的就用硬件.   SPI .IIC 等都是用内部硬件模块.

wxty 发表于 2014-8-6 21:18:51

wangjiati 发表于 2014-8-6 19:44
我的习惯是能有硬件的就用硬件.   SPI .IIC 等都是用内部硬件模块.

支持。!!

pic_flash 发表于 2014-8-9 10:06:04

如要高速I2C 主/从, 用硬I2C。。
如是低速, 软或硬I2C都可以。。

turf456 发表于 2014-8-9 10:22:55

硬件可能有点复杂,比Spiuart啥的麻烦一些,一个小问题搞好久搞不明白。如果时间不多,先用软件搞出来。硬件有时间慢慢研究。

starting 发表于 2014-8-9 19:29:22

I2C不太建议硬件I2C

hamwang1 发表于 2014-9-11 13:01:36

设计的时候把口预留中硬件的口上,到时硬件还是软件就可以自由切换和选择了

jackrich 发表于 2014-9-11 15:30:20

24H系列的硬件IIC驱动能力不够强,改用软件IIC了

yaoqisheng 发表于 2014-9-11 15:40:09

一直用软件IIC,都懒的弄硬件的了

caoxuedong 发表于 2014-9-11 16:35:53

其实有硬件I2C的话,尽量用硬件的,用中断,可降低单片机处理时间占用。

sunrosewang 发表于 2014-9-11 16:53:51

如果有可能,还在写一个硬件IIC策略吧,在不同的平台移植也不会很难。软件IIC太浪费资源了。

sy_lixiang 发表于 2014-9-11 16:59:49

有很多工程师有懒惰的嫌疑。

用硬件IIC。

xiezhenfai 发表于 2014-9-11 17:12:10

i2c 软件很难做得很完善吧?

易尘 发表于 2014-9-11 17:27:05

IIC单独用硬件肯定是不占用CPU资源 会好点

wgxold 发表于 2014-9-12 08:53:49

硬件I2C在驱动完美的前提下推荐使用。软件I2C消耗CPU资源,速度也上不去,在复杂应用中极大降低系统效率。

shjw 发表于 2014-9-12 09:02:33

我也一般是接在硬件IIC上,软硬件到时候自由选。程序不复杂一般我都是移植软件,硬件麻烦

fscd 发表于 2014-9-12 09:05:08

速度没有特别要求,一般都用软

ruanxianwu 发表于 2014-9-12 09:10:39

LZ好人丫丫丫丫丫丫

chenrulin 发表于 2014-9-12 13:03:49

灵活性来讲,用软IIC

xinbadazz 发表于 2014-9-12 13:08:32

楼主,这个要看应用场合。
要求高的话,建议用硬件的I2C。

windrarara 发表于 2014-9-12 13:09:56

看需求, 能用硬件还是用硬件吧

cock 发表于 2014-9-12 13:30:56

如果是开机读一次的,软IIC方便,可以使用现成的代码,略做移植。如果是运行中高频使用IIC,就用硬件IIC,让CPU运行快点。

myliuyu 发表于 2014-9-12 14:20:38

曾经PIC4F的I2C折腾了一个多月都没搞定,后来再也不用PIC的I2C了

hanbao0371 发表于 2014-9-12 14:42:07

硬件IIC吧,我建议
这个东东,硬件技术已经很成熟了

chliken 发表于 2014-9-12 15:12:34

能用硬件还是硬件的吧,软件的就是移植起来方便,练功,还是硬件比较好,不占系统资源

a651588 发表于 2014-9-12 16:41:32

同意楼上的,硬件不占资源

markdif 发表于 2014-9-12 17:38:06

软件IIC 会占用点CUP,有时误差也会累积起来,到时还要处理的

穷折腾 发表于 2014-9-13 09:23:48

其实不光是I2C,其它总线用软件和硬件实现的区别都差不多,
软件模拟总线的优点:网上示例程序多,只涉及IO相关寄存器,移植简单;
缺点:占用CPU

硬件总线的优点:不占用CPU,配置完寄存器后,写数据缓存,然后置位发送位,总线就自动开工,CPU就可以干别的了;
缺点:需要配置相关寄存器,可移植性差,除了一些用户量大的MCU,小众MCU基本上找不到示例程序,得自己参照PDF写驱动。

formatme 发表于 2014-9-13 09:30:15

穷折腾 发表于 2014-9-13 09:23
其实不光是I2C,其它总线用软件和硬件实现的区别都差不多,
软件模拟总线的优点:网上示例程序多,只涉及IO ...

总结的好!

kaka_1314 发表于 2014-9-14 00:46:50

建议用软件IIC方便以后移植

szxszx 发表于 2014-9-14 09:06:28

有硬件用硬件,没有的就用模拟的。

yeahmen 发表于 2014-9-14 10:02:33

配寄存器控制的开发方便快捷,自己刻波形的能兼容一些奇奇怪怪的外设

netting 发表于 2014-9-14 10:36:18

软硬都用吧

takashiki 发表于 2014-9-14 11:54:54

穷折腾 发表于 2014-9-13 09:23
其实不光是I2C,其它总线用软件和硬件实现的区别都差不多,
软件模拟总线的优点:网上示例程序多,只涉及IO ...

其实,IIC和其他总线(比如UART、SPI、IIS等)真的区别好大的,不能混为一谈。
作为从机,IIC软件模拟真的不是只涉及IO相关寄存器,移植也不简单哦。要模拟IIC从机,估计难度不亚于USB从机,主要是时序跟不上。事实上,软USB的方案都满天飞了,IIC从机的实现少之又少。
IIC主机的仲裁机制(多主模式),有几个软件模拟实现过?
IIC软件实现的只不过是阉割版的阉割版,还真想跟硬件的一较短长,真是贻笑大方。

walle531 发表于 2014-9-14 11:59:13

基本上用软件,硬件的太容易出问题了

穷折腾 发表于 2014-9-14 14:54:08

takashiki 发表于 2014-9-14 11:54
其实,IIC和其他总线(比如UART、SPI、IIS等)真的区别好大的,不能混为一谈。
作为从机,IIC软件模拟真 ...

yes,受教了,你说得很详细。

afeionline 发表于 2014-9-14 15:23:17

空放着能用的硬件I2C控制器不用,自己用IO口浪费CPU处理能力去模拟I2C是为哪般呢?

模拟I2C移植容易是借口吗?为什么不提模拟I2C占用了太多的系统资源?模拟I2C用的延时都是硬延时吧?用for循环在空转,啥也不做,多浪费啊。

zhaotyue 发表于 2014-9-26 20:32:02

wangjiati 发表于 2014-8-6 19:44
我的习惯是能有硬件的就用硬件.   SPI .IIC 等都是用内部硬件模块.

同意。                  

ericw2012 发表于 2014-9-26 23:34:44

硬件IIC用不好会把整条总线占用挂掉。但是比较节省CPU时间。如果传输量不大,可以用软件的。

jiangbing 发表于 2014-9-27 13:32:57

有硬件部分当然比完全软件模拟好了。

lovecxm 发表于 2014-9-27 13:34:53

软件I2c通用啊,不管什么mcu都一样,就gpio模拟。硬件的就不一样了,比如stm的,真难用

abutter 发表于 2014-9-27 13:42:41

通用不过有时序的问题,然后就是效率比较低。

一夕nandy 发表于 2014-9-27 20:17:09

有硬件尽量用硬件

liujingwei 发表于 2014-9-29 09:11:33

wgxold 发表于 2014-9-12 08:53
硬件I2C在驱动完美的前提下推荐使用。软件I2C消耗CPU资源,速度也上不去,在复杂应用中极大降低系统效率。 ...

有道理 !

lce 发表于 2014-9-29 09:16:40

个人觉得软的用起来舒服

cyzc2008 发表于 2014-9-29 09:40:10

good,学习了~~~

蓝蓝的恋 发表于 2014-9-29 09:50:55

硬件确实没有软件模拟来的顺手~

houyusheng 发表于 2014-9-29 15:46:47

一般都是用的软的比较多吧
页: [1]
查看完整版本: 硬件IIC 和软件IIC