阅读:1744回复:7
100分,请教一个硬件iic的问题。
1:我用的是pcf8563,我把它的int引脚悬空了,因为我现在不需要报警或者定时器中断,这样理解对不对???
2:我的上拉电阻是4。7千欧,电压是3。3v,32。768k晶振,sda,scl连接c8051f020(支持硬件iic)的p0.6和p0.7,我用示波器看sda,scl始终都是3。3v,没有信号。 3:对于8563时钟频率的疑惑,datasheet上说,8563是400khz的iic,那么我对020初始化时应该多少啊???我的晶振11059200.我看到有些朋友传输频率用的是100khz,这个频率是不是说只要<400khz就可以了??? 4:我用单步程序跟踪,发现程序运行到 void smbus_send (uchar chip_select,byte_address,write_num) { while(sm_busy); // Wait for SMBus to be free. sm_busy=1; // Occupy SMBus (set to busy) write_start_num=0; slave_add=chip_select; // Chip select + WRITE iic_ram_add=byte_address; // PCF8563的寄存 器地址 iic_send_len=write_num; // 写PCF8563 字节数 STA=1; // Start transfer while (sm_busy);//*********就停在这里,死循环了 } 不是说sta=1以后就发生中断了吗???为什么我的就近不去呢??? |
|
沙发#
发布于:2005-03-31 16:17
我刚才说错了,抱歉。
刚刚查了C8051f020手册,的确支持硬件I2C。 不过也解决了我的一个问题,我一直在找同时支持外部存储器和硬件I2C的MCU。 硬件I2C我只做过从器件。主器件一直是用软件仿的。 |
|
板凳#
发布于:2005-03-31 15:37
原文:c8051f020(支持硬件iic)
------------------------------- c8051f020支持硬件SPI, 没有硬件IIC接口。 据我所知,支持硬件IIC的只有Philips P89LPC系列。 如果有谁知道有其他支持硬件IIC的MCU,请告诉我。 yangyouzhen@126.com 多谢! |
|
地板#
发布于:2005-03-31 14:00
1.INT脚可以悬空,如果无须8563发中断;
2.8563好象不要接两个电容的,你可以先看看芯片资料; 3.我没用过020,但若如你所说的,是指SCL的翻转频率,设置频率在400KHZ以下都应该可以,而且写数据好象也不需要延时; 4.020 支持一次写多个数据吗?你要写的数据放在哪里呀?开关中断是否需要? 以上愚见,愿能助你! |
|
地下室#
发布于:2005-03-31 08:06
我的020中由硬件支持iic,只要设置sta=1,就代表启动一次传输,进入iic的中段程序,但是具体的过程我就不是非常清楚,我sta=1以后就一直死循环,进不了中断,所以不知道怎么办!!!
现在自己也搞不清楚是硬件还是软件问题了!!!所以想看看硬件iic是如何工作的!!不一定用020或者8563,但是主从必须都要支持硬件iic。 我的硬件原理图对不对呢???? 谢谢 |
|
5楼#
发布于:2005-03-30 17:02
我也在做I2C接口,你要在020中设置开始,停止位,响应位,把要发送的记时数值写到I2DAT中,还有,记得加延时.可以在网上找到一些带接口的例子,
|
|
6楼#
发布于:2005-03-30 15:35
忘了补充几点说明:
pcf8563是philps公司生产的时钟芯片,支持iic总线,c8051f020也是支持iic总线(有专门的中断),我现在不想通过模拟iic来实现对8563的读写,希望大家能够提些建议。 我现在问题多多,自己都搞不清楚,大家先看看硬件连接有没有错误吧!!! |
|
7楼#
发布于:2005-03-30 15:28
有好的建议的话,也可以酌情给分。
to 斑竹:我不知道想我这样的问题应该放在那个栏目,你这里的人气最旺,希望能够获得帮助。 |
|