|
LPC1752读取FM25L04B的原理与实现
@一板网
1. 简介 本文主要介绍LPC1752通过SPI方式与FM25L04B进行通讯的原理及实现方式。 LPC1752 与 FM25L04B 硬件连接图如图1所示。
图 1 SPI硬件连线图
2. 实现函数 2.1 初始化函数 初始化LPC1752的SSP0模块及FM25L04B的相关功能: — 在PCONP寄存器置位PCSSP0,允许SSP0模块的电源输出; — 在PCLK_SSP1寄存器中选择PCLK_SEL0,设置SSP0的时钟为CCLK/4;对SSP0的时钟进行分频,设置为CCLK/4/10; — 对LPC1752的管脚进行设置; — 设置 SPI 为主模式, FM25L04 工作在 SPI 模式 0。 实现代码如图2所示。
图2 spi_init初始化函数
2.2 读取FM25L04B函数 按照图3 - FM25L04B的读时序所示,首先CS片选置零, 然后向FM25L04B发送READ COMMAND指令,将接收到的数据保存,片选端置位,结束整个读取过程。具体代码实现如图4。
图3 FM25L04B的读时序
图4 读函数Read
2.3 FM25L04B写函数 FM25L04B的写时序如图5 所示。每次进行写操作之前都要先发送写使能指令,才能进行写操作,且写操作完成后,写使能自动失效,下一次进行写操作仍然要先发送写使能指令。发送写指令之后,读取寄存器的值判断是否已经写入成功,然后进行下一步操作。具体代码实现如图6。
图5 FM25L04B的写时序
图6 写函数代码图
3 测试 测试流程,向0x00写入固定4个数值,然后与读取的值进行比较验证是否正确。 实现代码如图7所示。
图7 测试代码 测试结果如图8所示。
图8读取0x00地址值 经验证LPC1752可以正常与FM25L04B进行通讯。
|