![]() |
|
||||||||||||||
| | 网站首页 | 综合电子 | 51单片机 | AVR单片机 | ARM专栏 | MSP430 | 网上商城 | PSOC | 下载中心 | 公司事项 | DSP专栏 | | ||
|
||
|
|||||
| 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] 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 | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 基于PSoC的车用单片机试验装… 怎样快速从51或Z80转到PSOC? 赛普拉斯CapSenseTM解决方案… PSoC在LG“巧克力”手机中的… 谈谈使用CYPRESS PSOC的一些… 复杂SoC设计中的功率管理 (下… 复杂SoC设计中的功率管理 (上… PSoC Express再升级提供更大… 可编程系统芯片的设计构架 用PSoC Express实施透明无代… |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | | 设为首页 | 购买方法 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 联系我们 | 网络答疑| | | |||
|