没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示


试读
4页
分享些自己的实际项目资料。之前曾用过2系列,最近也抽空看了看LaunchPad的资料,其实ValueLine可以当作2系列来看,再其实反正都是430,所以有些部分的移植还是比较快的。这些天使用LaunchPad做的试验,是通过MSP430G2553的硬件I2C访问挂在同一I2C接口上的EEPROM和MFRC522,EEPROM使用模拟I2C接口、MFRC522使用模拟SPI接口的资料网上不难得到,针对430的硬件I2C接口的可能稍微少些,至少我看TI官网上的例程好像就没有跟EEPROM连接的,MFRC522就更别说了。这回测试的难度可能在于两个器件并联挂在一个I2C接口上时的通讯,以及430的USCI模块的使用。 I2C协议就不用在这里赘述了,EEPROM选用Microchip的24LC02B,MFRC522接成I2C接口形式,MSP430G2553的I2C口配置在USCI_B0(UCB0SCL和UCB0SDA)上,接线示意图如下,图中只画出I2C接口相关接线,其他接线略去,MFRC522和24LC02B的用法详见芯片数据手册
资源推荐
资源详情
资源评论









中华文本库 地址:http://www.chinadmd.com/file/cr3owexcrritscix6rxiapot_1.html
Launch PAD SPI & I2C
这回拿到 LaunchPad,除了感谢档、感谢蒸俯和 CCAV,TI 就不用特别感谢了,用实际产品应用
来回报,还得感谢 21IC,特别是小跑堂的辛勤劳动!!! 这回来点儿实用的吧,分享些自己的实
际项目资料。之前曾用过 2 系列,最近也抽空看了看 LaunchPad 的资料,其实 ValueLine 可以当作
2 系列来看,再其实反正都是 430,所以有些部分的移植还是比较快的。这些天使用 LaunchPad 做
的试验,是通过 MSP430G2553 的硬件 I2C 访问挂在同一 I2C 接口上的 EEPROM 和
MFRC522,EEPROM 使用模拟 I2C 接口、MFRC522 使用模拟 SPI 接口的资料网上不难得到,针
对 430 的硬件 I2C 接口的可能稍微少些,至少我看 TI 官网上的例程好像就没有跟 EEPROM 连接
的,MFRC522 就更别说了。这回测试的难度可能在于两个器件并联挂在一个 I2C 接口上时的通讯,
以及 430 的 USCI 模块的使用。 I2C 协议就不用在这里赘述了,EEPROM 选用 Microchip 的
24LC02B,MFRC522 接成 I2C 接口形式,MSP430G2553 的 I2C 口配置在 USCI_B0(UCB0SCL 和
UCB0SDA)上,接线示意图如下,图中只画出 I2C 接口相关接线,其他接线略去,MFRC522 和
24LC02B 的用法详见芯片数据手册:
MSP430G2553 使用 DCO 作为 CPU 时钟,1MHz,USCI_B0 时钟取自 SMCLK 的 11 分频,
SMCLK=DCOCLK。这里需要注意器件的地址,USCI 的 I2C 模块有一个专门的从设备地址寄存器
UCBxI2CSA,用来设置从设备的地址,这个地址可别写错,一个器件一个唯一的地址,比如
24LC02B,其地址寻址控制如下所示:
而 MSP430G2553 的 UCBxI2CSA 寄存器构成如下所示:
在前面的电路图中,24LC02B 的 A0~A2 接地,因为是 7-bit 寻址模式,所以其地址 slave address
为 0x50,如果 A0~A2 不是这么接,则需要把这个地址修改为对应的值。MFRC522 类似,高地址
由 EA 固定为 0101,低 3 位我接成 010,所以地址为 0x2A。这个地址的设置与模拟 I2C 程序中常
用的一个写地址和一个读地址的方式编程方法有所不同,需要注意。
程序思路是:采用查询相关标志位的方式,而不是中断方式,实现单个字节的收发,在此基础上
接着实现若干个字节的收发,然后实现与实际器件相关的读写操作,比如 24LC02B 的读写,
MFRC522 寄存器的读、写、修改,等等。花了不少时间和眼神研究 USCI 模块的用法,最终还是
调试出来了,感觉还不算太复杂,不像硬件 SPI 还有多种时序形式,没有示波器实在费劲。根据
I2C 器件地址和器件各自的寄存器或存储单元操作规范,分别进行访问、控制,不会冲突。这里,
建议初次使用的朋友一定要好好读一下 MSP430G2553 的 User’s Guide,特别是其中的 Master 发送
和接收模式的流程图,调试的过程需要吃透这个图,比如停止信号在何时发出、各标志位在什么
时候产生、是否需要软件人为复位或置位等,要是没弄清这些细节,可能还不如使用模拟 I2C 方
式。 主要调试经验小结:
1. 在调试中曾遇到一个问题,写完 24LC02B 的一个 Page 后,需要做适当的延时再接着下一个
Page 的写,否则有可能出错或进行不下去。一般停在循环判断某个标志位的地方,后面所附的源
代码中也可以看到,等待标志位的过程我是采用一直 while 查询的方式,没有作超时退出处理,
这种处理方式当然最好进行改进,目前之所以这么处理,是因为一般调试好后成品的线路板只要
器件不坏,不会在这里出问题,因此简化处理了。

七月石
- 粉丝: 0
- 资源: 9
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制

- 1
- 2
前往页