реклама на сайте
подробности

 
 
> Странное поведение ARM+SPI DataFlash
lecko
сообщение Oct 3 2011, 13:59
Сообщение #1





Группа: Участник
Сообщений: 10
Регистрация: 22-08-11
Пользователь №: 66 820



Имеется тестовый код для ARM7, запрашивающий ID у микросхемы Atmel SPI DataFlash:
Код
void SSP1Send( BYTE *buf, DWORD Length )
{
  DWORD i;  
  for ( i = 0; i < Length; i++ )
  {
    /* as long as TNF bit is set (TxFIFO is not full), I can always transmit */
    while ( !(SSP1SR & SSPSR_TNF) );
    SSP1DR = *buf;
    buf++;
    /* Wait until the Busy bit is cleared */
    while ( !(SSP1SR & SSPSR_BSY) );
  }
  return;
}  

void SSP1Receive( BYTE *buf, DWORD Length )
{
  DWORD i;
  for ( i = 0; i < Length; i++ )
  {
    /* As long as Receive FIFO is not empty, I can always receive. */
    /* since it's a loopback test, clock is shared for both TX and RX,
    no need to write dummy byte to get clock to get the data */
    /* if it's a peer-to-peer communication, SSPDR needs to be written
    before a read can take place. */
    SSP1DR = 0xFF;
    while ( !(SSP1SR & SSPSR_RNE) );
    *buf = SSP1DR;
    buf++;
  }
  return;  
}

...
for (n = 0; n < 3; n++) {
UART_printf(0,"Try readback ID from DataFlash: ");
data_send[0]=0x9f;
  
SSP1Send(data_send,1);
FIO4CLR = 1<<21;
SSP1Receive(data_recv,7);
FIO4SET = 1<<21;
TFT_printf(0,"Read: 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x \n\r",data_recv[0],data_recv[1],data_recv[2],data_recv[3],data_recv[4],data_recv[5],data_recv[6]);
  }

В соответствии с даташитом ответ должен быть такой: 0x1f 0x27 0x1 0x0

На практике имеем следующее:
Код
Try readback ID from DataFlash:
Read: 0xff 0x1f 0x27 0x1 0x0 0x0 0x0
Try readback ID from DataFlash:
Read: 0xff 0xff 0x1f 0x27 0x1 0x0 0x0
Try readback ID from DataFlash:
Read: 0xff 0xff 0x1f 0x27 0x1 0x0 0x0

Логический анализатор показал, что все нормально, на нем этих 0xff нет (точнее есть один, в момент получения команды). Откуда берутся эти "мусорные" байты?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 15:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01348 секунд с 7
ELECTRONIX ©2004-2016