网站公告列表     本站开通全国范围代收货款业务,详情请点击  [dycxin  2008年5月14日]        
加入收藏
设为首页
联系站长
您现在的位置: EDA加油站 >> PSOC >> PSOC入门学堂 >> 正文
  [推荐]pSoc 在程序中动态改变 I2C slave 设备的地址           ★★★ 【字体:
pSoc 在程序中动态改变 I2C slave 设备的地址
pSoc 在程序中动态改变 I2C slave 设备的地址
作者:未知    POSC专栏来源:本站原创    点击数:    更新时间:2008-2-18    

我使用的芯片是 CY8C29466,因为项目中要使用两块功能几乎相同的 pSoc 模块,所以我打算把两块芯片的代码放在一块。但是与主芯片通信的 I2C 地址(slave模式),却是不可以一样的。

默认生成的I2C HW 模块,address 是在 Device Editor 模块中定死的;其实看自动生成的代码,会发现地址只是被预定义为一个值I2CHW_1_SLAVE_ADDR。而对这个值的使用,只在 i2chw_1int.asm 中遇到。具体就是在判断master发过来的 address 是否是本 slave 的address.

原始代码片断(自动生成):

    mov A, reg[I2CHW_1_DR]
    and F, 0xF9                                                     
    rrc A                                                           
    xor A,  I2CHW_H_SLAVE_ADDR 
    jnz I2C_Terminate
    or [I2CHW_1_RsrcStatus], I2CHW_ISR_ACTIVE

I2CHW_1_DR 里放置的就是 master 发过来的address,而 I2CHW_H_SLAVE_ADDR 就是pSoc芯片定义的I2C address. 只要根据实际需求把 I2CHW_H_SLAVE_ADDR 换乘其他的值,就可以在程序中任意改变 I2C 的address了。

常见的方法,是读取某些 GPIO 引脚的高低,根据高低不同,把 A 与不同的质进行比较。

英文参考:an2088 Programmable I2C Addressing

POSC专栏录入:dycxin    责任编辑:dycxin 
  • 上一个POSC专栏:

  • 下一个POSC专栏:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    基于PSoC的车用单片机试验装…
    怎样快速从51或Z80转到PSOC?
    赛普拉斯CapSenseTM解决方案…
    PSoC在LG“巧克力”手机中的…
    谈谈使用CYPRESS PSOC的一些…
    复杂SoC设计中的功率管理 (下…
    复杂SoC设计中的功率管理 (上…
    PSoC Express再升级提供更大…
    可编程系统芯片的设计构架
    用PSoC Express实施透明无代…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    EDA加油站|我要EDA网|山东电子网--东营市荣燕商贸有限公司版权所有! 站长:阿荣
    联系电话:0546-7870320,13371507828 电邮:51edacn@163.com
    山东东营西城济南路百祥电脑商城B302室 邮编:257000 鲁ICP备07018763号  鲁ICP备07000091号 鲁ICP备05003434号
    公司帐号:1615011209000037682 户名:东营市荣燕商贸有限公司 开户行:工行西城支行石油大学分理处