您当前的位置:首页 > 公司动态

DSP的SPI口和串行EEPROM在变频器中的应用

时间:2015-03-31  来源:扁平线圈电感厂家  点击:

  whil环型电感e((*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指令(00电感器生产厂家000110B)。在指令的所有的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)。

图5 写EEPROM阵列时序图

  以下是写EEPROM阵列子程序,RA_ADDR为存储要写数据数组的首地址,EEP_ADDR为要写入的EEPROM首地址,N要存储数据的个数。

  void WRITE_X5168(unsigned int * RA_ADDR, unsigned int EEP_ADDR, unsigned int N)

  { unsigned int I;

  WREN_X5168(); /*写使能*/

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

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

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

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

  *SPIDAT=EEP_ADDR>>8; /*先发送高位地址在发送低位地址*/

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

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

  *SPIDAT=EEP_ADDR; /*先发送高位地址在发送低位地址*/

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

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

  for (I=0;I

  { *SPIDAT =*(RA_ADDR+I)>>8 ; /*发送数据用数组传送,传送数据高八位*/

  while((*SP大电流电感ISTS&0x40)!=0x40){} /*等待SPI写结束*/

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

  *SPIDAT =*(RA_ADDR+I) ; /*发送数据用数组传送,传送数据第八位*/

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

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

  }

  *SPIPC1|=0x40; /*置高SPIST电感生产厂家E引脚,从而禁止X5168*/

  }

  c).为电感器线圈向状态寄存器写数据,在WRSR指令(00000001B)之后应跟随被写入的数据(见图6),数据位0和位1必须为“0”。

图6 写状态寄存器时序图

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

  void WRSR_X5168(unsigned int COM) /*写状态*/

  { WREN_X5168(); /*写使能*/

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

  *SPIDAT=WRSR; /*发送X5168的写状态寄存器命令字*/

大电流电感

负浮点数稳压器
来源:zhengyuan




功率电感 你用 iPhone 吗?你用 Android 吗?你的手机里有电子设计用的软件吗?在 APP Store 或者安卓市场,搜索 DAKA,可

基于51单片机的数字电压表仿真设计 4月08日 第三届·无线通信技术研讨会 立即报名 12月04日 2015•第二届中国IoT大会 精彩回顾 10月30日ETF•智能硬件开发技术培训会 精彩回顾 10月23日ETF•第三届 消费

微电子所在超高速ADC/DAC芯片研制方面取得突破 4月08日 第三届·无线通信技术研讨会 立即报名 12月04日 2015•第二届中国IoT大会 精彩回顾 10月30日ETF•智能硬件开发技术培训会 精彩回顾 10月23日ETF•第三届 消费

注塑加工厂


上一篇基于FIFO的DDC与DSP高速数据传输实现

下一篇无线传感器网络在车位控制中的应用


  
  温馨提示
网站首页 | 产品展示 | 科技前沿 | 行业资讯
本公司专业研发、设计、生产、销售贴片电感、插件电感、功率电感、大电流电感、扁平线圈电感、一体成型电感。
专业电感生产制造商,品质优异、交期快。
在线客服
热线电话