您当前的位置:五五电子网电子知识电子知识资料总线技术基于X5045芯片的SPI总线操作软件实现 正文
基于X5045芯片的SPI总线操作软件实现

基于X5045芯片的SPI总线操作软件实现

点击数:7442 次   录入时间:03-04 11:40:50   整理:http://www.55dianzi.com   总线技术

  X5045是美国XICor公司生产的带有可编程μP监控器的CMOS串行EEPROM,采用SPI串行外设接口方式,它将复位、电压检测、看门狗定时器和块锁保护的串行E2PROM功能集成在一个芯片内,适合于需要现场修改数据的场合,广泛应用于仪器仪表和工业自动控制等领域。

  X5045与89C51的接口电路如下图所示。

X5045与89C51的接口电路

  单片机与X5045接口软件主要包括芯片初始化、内部E2PROM数据的读写和看门狗操作等,主要由以下程序构成。
  
  ·voidwrite_byte():用于实现向X5045中写入8位地址或数据。
  
  ·unsignedcharread_byte():实现从X5045中读取8位数据。
  
  ·voidx5045_start():启动X5045操作。
  
  ·voidx5045_end():结束X5045操作。
  
  ·unsignedcharx5045_read_status():实现读X5045的状态寄存器的功能。
  
  ·voidx5045_write_status():对状态寄存器中的BL1,BL0,WD1,WD0进行设置。
  
  ·unsignedcharread_addr_data():读取X5045指定地址EEPROM中的数据。
  
  ·voidwrite_addr_data():向X5045指定地址的EEPROM中写入数据。
  
  ·voidreset_wdt():复位看门狗功能。
  
  程序中端口宏定义如下:

代码程序

  (1)函数voidwrite_byte()。
  
  实现向X5045中写入8位数据,写入顺序是高位在前,低位在后,程序代码如下:

程序代码

程序代码

  (2)函数unsignedcharread_byte()。
  
  实现从X5045中读取8位二进制数据,注意读取时先读到的是高位,程序代码如下:

程序代码

  (3)函数voidx5045_start()和voidx5045_stop()。
  
  使用单片机的I/O口模拟实现时序时,在时序开始和结束时总线需要做好一定的准备,程序中通过函数x5045_start()和x5045_stop()实现,程序代码如下:

程序代码

  (4)函数unsignedcharx5045_read_status()。
  
  x5045_read_status()实现读取X5045状态寄存器的功能,单片机发出读状态寄存器的命令,然后再从X5045中读取1个字节的数据即状态寄存器的内容,注意高两位无效,程序代码如下:

  (5)函数voidx5045_write_status()。
  
  对状态寄存器中的BL1、BL0、WD1、WD0进行设置,实现向X5045状态寄存器中写指令的功能,注意写操作之前要先使能写操作,程序代码如下:

程序代码

  (6)函数unsignedcharread_addr_data().
  
  函数read_addr_data()实现从制定地址中读取数据的功能,入口地址最高为9位。如果读取的数据超出了一页,则读命令中需要将A8位置为1,然后再执行读操作,程序代码如下:

  (7)函数voidwrite_addr_data()。
  
  函数write_addr_data()实现向制定地址中写数据的功能。如果写数据的地址超过了一页,注意要将写操作指令中的A8位置1,然后再执行写操作,程序代码如下:

  (8)函数voidreset_wdt()。
  
  函数reset_wdt()实现复位X5045内部看门狗定时器(喂狗)的功能,程序代码如下:

程序代码

  各类SPI总线的器件,由于不同的生产厂商,时钟的频率指标也各不相同,而且数据的输入/输出格式有低位在前的,有高位在前的,因此用户使用时一定要仔细阅读各器件的数据手册。
  
  调试时,注意X5045内部有看门狗功能,在系统进行调试时,应首先关闭看门狗功能,待程序调通后再打开看门狗定时器。
  
  注意每一次写操作前,先写使能,即将状态寄存器中的WEL置1。

 




本文关键字:软件  总线技术电子知识资料 - 总线技术

《基于X5045芯片的SPI总线操作软件实现》相关文章>>>