a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > DSP的SPI口和串行EEPROM在變頻器中的應用

DSP的SPI口和串行EEPROM在變頻器中的應用

作者: 時間:2009-05-07 來源:網絡 收藏

圖5 寫陣列時序圖

  以下是寫陣列子程序,RA_ADDR為存儲要寫數據數組的首地址,EEP_ADDR為要寫入的首地址,N要存儲數據的個數。

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

  { unsigned int I;

  WREN_(); /*寫使能*/

  *PC1=0xBF; /*置低STE引腳,從而選通*/

  *DAT=WRITE; /*發送x5168的寫狀態寄存器命令字*/

  while((*SPISTS0x40)!=0x40){} /*等待SPI寫結束*/

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

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

  while((*SPISTS0x40)!=0x40){} /*等待SPI寫結束*/

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

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

  while((*SPISTS0x40)!=0x40){} /*等待SPI寫結束*/

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

  for (I=0;I

  { *SPIDAT =*(RA_ADDR+I)>>8 ; /*發送數據用數組傳送,傳送數據高八位*/

  while((*SPISTS0x40)!=0x40){} /*等待SPI寫結束*/

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

  *SPIDAT =*(RA_ADDR+I) ; /*發送數據用數組傳送,傳送數據第八位*/

  while((*SPISTS0x40)!=0x40){} /*等待SPI寫結束*/

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

  }

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

  }

  c).為向狀態寄存器寫數據,在WRSR指令(00000001B)之后應跟隨被寫入的數據(見圖6),數據位0和位1必須為“0”。

圖6 寫狀態寄存器時序圖

  以下是寫狀態寄存器子程序:

  void WRSR_X5168(unsigned int COM) /*寫狀態*/

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

  *SPIPC1=0xBF; /*置低SPISTE引腳,從而選通X5168*/

  *SPIDAT=WRSR; /*發送X5168的寫狀態寄存器命令字*/

  while((*SPISTS0x40)!=0x40){} /*等待SPI寫結束*/

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

  *SPIDAT=COM; /*STATUS_REG發送狀態字*/

  while((*SPISTS0x40)!=0x40){} /*等待SPI寫結束*/

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

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

  TIMEDEL(5); /*延時1us*/

  }

  以上子程序實現了對X5168的讀寫功能,在主程序中調用這些子程序就可實現對X5168的操作。

5 結束語

  由于篇幅的原因,本文沒有過多的講述外設接口和X5168的各項特性,這些說明書上都有敘述且很具體。而是把重點放在了講述擴展EEPROM的軟硬件設計,該設計已成功在筆者開發的中,經過反復測試,運行可靠。


上一頁 1 2 3 4 5 下一頁

評論


相關推薦

技術專區

關閉