crazyqp
驱动小牛
驱动小牛
  • 注册日期2004-07-28
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分69分
  • 威望12点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1744回复:7

100分,请教一个硬件iic的问题。

楼主#
更多 发布于:2005-03-30 15:26
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以后就发生中断了吗???为什么我的就近不去呢???

Descriptor
驱动牛犊
驱动牛犊
  • 注册日期2005-03-13
  • 最后登录2006-01-19
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-03-31 16:17
我刚才说错了,抱歉。
刚刚查了C8051f020手册,的确支持硬件I2C。
不过也解决了我的一个问题,我一直在找同时支持外部存储器和硬件I2C的MCU。
硬件I2C我只做过从器件。主器件一直是用软件仿的。
Descriptor
驱动牛犊
驱动牛犊
  • 注册日期2005-03-13
  • 最后登录2006-01-19
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-03-31 15:37
原文:c8051f020(支持硬件iic)
-------------------------------
c8051f020支持硬件SPI, 没有硬件IIC接口。
据我所知,支持硬件IIC的只有Philips P89LPC系列。
如果有谁知道有其他支持硬件IIC的MCU,请告诉我。
yangyouzhen@126.com
多谢!
templa
驱动牛犊
驱动牛犊
  • 注册日期2005-01-04
  • 最后登录2013-03-15
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望8点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-03-31 14:00
1.INT脚可以悬空,如果无须8563发中断;
2.8563好象不要接两个电容的,你可以先看看芯片资料;
3.我没用过020,但若如你所说的,是指SCL的翻转频率,设置频率在400KHZ以下都应该可以,而且写数据好象也不需要延时;
4.020 支持一次写多个数据吗?你要写的数据放在哪里呀?开关中断是否需要?

以上愚见,愿能助你!
crazyqp
驱动小牛
驱动小牛
  • 注册日期2004-07-28
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分69分
  • 威望12点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-03-31 08:06
我的020中由硬件支持iic,只要设置sta=1,就代表启动一次传输,进入iic的中段程序,但是具体的过程我就不是非常清楚,我sta=1以后就一直死循环,进不了中断,所以不知道怎么办!!!
现在自己也搞不清楚是硬件还是软件问题了!!!所以想看看硬件iic是如何工作的!!不一定用020或者8563,但是主从必须都要支持硬件iic。
我的硬件原理图对不对呢????
谢谢
qyxu1979
驱动牛犊
驱动牛犊
  • 注册日期2005-03-11
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分30分
  • 威望8点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-03-30 17:02
我也在做I2C接口,你要在020中设置开始,停止位,响应位,把要发送的记时数值写到I2DAT中,还有,记得加延时.可以在网上找到一些带接口的例子,
crazyqp
驱动小牛
驱动小牛
  • 注册日期2004-07-28
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分69分
  • 威望12点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-03-30 15:35
忘了补充几点说明:
pcf8563是philps公司生产的时钟芯片,支持iic总线,c8051f020也是支持iic总线(有专门的中断),我现在不想通过模拟iic来实现对8563的读写,希望大家能够提些建议。
我现在问题多多,自己都搞不清楚,大家先看看硬件连接有没有错误吧!!!
crazyqp
驱动小牛
驱动小牛
  • 注册日期2004-07-28
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分69分
  • 威望12点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-03-30 15:28
有好的建议的话,也可以酌情给分。
to 斑竹:我不知道想我这样的问题应该放在那个栏目,你这里的人气最旺,希望能够获得帮助。
游客

返回顶部