这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » AT45DB041d 中如何读取Sector Lockdown Register

共1条 1/1 1 跳转至

AT45DB041d 中如何读取Sector Lockdown Register

菜鸟
2009-06-02 17:43:20     打赏

各位大侠,我现在的处理器AT91SAM9261,dataflash用的是AT45DB041D,我现在想读取Sector Lockdown Register值,我在atmel的驱动里面的at45.c文件里找到了读取status register值的函数,如下:
AT91S_DataFlashStatus AT91F_DataFlashGetStatus(AT91PS_DataflashDesc pDesc)
{
 AT91S_DataFlashStatus status;

 /* if a transfert is in progress ==> return 0 */
 if( (pDesc->state) != IDLE)
  return AT91C_DATAFLASH_BUSY;

 /* first send the read status command (D7H) */
 pDesc->command[0] = DB_STATUS;
 pDesc->command[1] = 0;

 pDesc->DataFlash_state  = GET_STATUS;
     pDesc->tx_data_size  = 0 ; /* Transmit the command and receive response */
     pDesc->tx_cmd_pt   = pDesc->command ;
     pDesc->rx_cmd_pt   = pDesc->command ;
     pDesc->rx_cmd_size   = 2 ;
     pDesc->tx_cmd_size   = 2 ;
     status = AT91F_SpiWrite (pDesc);

 pDesc->DataFlash_state = *( (unsigned char *) (pDesc->rx_cmd_pt) +1);
 return status;
}
我修改如下:
AT91S_DataFlashStatus AT91F_DataFlashGetLockStatus(AT91PS_DataflashDesc pDesc)
{
 AT91S_DataFlashStatus status;

 /* if a transfert is in progress ==> return 0 */
 if( (pDesc->state) != IDLE)
  return AT91C_DATAFLASH_BUSY;

 /* first send the read status command (35H) */
 pDesc->command[0] = DB_LOCKSTATUS;
 pDesc->command[1] = 0;

 pDesc->DataFlash_state  = GET_STATUS;
     pDesc->tx_data_size  = 0 ; /* Transmit the command and receive response */
     pDesc->tx_cmd_pt   = pDesc->command ;
  pDesc->rx_cmd_pt   = pDesc->command;
     pDesc->rx_cmd_size      = 9 ;
     pDesc->tx_cmd_size   = 2 ;
     
     status = AT91F_SpiWrite (pDesc);

 pDesc->DataFlash_state = *( (unsigned char *) (pDesc->rx_cmd_pt) +1);
 
 return status;
}
但是不能得到Sector Lockdown Register的值?




关键词: AT45DB041d     如何     读取     Sector     L    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]