基于DSP和X5165芯片的非易失性數據存儲設計
3 X5165的工作原理
X5165包含了一個8位的指令寄存器。SI引腳上輸入的數據在SCK上升沿被鎖存,片內的數據在SCK下降沿輸出到SO引腳上。所有的指令、地址和數據都是先傳輸最高位,指令、數據為8位,地址為16位。時鐘SCK允許操作過程中停止并在其后恢復。根據圖1所示,應該選用“無延時的上升沿”這一時鐘方式,且數據字長為8位。X5165的指令集如表1所示。
X5165包括一個8位狀態寄存器,格式如表2所示。
表2中,WIP位是指出非易失性寫操作是否忙,只讀位,為1,寫操作正在進行,為0,無寫操作。WEL是寫使能鎖存狀態位,它可以用WREN指令置位,用WRDI指令復位。WPEN與引腳組合,實現保護存儲陣列和狀態寄存器位WPEN、BL1、BL0、WD1、WD0,是非易失性位,可用WRSR指令對WPEN位編程。其組合如表3所示。
BL1、BL0是存儲器塊保護位,為非易失性位。其組合可通過WRSR指令編程,可以保護存儲器陣列范圍,如表4所示。
選定保護的塊,用戶只能讀不能寫。
WD1、WD0是看門狗定時器位,為非易失性位,可用WRSR指令進行編程。
在讀狀態寄存器時,先將片選信號拉到低電平,然后通過SPI接口發送數據,先發送RDSR指令,接著提供8個SCK脈沖,就可以將寄存器的內容讀回到TMS320LF2407A中。
在寫狀態寄存器時,參考表3,可知,必須先用WREN指令將WEL位置位。由于本文提供的電路能控制引腳,故,直接將該引腳電平拉為高電平,就可以對狀態寄存器進行寫操作。在寫狀態寄存器時,先將片選信號拉到低電平,然后發送數據,先發送WRSR指令,然后發送8位待寫入的內容。注意,狀態寄存器的只讀位不受影響。
在讀存儲陣列時,先將片選信號拉到低電平,然后通過SPI接口發送數據,先發送READ指令,接著發送16位地址,選定的存儲單元中的數據在SCK下降沿讀回TMS320LF2407A中。每個數據被送出后,芯片內的地址計數器自動加1,繼續提供SCK脈沖,可讀出下一個存儲單元的數據。當地址計數器達到$07FFH時,自動翻轉到$0000H單元。讀數據完成后,將片選信號拉到高電平。
評論