首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
DSP的SPI口和串行EEPROM在变频器中的应用
来源:本站整理  作者:佚名  2009-05-07 14:36:14



图3 读状态寄存器时序图

  以下是读状态寄存器子程序:

  unsigned int RSDR_X5168(void)

  { unsigned int readspibuftrue;

  *SPIPC1&=0xBF; /*置低SPISTE引脚,从而选通X5168*/

  *SPIDAT=RDSR; /*发送x5168的读状态寄存器命令字*/

  while((*SPISTS&0x40)!=0x40){} /*等待SPI写结束*/

  readspibuftrue=*SPIBUF; /*读SPIBUF寄存器,清除SPI INT FLAG 位*/

  *SPIDAT=0; /*发送伪数据*/

  while((*SPISTS&0x40)!=0x40){} /*等待SPI读/写结束*/

  readspibuftrue=*SPIBUF; /*读SPIBUF寄存器,读取状态寄存器*/

  return readspibuftrue;

  }

  二、写操作

  a).在试图向器件写入数据前必须首先通过发送WREN指令来设置写使能锁存WEL(见图4)。/CS 先被拉低,接着向器件输入WREN指令(00000110B)。在指令的所有的8位传送完后,/CS 必须被拉高。如果用户在发送完WREN指令后,没有将/CS 拉高而继续写操作则该写操作将被忽略。

图4 写使能时序图

  串行EEPROMX5168写使能命令子程序如下:

  void WREN_X5168(void) /*写使能*/

  { *SPIPC1&=0xBF; /*置低SPISTE引脚,从而选通X5168*/

  *SPIDAT=WREN; /*发送X5168的写使能命令字*/

  while((*SPISTS&0x40)!=0x40){} /*等待SPI写结束*/

  readspibuf=*SPIBUF; /*读SPIBUF寄存器,清除SPI INT FLAG 位*/

  *SPIPC1|=0x40; /*置高SPISTE引脚,从而禁止X5168*/

  }

  b).为了向EEPROM存储器阵列写入数据用户接着发送写WRITE 指令(00000010B),跟着是16位地址和被写入的数据。任何不用的地址位都被指令为“0”,写操作最少要用32个时钟,/CS 必须为低并在该操作期间一直保持为低。如果地址计数器达到一页的末端而时钟还在继续,时计数器将返回至该页的首地址,并覆盖任何之前已写入的数据。对于将完成的页面写操作(字节或页面写)而言,在写入的最后一个数据的位0被同时输入后,/CS只能被拉高。如果它在其它任何时候被拉高则不能完成写操作(见图5)。

上一页  [1] [2] [3] [4] [5]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:33,726.56000 毫秒